changeset 0:4b01f0d7b350 draft default tip

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/sshmm/ commit b578a90031fd7061fbdaef48b6a66d895ac077c3
author rnateam
date Fri, 06 Jul 2018 09:01:40 -0400
parents
children
files fasta_report_sequence_lengths.py sshmm.xml test-data/PUM2_sites_hsa_chrM.bed test-data/hsa_chrM.fa test-data/hsa_chrM.hg38.chrom.sizes test-data/hsa_chrM_positive.fasta test-data/hsa_chrM_shapes_positive.txt test-data/hsa_chrM_structures_positive.txt test-data/test_shapes_final_graph.png test-data/test_shapes_final_model.xml test-data/test_shapes_logo_best_sequences.png test-data/test_shapes_logo_best_sequences.txt test-data/test_shapes_logo_global.png test-data/test_shapes_logo_global.txt test-data/test_shapes_logo_hairpin.png test-data/test_shapes_logo_hairpin.txt test-data/test_structure_final_graph.png test-data/test_structure_final_model.xml test-data/test_structure_logo_best_sequences.png test-data/test_structure_logo_best_sequences.txt test-data/test_structure_logo_global.png test-data/test_structure_logo_global.txt test-data/test_structure_logo_hairpin.png test-data/test_structure_logo_hairpin.txt
diffstat 24 files changed, 1850 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fasta_report_sequence_lengths.py	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+
+import sys
+
+"""
+Input: FASTA file
+Output: Print sequence ID and corresponding sequence length
+
+Example output:
+chr1	248956422
+chr2	242193529
+chr3	198295559
+...
+
+"""
+
+# Check input.
+if not len(sys.argv) == 2:
+    exit("Usage: fasta_report_sequence_lengths.py <fasta_file>")
+
+fasta_file = sys.argv[1]
+
+seq_id = "id"
+seq_len = 0
+
+# Go through FASTA file, extract sequence lengths.
+with open(fasta_file) as f:
+    for line in f:
+        if line.startswith(">"):
+            new_id = line[1:].strip()
+            if seq_len:
+                print("%s\t%i" % (seq_id, seq_len))
+            seq_len = 0
+            seq_id = new_id
+        else:
+            seq_len += len(line.strip())
+
+# Print last sequence length.
+if seq_len:
+    print("%s\t%i" % (seq_id, seq_len))
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sshmm.xml	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,246 @@
+<tool id="sshmm" name="ssHMM" version="1.0.7">
+    <description>- RNA sequence-structure motif finder</description>
+    <requirements>
+        <requirement type="package" version="1.0.7">sshmm</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+    python '$__tool_directory__/fasta_report_sequence_lengths.py' '$genome_fasta_file' > chrom.sizes &&
+    mkdir prepro_out &&
+    preprocess_dataset 
+        prepro_out 
+        prepro_id 
+        '$input_bed_file' 
+        '$genome_fasta_file'
+        chrom.sizes 
+        #if $str_pred_method == 'rnashapes':
+            --disable_RNAstructure 
+        #elif $str_pred_method == 'rnastructures':
+            --disable_RNAshapes 
+        #end if
+        #if $advanced_prepro_params.advanced_prepro_params_selector == 'ap_specify':
+            $advanced_prepro_params.disable_filtering
+            --min_score $advanced_prepro_params.min_score
+            --min_length $advanced_prepro_params.min_length
+            --max_length $advanced_prepro_params.max_length
+            --elongation $advanced_prepro_params.elongation
+        #end if
+    &&
+    mkdir results
+    &&
+    train_seqstructhmm 
+        prepro_out/fasta/prepro_id/positive.fasta 
+        #if $str_pred_method == 'rnashapes':
+            prepro_out/shapes/prepro_id/positive.txt
+        #elif $str_pred_method == 'rnastructures':
+            prepro_out/structures/prepro_id/positive.txt
+        #end if
+        -o results
+        #if $advanced_train_params.advanced_train_params_selector == 'ap_specify':
+            --motif_length $advanced_train_params.motif_length
+            $advanced_train_params.init_random
+            --flexibility $advanced_train_params.flexibility
+            --block_size $advanced_train_params.block_size
+            --threshold $advanced_train_params.threshold
+            $advanced_train_params.only_best_shape
+        #end if
+    &&
+    mv results/job_* results/res_out
+    ]]></command>
+    <inputs>
+        <param name="input_bed_file" type="data" format="bed"
+               label="Genomic binding sites BED file"
+               help="Genomic BED file containing protein binding sites"/>
+        <param name="genome_fasta_file" type="data" format="fasta"
+               label="Genome reference FASTA file"
+               help="Genomic FASTA file for extracting sequences defined in BED file"/>
+        <param name="str_pred_method" type="select" label="Select structure prediction method">
+            <option value="rnashapes" selected="true">RNAshapes</option>
+            <option value="rnastructures">RNAstructures</option>
+        </param>
+        <conditional name="advanced_prepro_params">
+            <param name="advanced_prepro_params_selector" type="select" label="Advanced preprocessing parameters">
+                <option value="ap_not_specify" selected="true">Do not specify</option>
+                <option value="ap_specify">Manually specify</option>
+            </param>
+            <when value="ap_not_specify" />
+            <when value="ap_specify">
+                <param name="disable_filtering" truevalue="--disable_filtering" falsevalue="" checked="False"
+                       label="Skip the filtering step?" type="boolean"/>
+                <param name="min_score" type="float" value="0.0"
+                       label="Filtering: minimum score for binding site" />
+                <param name="min_length" type="integer" value="8"
+                       label="Filtering: minimum binding site length" />
+                <param name="max_length" type="integer" value="75"
+                       label="Filtering: maximum binding site length" />
+                <param name="elongation" type="integer" value="20"
+                       label="Elongation: span for up- and downstream elongation of binding sites" />
+            </when>
+        </conditional>
+        <conditional name="advanced_train_params">
+            <param name="advanced_train_params_selector" type="select" label="Advanced training parameters">
+                <option value="ap_not_specify" selected="true">Do not specify</option>
+                <option value="ap_specify">Manually specify</option>
+            </param>
+            <when value="ap_not_specify" />
+            <when value="ap_specify">
+                <param name="motif_length" type="integer" value="6" 
+                       label="Length of the motif that shall be found"/>
+                <param name="init_random" truevalue="--random" falsevalue="" checked="False"
+                       label="Initialize the model randomly?" type="boolean"
+                       help="By default model is initialized with Baum-Welch optimized sequence motif"/>
+                <param name="flexibility" type="integer" value="10"
+                       label="Greediness of Gibbs sampler" 
+                       help="Model parameters are sampled from among the top f configurations (default: 10); set f to 0 in order to include all possible configurations"/>
+                <param name="block_size" type="integer" value="1"
+                       label="Number of sequences to be held out in each iteration"/>
+                <param name="threshold" type="integer" value="10"
+                       label="Termination threshold"
+                       help="The iterative algorithm is terminated if the given reduction in sequence structure log-likelihood is not reached for any of the 3 last measurements (default: 10)"/>
+                <param name="only_best_shape" truevalue="--only-best-shape" falsevalue="" checked="False"
+                       label="Use only best structure for each sequence?" type="boolean"
+                       help="Train only using best structure for each sequence (default: use all structures)"/>
+            </when>
+        </conditional>
+        <section name="output_options" title="Output options">
+            <param name="output_prepro_files" type="boolean" value="False" 
+                   help="Set to output FASTA file and corresponding structures file for the extracted genomic regions"
+                   label="Output FASTA file and corresponding structures file?"/>
+            <param name="output_logo_files" type="boolean" value="False" 
+                   help="Set to output logo_global.png, logo_hairpin.png, and logo_best_sequences.png files"
+                   label="Output logo files?"/>
+            <param name="output_raw_files" type="boolean" value="False" 
+                   help="Set to output final_model.xml, logo_best_sequences.txt, logo_global.txt, logo_hairpin.txt files"
+                   label="Output raw logo and model files?"/>
+        </section>
+    </inputs>
+    <outputs>
+        <data format="fasta" name="positive_fasta_out_file" 
+              label="${tool.name} on ${on_string} FASTA sequences (fasta)"
+              from_work_dir="prepro_out/fasta/prepro_id/positive.fasta">
+            <filter>
+                output_options['output_prepro_files'] is True
+            </filter>
+        </data>
+        <data format="txt" name="positive_rnashapes_out_file" 
+              label="${tool.name} on ${on_string} RNAshapes structures for sequences (txt)" 
+              from_work_dir="prepro_out/shapes/prepro_id/positive.txt">
+            <filter>
+                output_options['output_prepro_files'] is True and str_pred_method == 'rnashapes'
+            </filter>
+        </data>
+        <data format="txt" name="positive_rnastructures_out_file" 
+              label="${tool.name} on ${on_string} RNAstructures structures for sequences (txt)" 
+              from_work_dir="prepro_out/structures/prepro_id/positive.txt">
+            <filter>
+                output_options['output_prepro_files'] is True and str_pred_method == 'rnastructures'
+            </filter>
+        </data>
+        <data format="png" name="final_graph_png" 
+              label="${tool.name} on ${on_string} final graph (png)"
+              from_work_dir="results/res_out/final_graph.png"/>
+        <data format="png" name="logo_best_sequences_png" 
+              label="${tool.name} on ${on_string} logo best sequences (png)"
+              from_work_dir="results/res_out/logo_best_sequences.png">
+            <filter>
+                output_options['output_logo_files'] is True
+            </filter>
+        </data>
+        <data format="png" name="logo_global_png" 
+              label="${tool.name} on ${on_string} logo global (png)"
+              from_work_dir="results/res_out/logo_global.png">
+            <filter>
+                output_options['output_logo_files'] is True
+            </filter>
+        </data>
+        <data format="png" name="logo_hairpin_png" 
+              label="${tool.name} on ${on_string} logo hairpin (png)"
+              from_work_dir="results/res_out/logo_hairpin.png">
+            <filter>
+                output_options['output_logo_files'] is True
+            </filter>
+        </data>
+        <data format="txt" name="logo_best_sequences_txt" 
+              label="${tool.name} on ${on_string} logo best sequences (txt)"
+              from_work_dir="results/res_out/logo_best_sequences.txt">
+            <filter>
+                output_options['output_raw_files'] is True
+            </filter>
+        </data>
+        <data format="txt" name="logo_global_txt" 
+              label="${tool.name} on ${on_string} logo global (txt)"
+              from_work_dir="results/res_out/logo_global.txt">
+            <filter>
+                output_options['output_raw_files'] is True
+            </filter>
+        </data>
+        <data format="txt" name="logo_hairpin_txt" 
+              label="${tool.name} on ${on_string} logo hairpin (txt)"
+              from_work_dir="results/res_out/logo_hairpin.txt">
+            <filter>
+                output_options['output_raw_files'] is True
+            </filter>
+        </data>
+
+        <data format="xml" name="final_model_xml" 
+              label="${tool.name} on ${on_string} final model (xml)"
+              from_work_dir="results/res_out/final_model.xml">
+            <filter>
+                output_options['output_raw_files'] is True
+            </filter>
+        </data>
+    </outputs>
+    <tests>
+        <test expect_num_outputs="10">
+            <param name="input_bed_file" value="PUM2_sites_hsa_chrM.bed" ftype="bed"/>
+            <param name="genome_fasta_file" value="hsa_chrM.fa" ftype="fasta"/>
+            <param name="str_pred_method" value="rnastructures"/>
+            <param name="advanced_prepro_params_selector" value="ap_specify"/>
+            <param name="elongation" value="20"/>
+            <param name="output_prepro_files" value="True"/>
+            <param name="output_logo_files" value="True"/>
+            <param name="output_raw_files" value="True"/>
+            <output name="positive_fasta_out_file" file="hsa_chrM_positive.fasta" ftype="fasta"/>
+            <output name="positive_rnastructures_out_file" file="hsa_chrM_structures_positive.txt" ftype="txt"/>
+            <output name="final_graph_png" file="test_structure_final_graph.png" ftype="png" compare="sim_size" delta="40000"/>
+            <output name="logo_global_png" file="test_structure_logo_global.png" ftype="png" compare="sim_size" delta="5000"/>
+            <output name="logo_hairpin_png" file="test_structure_logo_hairpin.png" ftype="png" compare="sim_size" delta="5000"/>
+            <output name="logo_best_sequences_png" file="test_structure_logo_best_sequences.png" ftype="png" compare="sim_size" delta="5000"/>
+            <output name="logo_global_txt" file="test_structure_logo_global.txt" ftype="txt" compare="sim_size"/>
+            <output name="logo_hairpin_txt" file="test_structure_logo_hairpin.txt" ftype="txt" compare="sim_size"/>
+            <output name="logo_best_sequences_txt" file="test_structure_logo_best_sequences.txt" ftype="txt" compare="sim_size"/>
+            <output name="final_model_xml" file="test_structure_final_model.xml" ftype="xml" compare="sim_size"/>
+        </test>
+        <test expect_num_outputs="10">
+            <param name="input_bed_file" value="PUM2_sites_hsa_chrM.bed" ftype="bed"/>
+            <param name="genome_fasta_file" value="hsa_chrM.fa" ftype="fasta"/>
+            <param name="str_pred_method" value="rnashapes"/>
+            <param name="output_prepro_files" value="True"/>
+            <param name="output_logo_files" value="True"/>
+            <param name="output_raw_files" value="True"/>
+            <output name="positive_fasta_out_file" file="hsa_chrM_positive.fasta" ftype="fasta"/>
+            <output name="positive_rnashapes_out_file" file="hsa_chrM_shapes_positive.txt" ftype="txt"/>
+            <output name="final_graph_png" file="test_shapes_final_graph.png" ftype="png" compare="sim_size" delta="40000"/>
+            <output name="logo_global_png" file="test_shapes_logo_global.png" ftype="png" compare="sim_size" delta="5000"/>
+            <output name="logo_hairpin_png" file="test_shapes_logo_hairpin.png" ftype="png" compare="sim_size" delta="5000"/>
+            <output name="logo_best_sequences_png" file="test_shapes_logo_best_sequences.png" ftype="png" compare="sim_size" delta="5000"/>
+            <output name="logo_global_txt" file="test_shapes_logo_global.txt" ftype="txt" compare="sim_size"/>
+            <output name="logo_hairpin_txt" file="test_shapes_logo_hairpin.txt" ftype="txt" compare="sim_size"/>
+            <output name="logo_best_sequences_txt" file="test_shapes_logo_best_sequences.txt" ftype="txt" compare="sim_size"/>
+            <output name="final_model_xml" file="test_shapes_final_model.xml" ftype="xml" compare="sim_size"/>
+        </test>
+    </tests>
+    <help><![CDATA[
+
+    ssHMM is an RNA motif finder that recovers sequence-structure motifs from RNA-binding protein data, such as CLIP-Seq data. The tool input consists of a BED file with genomic binding regions and the corresponding genome reference FASTA file. For structure prediction, the user can select between RNAshapes and RNAstructures. Advanced parameters can be set for both the preprocessing and the training stage.
+    
+    The output consists of a graph showing the found sequence motifs for the 5 structural contexts multiloop, hairpin, stem, internal loop, and exterior loop (output in .png format). The height of the nucleotides corresponds to their emission probabilities, while the thickness of the arrows corresponds to their transition probabilities. Additional files (intermediate, logo, model, raw) can be selected for output in the "Output options" section.
+
+    For more details have a look at the online documentation:
+
+    http://sshmm.readthedocs.io/en/latest/index.html
+
+    ]]></help>
+    <citations>
+        <citation type="doi">10.1093/nar/gkx756</citation>
+    </citations>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/PUM2_sites_hsa_chrM.bed	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,15 @@
+chrM	574	595	chrM,574-595,+	0	+
+chrM	603	624	chrM,603-624,+	0	+
+chrM	908	929	chrM,908-929,+	0	+
+chrM	1512	1533	chrM,1512-1533,+	0	+
+chrM	2397	2418	chrM,2397-2418,+	0	+
+chrM	2512	2533	chrM,2512-2533,+	0	+
+chrM	3171	3192	chrM,3171-3192,+	0	+
+chrM	3187	3208	chrM,3187-3208,+	0	+
+chrM	4289	4310	chrM,4289-4310,+	0	+
+chrM	4390	4411	chrM,4390-4411,+	0	+
+chrM	4407	4428	chrM,4407-4428,+	0	+
+chrM	4423	4444	chrM,4423-4444,+	0	+
+chrM	15978	15999	chrM,15978-15999,-	0	-
+chrM	14490	14511	chrM,14490-14511,-	0	-
+chrM	5848	5869	chrM,5848-5869,-	0	-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hsa_chrM.fa	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,238 @@
+>chrM
+GATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGG
+GTATGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTC
+CTGCCTCATCCTATTATTTATCGCACCTACGTTCAATATTACAGGCGAACATACTTACTAAAGTGTGTTA
+ATTAATTAATGCTTGTAGGACATAATAATAACAATTGAATGTCTGCACAGCCACTTTCCACACAGACATC
+ATAACAAAAAATTTCCACCAAACCCCCCCTCCCCCGCTTCTGGCCACAGCACTTAAACACATCTCTGCCA
+AACCCCAAAAACAAAGAACCCTAACACCAGCCTAACCAGATTTCAAATTTTATCTTTTGGCGGTATGCAC
+TTTTAACAGTCACCCCCCAACTAACACATTATTTTCCCCTCCCACTCCCATACTACTAATCTCATCAATA
+CAACCCCCGCCCATCCTACCCAGCACACACACACCGCTGCTAACCCCATACCCCGAACCAACCAAACCCC
+AAAGACACCCCCCACAGTTTATGTAGCTTACCTCCTCAAAGCAATACACTGAAAATGTTTAGACGGGCTC
+ACATCACCCCATAAACAAATAGGTTTGGTCCTAGCCTTTCTATTAGCTCTTAGTAAGATTACACATGCAA
+GCATCCCCGTTCCAGTGAGTTCACCCTCTAAATCACCACGATCAAAAGGAACAAGCATCAAGCACGCAGC
+AATGCAGCTCAAAACGCTTAGCCTAGCCACACCCCCACGGGAAACAGCAGTGATTAACCTTTAGCAATAA
+ACGAAAGTTTAACTAAGCTATACTAACCCCAGGGTTGGTCAATTTCGTGCCAGCCACCGCGGTCACACGA
+TTAACCCAAGTCAATAGAAGCCGGCGTAAAGAGTGTTTTAGATCACCCCCTCCCCAATAAAGCTAAAACT
+CACCTGAGTTGTAAAAAACTCCAGTTGACACAAAATAGACTACGAAAGTGGCTTTAACATATCTGAACAC
+ACAATAGCTAAGACCCAAACTGGGATTAGATACCCCACTATGCTTAGCCCTAAACCTCAACAGTTAAATC
+AACAAAACTGCTCGCCAGAACACTACGAGCCACAGCTTAAAACTCAAAGGACCTGGCGGTGCTTCATATC
+CCTCTAGAGGAGCCTGTTCTGTAATCGATAAACCCCGATCAACCTCACCACCTCTTGCTCAGCCTATATA
+CCGCCATCTTCAGCAAACCCTGATGAAGGCTACAAAGTAAGCGCAAGTACCCACGTAAAGACGTTAGGTC
+AAGGTGTAGCCCATGAGGTGGCAAGAAATGGGCTACATTTTCTACCCCAGAAAACTACGATAGCCCTTAT
+GAAACTTAAGGGTCGAAGGTGGATTTAGCAGTAAACTAAGAGTAGAGTGCTTAGTTGAACAGGGCCCTGA
+AGCGCGTACACACCGCCCGTCACCCTCCTCAAGTATACTTCAAAGGACATTTAACTAAAACCCCTACGCA
+TTTATATAGAGGAGACAAGTCGTAACATGGTAAGTGTACTGGAAAGTGCACTTGGACGAACCAGAGTGTA
+GCTTAACACAAAGCACCCAACTTACACTTAGGAGATTTCAACTTAACTTGACCGCTCTGAGCTAAACCTA
+GCCCCAAACCCACTCCACCTTACTACCAGACAACCTTAGCCAAACCATTTACCCAAATAAAGTATAGGCG
+ATAGAAATTGAAACCTGGCGCAATAGATATAGTACCGCAAGGGAAAGATGAAAAATTATAACCAAGCATA
+ATATAGCAAGGACTAACCCCTATACCTTCTGCATAATGAATTAACTAGAAATAACTTTGCAAGGAGAGCC
+AAAGCTAAGACCCCCGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCA
+AAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGAT
+AGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTCTAAATCCCCTTGTAAATTTAACTGTTAGTC
+CAAAGAGGAACAGCTCTTTGGACACTAGGAAAAAACCTTGTAGAGAGAGTAAAAAATTTAACACCCATAG
+TAGGCCTAAAAGCAGCCACCAATTAAGAAAGCGTTCAAGCTCAACACCCACTACCTAAAAAATCCCAAAC
+ATATAACTGAACTCCTCACACCCAATTGGACCAATCTATCACCCTATAGAAGAACTAATGTTAGTATAAG
+TAACATGAAAACATTCTCCTCCGCATAAGCCTGCGTCAGATTAAAACACTGAACTGACAATTAACAGCCC
+AATATCTACAATCAACCAACAAGTCATTATTACCCTCACTGTCAACCCAACACAGGCATGCTCATAAGGA
+AAGGTTAAAAAAAGTAAAAGGAACTCGGCAAATCTTACCCCGCCTGTTTACCAAAAACATCACCTCTAGC
+ATCACCAGTATTAGAGGCACCGCCTGCCCAGTGACACATGTTTAACGGCCGCGGTACCCTAACCGTGCAA
+AGGTAGCATAATCACTTGTTCCTTAAATAGGGACCTGTATGAATGGCTCCACGAGGGTTCAGCTGTCTCT
+TACTTTTAACCAGTGAAATTGACCTGCCCGTGAAGAGGCGGGCATAACACAGCAAGACGAGAAGACCCTA
+TGGAGCTTTAATTTATTAATGCAAACAGTACCTAACAAACCCACAGGTCCTAAACTACCAAACCTGCATT
+AAAAATTTCGGTTGGGGCGACCTCGGAGCAGAACCCAACCTCCGAGCAGTACATGCTAAGACTTCACCAG
+TCAAAGCGAACTACTATACTCAATTGATCCAATAACTTGACCAACGGAACAAGTTACCCTAGGGATAACA
+GCGCAATCCTATTCTAGAGTCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCG
+ATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTACGTGATCTGAGTTCAGACCGG
+AGTAATCCAGGTCGGTTTCTATCTACNTTCAAATTCCTCCCTGTACGAAAGGACAAGAGAAATAAGGCCT
+ACTTCACAAAGCGCCTTCCCCCGTAAATGATATCATCTCAACTTAGTATTATACCCACACCCACCCAAGA
+ACAGGGTTTGTTAAGATGGCAGAGCCCGGTAATCGCATAAAACTTAAAACTTTACAGTCAGAGGTTCAAT
+TCCTCTTCTTAACAACATACCCATGGCCAACCTCCTACTCCTCATTGTACCCATTCTAATCGCAATGGCA
+TTCCTAATGCTTACCGAACGAAAAATTCTAGGCTATATACAACTACGCAAAGGCCCCAACGTTGTAGGCC
+CCTACGGGCTACTACAACCCTTCGCTGACGCCATAAAACTCTTCACCAAAGAGCCCCTAAAACCCGCCAC
+ATCTACCATCACCCTCTACATCACCGCCCCGACCTTAGCTCTCACCATCGCTCTTCTACTATGAACCCCC
+CTCCCCATACCCAACCCCCTGGTCAACCTCAACCTAGGCCTCCTATTTATTCTAGCCACCTCTAGCCTAG
+CCGTTTACTCAATCCTCTGATCAGGGTGAGCATCAAACTCAAACTACGCCCTGATCGGCGCACTGCGAGC
+AGTAGCCCAAACAATCTCATATGAAGTCACCCTAGCCATCATTCTACTATCAACATTACTAATAAGTGGC
+TCCTTTAACCTCTCCACCCTTATCACAACACAAGAACACCTCTGATTACTCCTGCCATCATGACCCTTGG
+CCATAATATGATTTATCTCCACACTAGCAGAGACCAACCGAACCCCCTTCGACCTTGCCGAAGGGGAGTC
+CGAACTAGTCTCAGGCTTCAACATCGAATACGCCGCAGGCCCCTTCGCCCTATTCTTCATAGCCGAATAC
+ACAAACATTATTATAATAAACACCCTCACCACTACAATCTTCCTAGGAACAACATATGACGCACTCTCCC
+CTGAACTCTACACAACATATTTTGTCACCAAGACCCTACTTCTAACCTCCCTGTTCTTATGAATTCGAAC
+AGCATACCCCCGATTCCGCTACGACCAACTCATACACCTCCTATGAAAAAACTTCCTACCACTCACCCTA
+GCATTACTTATATGATATGTCTCCATACCCATTACAATCTCCAGCATTCCCCCTCAAACCTAAGAAATAT
+GTCTGATAAAAGAGTTACTTTGATAGAGTAAATAATAGGAGCTTAAACCCCCTTATTTCTAGGACTATGA
+GAATCGAACCCATCCCTGAGAATCCAAAATTCTCCGTGCCACCTATCACACCCCATCCTAAAGTAAGGTC
+AGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTTATACCCTTCCCGTACTAATTAATCCCCT
+GGCCCAACCCGTCATCTACTCTACCATCTTTGCAGGCACACTCATCACAGCGCTAAGCTCGCACTGATTT
+TTTACCTGAGTAGGCCTAGAAATAAACATGCTAGCTTTTATTCCAGTTCTAACCAAAAAAATAAACCCTC
+GTTCCACAGAAGCTGCCATCAAGTATTTCCTCACGCAAGCAACCGCATCCATAATCCTTCTAATAGCTAT
+CCTCTTCAACAATATACTCTCCGGACAATGAACCATAACCAATACTACCAATCAATACTCATCATTAATA
+ATCATAATAGCTATAGCAATAAAACTAGGAATAGCCCCCTTTCACTTCTGAGTCCCAGAGGTTACCCAAG
+GCACCCCTCTGACATCCGGCCTGCTTCTTCTCACATGACAAAAACTAGCCCCCATCTCAATCATATACCA
+AATCTCTCCCTCACTAAACGTAAGCCTTCTCCTCACTCTCTCAATCTTATCCATCATAGCAGGCAGTTGA
+GGTGGATTAAACCAAACCCAGCTACGCAAAATCTTAGCATACTCCTCAATTACCCACATAGGATGAATAA
+TAGCAGTTCTACCGTACAACCCTAACATAACCATTCTTAATTTAACTATTTATATTATCCTAACTACTAC
+CGCATTCCTACTACTCAACTTAAACTCCAGCACCACGACCCTACTACTATCTCGCACCTGAAACAAGCTA
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGGAGGCCTGCCCCCGCTAACCGGCTTTT
+TGCCCAAATGGGCCATTATCGAAGAATTCACAAAAAACAATAGCCTCATCATCCCCACCATCATAGCCAC
+CATCACCCTCCTTAACCTCTACTTCTACCTACGCCTAATCTACTCCACCTCAATCACACTACTCCCCATA
+TCTAACAACGTAAAAATAAAATGACAGTTTGAACATACAAAACCCACCCCATTCCTCCCCACACTCATCG
+CCCTTACCACGCTACTCCTACCTATCTCCCCTTTTATACTAATAATCTTATAGAAATTTAGGTTAAATAC
+AGACCAAGAGCCTTCAAAGCCCTCAGTAAGTTGCAATACTTAATTTCTGTAACAGCTAAGGACTGCAAAA
+CCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAAGCCCTTACTAGACCAATGGGA
+CTTAAACCCACAAACACTTAGTTAACAGCTAAGCACCCTAATCAACTGGCTTCAATCTACTTCTCCCGCC
+GCCGGGAAAAAAGGCGGGAGAAGCCCCGGCAGGTTTGAAGCTGCTTCTTCGAATTTGCAATTCAATATGA
+AAATCACCTCGGAGCTGGTAAAAAGAGGCCTAACCCCTGTCTTTAGATTTACAGTCCAATGCTTCACTCA
+GCCATTTTACCTCACCCCCACTGATGTTCGCCGACCGTTGACTATTCTCTACAAACCACAAAGACATTGG
+AACACTATACCTATTATTCGGCGCATGAGCTGGAGTCCTAGGCACAGCTCTAAGCCTCCTTATTCGAGCC
+GAGCTGGGCCAGCCAGGCAACCTTCTAGGTAACGACCACATCTACAACGTTATCGTCACAGCCCATGCAT
+TTGTAATAATCTTCTTCATAGTAATACCCATCATAATCGGAGGCTTTGGCAACTGACTAGTTCCCCTAAT
+AATCGGTGCCCCCGATATGGCGTTTCCCCGCATAAACAACATAAGCTTCTGACTCTTACCTCCCTCTCTC
+CTACTCCTGCTCGCATCTGCTATAGTGGAGGCCGGAGCAGGAACAGGTTGAACAGTCTACCCTCCCTTAG
+CAGGGAACTACTCCCACCCTGGAGCCTCCGTAGACCTAACCATCTTCTCCTTACACCTAGCAGGTGTCTC
+CTCTATCTTAGGGGCCATCAATTTCATCACAACAATTATCAATATAAAACCCCCTGCCATAACCCAATAC
+CAAACGCCCCTCTTCGTCTGATCCGTCCTAATCACAGCAGTCCTACTTCTCCTATCTCTCCCAGTCCTAG
+CTGCTGGCATCACTATACTACTAACAGACCGCAACCTCAACACCACCTTCTTCGACCCCGCCGGAGGAGG
+AGACCCCATTCTATACCAACACCTATTCTGATTTTTCGGTCACCCTGAAGTTTATATTCTTATCCTACCA
+GGCTTCGGAATAATCTCCCATATTGTAACTTACTACTCCGGAAAAAAAGAACCATTTGGATACATAGGTA
+TGGTCTGAGCTATGATATCAATTGGCTTCCTAGGGTTTATCGTGTGAGCACACCATATATTTACAGTAGG
+AATAGACGTAGACACACGAGCATATTTCACCTCCGCTACCATAATCATCGCTATCCCCACCGGCGTCAAA
+GTATTTAGCTGACTCGCCACACTCCACGGAAGCAATATGAAATGATCTGCTGCAGTGCTCTGAGCCCTAG
+GATTCATCTTTCTTTTCACCGTAGGTGGCCTGACTGGCATTGTATTAGCAAACTCATCACTAGACATCGT
+ACTACACGACACGTACTACGTTGTAGCCCACTTCCACTATGTCCTATCAATAGGAGCTGTATTTGCCATC
+ATAGGAGGCTTCATTCACTGATTTCCCCTATTCTCAGGCTACACCCTAGACCAAACCTACGCCAAAATCC
+ATTTCACTATCATATTCATCGGCGTAAATCTAACTTTCTTCCCACAACACTTTCTCGGCCTATCCGGAAT
+GCCCCGACGTTACTCGGACTACCCCGATGCATACACCACATGAAACATCCTATCATCTGTAGGCTCATTC
+ATTTCTCTAACAGCAGTAATATTAATAATTTTCATGATTTGAGAAGCCTTCGCTTCGAAGCGAAAAGTCC
+TAATAGTAGAAGAACCCTCCATAAACCTGGAGTGACTATATGGATGCCCCCCACCCTACCACACATTCGA
+AGAACCCGTATACATAAAATCTAGACAAAAAAGGAAGGAATCGAACCCCCCAAAGCTGGTTTCAAGCCAA
+CCCCATGGCCTCCATGACTTTTTCAAAAAGGTATTAGAAAAACCATTTCATAACTTTGTCAAAGTTAAAT
+TATAGGCTAAATCCTATATATCTTAATGGCACATGCAGCGCAAGTAGGTCTACAAGACGCTACTTCCCCT
+ATCATAGAAGAGCTTATCACCTTTCATGATCACGCCCTCATAATCATTTTCCTTATCTGCTTCCTAGTCC
+TGTATGCCCTTTTCCTAACACTCACAACAAAACTAACTAATACTAACATCTCAGACGCTCAGGAAATAGA
+AACCGTCTGAACTATCCTGCCCGCCATCATCCTAGTCCTCATCGCCCTCCCATCCCTACGCATCCTTTAC
+ATAACAGACGAGGTCAACGATCCCTCCCTTACCATCAAATCAATTGGCCACCAATGGTACTGAACCTACG
+AGTACACCGACTACGGCGGACTAATCTTCAACTCCTACATACTTCCCCCATTATTCCTAGAACCAGGCGA
+CCTGCGACTCCTTGACGTTGACAATCGAGTAGTACTCCCGATTGAAGCCCCCATTCGTATAATAATTACA
+TCACAAGACGTCTTGCACTCATGAGCTGTCCCCACATTAGGCTTAAAAACAGATGCAATTCCCGGACGTC
+TAAACCAAACCACTTTCACCGCTACACGACCGGGGGTATACTACGGTCAATGCTCTGAAATCTGTGGAGC
+AAACCACAGTTTCATGCCCATCGTCCTAGAATTAATTCCCCTAAAAATCTTTGAAATAGGGCCCGTATTT
+ACCCTATAGCACCCCCTCTACCCCCTCTAGAGCCCACTGTAAAGCTAACTTAGCATTAACCTTTTAAGTT
+AAAGATTAAGAGAACCAACACCTCTTTACAGTGAAATGCCCCAACTAAATACTACCGTATGGCCCACCAT
+AATTACCCCCATACTCCTTACACTATTCCTCATCACCCAACTAAAAATATTAAACACAAACTACCACCTA
+CCTCCCTCACCAAAGCCCATAAAAATAAAAAATTATAACAAACCCTGAGAACCAAAATGAACGAAAATCT
+GTTCGCTTCATTCATTGCCCCCACAATCCTAGGCCTACCCGCCGCAGTACTGATCATTCTATTTCCCCCT
+CTATTGATCCCCACCTCCAAATATCTCATCAACAACCGACTAATCACCACCCAACAATGACTAATCAAAC
+TAACCTCAAAACAAATGATAACCATACACAACACTAAAGGACGAACCTGATCTCTTATACTAGTATCCTT
+AATCATTTTTATTGCCACAACTAACCTCCTCGGACTCCTGCCTCACTCATTTACACCAACCACCCAACTA
+TCTATAAACCTAGCCATGGCCATCCCCTTATGAGCGGGCACAGTGATTATAGGCTTTCGCTCTAAGATTA
+AAAATGCCCTAGCCCACTTCTTACCACAAGGCACACCTACACCCCTTATCCCCATACTAGTTATTATCGA
+AACCATCAGCCTACTCATTCAACCAATAGCCCTGGCCGTACGCCTAACCGCTAACATTACTGCAGGCCAC
+CTACTCATGCACCTAATTGGAAGCGCCACCCTAGCAATATCAACCATTAACCTTCCCTCTACACTTATCA
+TCTTCACAATTCTAATTCTACTGACTATCCTAGAAATCGCTGTCGCCTTAATCCAAGCCTACGTTTTCAC
+ACTTCTAGTAAGCCTCTACCTGCACGACAACACATAATGACCCACCAATCACATGCCTATCATATAGTAA
+AACCCAGCCCATGACCCCTAACAGGGGCCCTCTCAGCCCTCCTAATGACCTCCGGCCTAGCCATGTGATT
+TCACTTCCACTCCATAACGCTCCTCATACTAGGCCTACTAACCAACACACTAACCATATACCAATGATGG
+CGCGATGTAACACGAGAAAGCACATACCAAGGCCACCACACACCACCTGTCCAAAAAGGCCTTCGATACG
+GGATAATCCTATTTATTACCTCAGAAGTTTTTTTCTTCGCAGGATTTTTCTGAGCCTTTTACCACTCCAG
+CCTAGCCCCTACCCCCCAATTAGGAGGGCACTGGCCCCCAACAGGCATCACCCCGCTAAATCCCCTAGAA
+GTCCCACTCCTAAACACATCCGTATTACTCGCATCAGGAGTATCAATCACCTGAGCTCACCATAGTCTAA
+TAGAAAACAACCGAAACCAAATAATTCAAGCACTGCTTATTACAATTTTACTGGGTCTCTATTTTACCCT
+CCTACAAGCCTCAGAGTACTTCGAGTCTCCCTTCACCATTTCCGACGGCATCTACGGCTCAACATTTTTT
+GTAGCCACAGGCTTCCACGGACTTCACGTCATTATTGGCTCAACTTTCCTCACTATCTGCTTCATCCGCC
+AACTAATATTTCACTTTACATCCAAACATCACTTTGGCTTCGAAGCCGCCGCCTGATACTGGCATTTTGT
+AGATGTGGTTTGACTATTTCTGTATGTCTCCATCTATTGATGAGGGTCTTACTCTTTTAGTATAAATAGT
+ACCGTTAACTTCCAATTAACTAGTTTTGACAACATTCAAAAAAGAGTAATAAACTTCGCCTTAATTTTAA
+TAATCAACACCCTCCTAGCCTTACTACTAATAATTATTACATTTTGACTACCACAACTCAACGGCTACAT
+AGAAAAATCCACCCCTTACGAGTGCGGCTTCGACCCTATATCCCCCGCCCGCGTCCCTTTCTCCATAAAA
+TTCTTCTTAGTAGCTATTACCTTCTTATTATTTGATCTAGAAATTGCCCTCCTTTTACCCCTACCATGAG
+CCCTACAAACAACTAACCTGCCACTAATAGTTATGTCATCCCTCTTATTAATCATCATCCTAGCCCTAAG
+TCTGGCCTATGAGTGACTACAAAAAGGATTAGACTGAACCGAATTGGTATATAGTTTAAACAAAACGAAT
+GATTTCGACTCATTAAATTATGATAATCATATTTACCAAATGCCCCTCATTTACATAAATATTATACTAG
+CATTTACCATCTCACTTCTAGGAATACTAGTATATCGCTCACACCTCATATCCTCCCTACTATGCCTAGA
+AGGAATAATACTATCGCTGTTCATTATAGCTACTCTCATAACCCTCAACACCCACTCCCTCTTAGCCAAT
+ATTGTGCCTATTGCCATACTAGTCTTTGCCGCCTGCGAAGCAGCGGTGGGCCTAGCCCTACTAGTCTCAA
+TCTCCAACACATATGGCCTAGACTACGTACATAACCTAAACCTACTCCAATGCTAAAACTAATCGTCCCA
+ACAATTATATTACTACCACTGACATGACTTTCCAAAAAACACATAATTTGAATCAACACAACCACCCACA
+GCCTAATTATTAGCATCATCCCTCTACTATTTTTTAACCAAATCAACAACAACCTATTTAGCTGTTCCCC
+AACCTTTTCCTCCGACCCCCTAACAACCCCCCTCCTAATACTAACTACCTGACTCCTACCCCTCACAATC
+ATGGCAAGCCAACGCCACTTATCCAGTGAACCACTATCACGAAAAAAACTCTACCTCTCTATACTAATCT
+CCCTACAAATCTCCTTAATTATAACATTCACAGCCACAGAACTAATCATATTTTATATCTTCTTCGAAAC
+CACACTTATCCCCACCTTGGCTATCATCACCCGATGAGGCAACCAGCCAGAACGCCTGAACGCAGGCACA
+TACTTCCTATTCTACACCCTAGTAGGCTCCCTTCCCCTACTCATCGCACTAATTTACACTCACAACACCC
+TAGGCTCACTAAACATTCTACTACTCACTCTCACTGCCCAAGAACTATCAAACTCCTGAGCCAACAACTT
+AATATGACTAGCTTACACAATAGCTTTTATAGTAAAGATACCTCTTTACGGACTCCACTTATGACTCCCT
+AAAGCCCATGTCGAAGCCCCCATCGCTGGGTCAATAGTACTTGCCGCAGTACTCTTAAAACTAGGCGGCT
+ATGGTATAATACGCCTCACACTCATTCTCAACCCCCTGACAAAACACATAGCCTACCCCTTCCTTGTACT
+ATCCCTATGAGGCATAATTATAACAAGCTCCATCTGCCTACGACAAACAGACCTAAAATCGCTCATTGCA
+TACTCTTCAATCAGCCACATAGCCCTCGTAGTAACAGCCATTCTCATCCAAACCCCCTGAAGCTTCACCG
+GCGCAGTCATTCTCATAATCGCCCACGGGCTTACATCCTCATTACTATTCTGCCTAGCAAACTCAAACTA
+CGAACGCACTCACAGTCGCATCATAATCCTCTCTCAAGGACTTCAAACTCTACTCCCACTAATAGCTTTT
+TGATGACTTCTAGCAAGCCTCGCTAACCTCGCCTTACCCCCCACTATTAACCTACTGGGAGAACTCTCTG
+TGCTAGTAACCACGTTCTCCTGATCAAATATCACTCTCCTACTTACAGGACTCAACATACTAGTCACAGC
+CCTATACTCCCTCTACATATTTACCACAACACAATGGGGCTCACTCACCCACCACATTAACAACATAAAA
+CCCTCATTCACACGAGAAAACACCCTCATGTTCATACACCTATCCCCCATTCTCCTCCTATCCCTCAACC
+CCGACATCATTACCGGGTTTTCCTCTTGTAAATATAGTTTAACCAAAACATCAGATTGTGAATCTGACAA
+CAGAGGCTTACGACCCCTTATTTACCGAGAAAGCTCACAAGAACTGCTAACTCATGCCCCCATGTCTAAC
+AACATGGCTTTCTCAACTTTTAAAGGATAACAGCTATCCATTGGTCTTAGGCCCCAAAAATTTTGGTGCA
+ACTCCAAATAAAAGTAATAACCATGCACACTACTATAACCACCCTAACCCTGACTTCCCTAATTCCCCCC
+ATCCTTACCACCCTCGTTAACCCTAACAAAAAAAACTCATACCCCCATTATGTAAAATCCATTGTCGCAT
+CCACCTTTATTATCAGTCTCTTCCCCACAACAATATTCATGTGCCTAGACCAAGAAGTTATTATCTCGAA
+CTGACACTGAGCCACAACCCAAACAACCCAGCTCTCCCTAAGCTTCAAACTAGACTACTTCTCCATAATA
+TTCATCCCTGTAGCATTGTTCGTTACATGGTCCATCATAGAATTCTCACTGTGATATATAAACTCAGACC
+CAAACATTAATCAGTTCTTCAAATATCTACTCATCTTCCTAATTACCATACTAATCTTAGTTACCGCTAA
+CAACCTATTCCAACTGTTCATCGGCTGAGAGGGCGTAGGAATTATATCCTTCTTGCTCATCAGTTGATGA
+TACGCCCGAGCAGATGCCAACACAGCAGCCATTCAAGCAATCCTATACAACCGTATCGGCGATATCGGTT
+TCATCCTCGCCTTAGCATGATTTATCCTACACTCCAACTCATGAGACCCACAACAAATAGCCCTTCTAAA
+CGCTAATCCAAGCCTCACCCCACTACTAGGCCTCCTCCTAGCAGCAGCAGGCAAATCAGCCCAATTAGGT
+CTCCACCCCTGACTCCCCTCAGCCATAGAAGGCCCCACCCCAGTCTCAGCCCTACTCCACTCAAGCACTA
+TAGTTGTAGCAGGAATCTTCTTACTCATCCGCTTCCACCCCCTAGCAGAAAATAGCCCACTAATCCAAAC
+TCTAACACTATGCTTAGGCGCTATCACCACTCTGTTCGCAGCAGTCTGCGCCCTTACACAAAATGACATC
+AAAAAAATCGTAGCCTTCTCCACTTCAAGTCAACTAGGACTCATAATAGTTACAATCGGCATCAACCAAC
+CACACCTAGCATTCCTGCACATCTGTACCCACGCCTTCTTCAAAGCCATACTATTTATGTGCTCCGGGTC
+CATCATCCACAACCTTAACAATGAACAAGATATTCGAAAAATAGGAGGACTACTCAAAACCATACCTCTC
+ACTTCAACCTCCCTCACCATTGGCAGCCTAGCATTAGCAGGAATACCTTTCCTCACAGGTTTCTACTCCA
+AAGACCACATCATCGAAACCGCAAACATATCATACACAAACGCCTGAGCCCTATCTATTACTCTCATCGC
+TACCTCCCTGACAAGCGCCTATAGCACTCGAATAATTCTTCTCACCCTAACAGGTCAACCTCGCTTCCCC
+ACCCTTACTAACATTAACGAAAATAACCCCACCCTACTAAACCCCATTAAACGCCTGGCAGCCGGAAGCC
+TATTCGCAGGATTTCTCATTACTAACAACATTTCCCCCGCATCCCCCTTCCAAACAACAATCCCCCTCTA
+CCTAAAACTCACAGCCCTCGCTGTCACTTTCCTAGGACTTCTAACAGCCCTAGACCTCAACTACCTAACC
+AACAAACTTAAAATAAAATCCCCACTATGCACATTTTATTTCTCCAACATACTCGGATTCTACCCTAGCA
+TCACACACCGCACAATCCCCTATCTAGGCCTTCTTACGAGCCAAAACCTGCCCCTACTCCTCCTAGACCT
+AACCTGACTAGAAAAGCTATTACCTAAAACAATTTCACAGCACCAAATCTCCACCTCCATCATCACCTCA
+ACCCAAAAAGGCATAATTAAACTTTACTTCCTCTCTTTCTTCTTCCCACTCATCCTAACCCTACTCCTAA
+TCACATAACCTATTCCCCCGAGCAATCTCAATTACAATATATACACCAACAAACAATGTTCAACCAGTAA
+CTACTACTAATCAACGCCCATAATCATACAAAGCCCCCGCACCAATAGGATCCTCCCGAATCAACCCTGA
+CCCCTCTCCTTCATAAATTATTCAGCTTCCTACACTATTAAAGTTTACCACAACCACCACCCCATCATAC
+TCTTTCACCCACAGCACCAATCCTACCTCCATCGCTAACCCCACTAAAACACTCACCAAGACCTCAACCC
+CTGACCCCCATGCCTCAGGATACTCCTCAATAGCCATCGCTGTAGTATATCCAAAGACAACCATCATTCC
+CCCTAAATAAATTAAAAAAACTATTAAACCCATATAACCTCCCCCAAAATTCAGAATAATAACACACCCG
+ACCACACCGCTAACAATCAATACTAAACCCCCATAAATAGGAGAAGGCTTAGAAGAAAACCCCACAAACC
+CCATTACTAAACCCACACTCAACAGAAACAAAGCATACATCATTATTCTCGCACGGACTACAACCACGAC
+CAATGATATGAAAAACCATCGTTGTATTTCAACTACAAGAACACCAATGACCCCAATACGCAAAACTAAC
+CCCCTAATAAAATTAATTAACCACTCATTCATCGACCTCCCCACCCCATCCAACATCTCCGCATGATGAA
+ACTTCGGCTCACTCCTTGGCGCCTGCCTGATCCTCCAAATCACCACAGGACTATTCCTAGCCATGCACTA
+CTCACCAGACGCCTCAACCGCCTTTTCATCAATCGCCCACATCACTCGAGACGTAAATTATGGCTGAATC
+ATCCGCTACCTTCACGCCAATGGCGCCTCAATATTCTTTATCTGCCTCTTCCTACACATCGGGCGAGGCC
+TATATTACGGATCATTTCTCTACTCAGAAACCTGAAACATCGGCATTATCCTCCTGCTTGCAACTATAGC
+AACAGCCTTCATAGGCTATGTCCTCCCGTGAGGCCAAATATCATTCTGAGGGGCCACAGTAATTACAAAC
+TTACTATCCGCCATCCCATACATTGGGACAGACCTAGTTCAATGAATCTGAGGAGGCTACTCAGTAGACA
+GTCCCACCCTCACACGATTCTTTACCTTTCACTTCATCTTGCCCTTCATTATTGCAGCCCTAGCAACACT
+CCACCTCCTATTCTTGCACGAAACGGGATCAAACAACCCCCTAGGAATCACCTCCCATTCCGATAAAATC
+ACCTTCCACCCTTACTACACAATCAAAGACGCCCTCGGCTTACTTCTCTTCCTTCTCTCCTTAATGACAT
+TAACACTATTCTCACCAGACCTCCTAGGCGACCCAGACAATTATACCCTAGCCAACCCCTTAAACACCCC
+TCCCCACATCAAGCCCGAATGATATTTCCTATTCGCCTACACAATTCTCCGATCCGTCCCTAACAAACTA
+GGAGGCGTCCTTGCCCTATTACTATCCATCCTCATCCTAGCAATAATCCCCATCCTCCATATATCCAAAC
+AACAAAGCATAATATTTCGCCCACTAAGCCAATCACTTTATTGACTCCTAGCCGCAGACCTCCTCATTCT
+AACCTGAATCGGAGGACAACCAGTAAGCTACCCTTTTACCATCATTGGACAAGTAGCATCCGTACTATAC
+TTCACAACAATCCTAATCCTAATACCAACTATCTCCCTAATTGAAAACAAAATACTCAAATGGGCCTGTC
+CTTGTAGTATAAACTAATACACCAGTCTTGTAAACCGGAGATGAAAACCTTTTTCCAAGGACAAATCAGA
+GAAAAAGTCTTTAACTCCACCATTAGCACCCAAAGCTAAGATTCTAATTTAAACTATTCTCTGTTCTTTC
+ATGGGGAAGCAGATTTGGGTACCACCCAAGTATTGACTCACCCATCAACAACCGCTATGTATTTCGTACA
+TTACTGCCAGCCACCATGAATATTGTACGGTACCATAAATACTTGACCACCTGTAGTACATAAAAACCCA
+ATCCACATCAAAACCCCCTCCCCATGCTTACAAGCAAGTACAGCAATCAACCCTCAACTATCACACATCA
+ACTGCAACTCCAAAGCCACCCCTCACCCACTAGGATACCAACAAACCTACCCACCCTTAACAGTACATAG
+TACATAAAGCCATTTACCGTACATAGCACATTACAGTCAAATCCCTTCTCGTCCCCATGGATGACCCCCC
+TCAGATAGGGGTCCCTTGACCACCATCCTCCGTGAAATCAATATCCCGCACAAGAGTGCTACTCTCCTCG
+CTCCGGGCCCATAACACTTGGGGGTAGCTAAAGTGAACTGTATCCGACATCTGGTTCCTACTTCAGGGTC
+ATAAAGCCTAAATAGCCCACACGTTCCCCTTAAATAAGACATCACGATG
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hsa_chrM.hg38.chrom.sizes	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,1 @@
+chrM	16569
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hsa_chrM_positive.fasta	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,30 @@
+>chrM:554-615(+)
+aaccccaaagacaccccccaCAGTTTATGTAGCTTACCTCCtcaaagcaatacactgaaaa
+>chrM:583-644(+)
+tagcttacctcctcaaagcaATACACTGAAAATGTTTAGACgggctcacatcaccccataa
+>chrM:888-949(+)
+gccagccaccgcggtcacacGATTAACCCAAGTCAATAGAAgccggcgtaaagagtgtttt
+>chrM:1492-1553(+)
+ccctcctcaagtatacttcaAAGGACATTTAACTAAAACCCctacgcatttatatagagga
+>chrM:2377-2438(+)
+cccaatatctacaatcaaccAACAAGTCATTATTACCCTCActgtcaacccaacacaggca
+>chrM:2492-2553(+)
+cctgtttaccaaaaacatcaCCTCTAGCATCACCAGTATTAgaggcaccgcctgcccagtg
+>chrM:3151-3212(+)
+cttcacaaagcgccttccccCGTAAATGATATCATCTCAACttagtattatacccacaccc
+>chrM:3167-3228(+)
+cccccgtaaatgatatcatcTCAACTTAGTATTATACCCACacccacccaagaacagggtt
+>chrM:4269-4330(+)
+tgtctgataaaagagttactTTGATAGAGTAAATAATAGGAgcttaaacccccttatttct
+>chrM:4370-4431(+)
+tctccgtgccacctatcacaCCCCATCCTAAAGTAAGGTCAgctaaataagctatcgggcc
+>chrM:4387-4448(+)
+acaccccatcctaaagtaagGTCAGCTAAATAAGCTATCGGgcccataccccgaaaatgtt
+>chrM:4403-4464(+)
+taaggtcagctaaataagctATCGGGCCCATACCCCGAAAAtgttggttatacccttcccg
+>chrM:15958-16019(-)
+gaatagtttaaattagaatcTTAGCTTTGGGTGCTAATGGTggagttaaagactttttctc
+>chrM:14470-14531(-)
+gaggttatatgggtttaataGTTTTTTTAATTTATTTAGGGggaatgatggttgtctttgg
+>chrM:5828-5889(-)
+taaaatggctgagtgaagcaTTGGACTGTAAATCTAAAGACaggggttaggcctcttttta
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hsa_chrM_shapes_positive.txt	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,38 @@
+>chrM:554-615(+)
+EEEEEEEEEEEEEEEEEEEESSSSISSSIIISSSSHHHHHHHHHSSSSISSSISSSSEEEE 0.62376
+>chrM:583-644(+)
+EESSSSHHHHHHHHHSSSSMMMMMMSSSSSHHHHSSSSSMMSSSHHHHHHHHHHSSSEEEE 0.3152474
+>chrM:888-949(+)
+SSSISSHHHHSSSSSMSSSSIISSISSSSIIISSHHHHSSIIIISSISSISSIISSSSEEE 0.2931414
+SSSMSSSHHHHHSSSMMMMMSSSSHHHHHHSSSSMMMMMMMMMMSSSEEEEEEEEEEEEEE 0.0800483
+>chrM:1492-1553(+)
+EEESSSSSIISSSSSIIIIIISSSHHHHHHHHHHHHHHHHSSSIIIIIIISSSSSISSSSS 0.1828745
+>chrM:2377-2438(+)
+EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEESSSSHHHHHHHHHSSSSEEE 0.4065502
+>chrM:2492-2553(+)
+EESSSSSHHHHHSSSSSMMMSSSSSSSISSHHHHHSSISSSSSSSEEEEEEEEEEEEEEEE 0.1278867
+EESSSSSHHHHHSSSSSMMMSSSSSSSISSHHHHHSSISSSSSSSMMMSSSHHHHHHHSSS 0.0410739
+>chrM:3151-3212(+)
+EEEEEEEEESSSHHHHHHHHSSSMMSSSSSSSHHHHHHHHHHHHSSSSSSSEEEEEEEEEE 0.2376765
+>chrM:3167-3228(+)
+EEEEEEEEESSSSSSSHHHHHHHHHHHHSSSSSSSMMMMMMMMMMSSSSHHHHHHHSSSSE 0.1810531
+>chrM:4269-4330(+)
+EESSSHHHHHHSSSMSSSSSSHHHHHSSSSSSMMSSSSSSHHHHHHHHHHHHSSSSSSEEE 0.0392731
+EESSSSIIISSSSHHHHHSSSSIISSSSMMSSSSSSIISSHHHHHHHHHSSIISSSSSSEE 0.0283899
+>chrM:4370-4431(+)
+EEEEESSSHHHHHHHHSSSMMSSSMMSSSHHHHHHSSSMMSSSSHHHHHSSSSMMMSSSEE 0.370664
+>chrM:4387-4448(+)
+EEEEEEEEESSSHHHHHHSSSMMSSSSHHHHHSSSSMSSSSSHHHHHHHSSSSSEEEEEEE 0.2173924
+SSSMMMMMMSSSHHHHHHSSSMMSSSSHHHHHSSSSMSSSSSHHHHHHHSSSSSMMMSSSE 0.0593635
+>chrM:4403-4464(+)
+ESSSSMMSSSSHHHHHSSSSMSSSSSHHHHHHHSSSSSMMMMMMMMMMMMMMMSSSSEEEE 0.1334685
+EEESSSISSSSSSIIIIIIIISSSSSHHHHHHHSSSSSIIIIISSSSSSIISSSEEEEEEE 0.0720459
+EEESSMMSSSSHHHHHSSSSMSSSSSHHHHHHHSSSSSMMMMMMMSSHHHHHSSMMMMSSE 0.0309876
+>chrM:15958-16019(-)
+SSSISSSSSISSSSIIISSSSSSSSHHHHHHHSSSSSISSSIISSSSIISSSSSIISSSEE 0.2243046
+>chrM:14470-14531(-)
+EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEESSSSSSISSSHHHHSSSISSSSSSE 0.0283177
+EEESSSSHHHHHHHHSSSSMMMMMMMMMMMMMMMMMSSSSSSISSSHHHHSSSISSSSSSE 0.0174045
+>chrM:5828-5889(-)
+EEEEEEESSSHHHHHHSSSMSSSSSHHHHHHHSSSSSMMMMSSSSSHHHHHSSSSSEEEEE 0.0497615
+EEEEEEESSSHHHHHHSSSMMMMMMMMMMMMMMMMMMSSSISSSSSHHHHHSSSSSISSSE 0.0423085
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hsa_chrM_structures_positive.txt	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,31 @@
+>chrM:554-615(+)
+EEEEEEEEEEEEEEEEEEEESSSSISSSIIISSSSHHHHHHHHHSSSSISSSISSSSEEEE 1
+>chrM:583-644(+)
+EESSSSHHHHHHHHHSSSSMMMMMMSSSSSHHHHSSSSSMMSSSHHHHHHHHHHSSSEEEE 1
+>chrM:888-949(+)
+SSSISSHHHHSSSSSMSSSSIISSISSSSIIISSHHHHSSIIIISSISSISSIISSSSEEE 1
+>chrM:1492-1553(+)
+EEESSSSSIISSSSSIIIIIISSSHHHHHHHHHHHHHHHHSSSIIIIIIISSSSSISSSSS 1
+>chrM:2377-2438(+)
+EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEESSSSHHHHHHHHHSSSSEEE 1
+>chrM:2492-2553(+)
+EESSSSSHHHHHSSSSSMMMSSSSSSSISSHHHHHSSISSSSSSSSSSHHHHHHHHHHSSS 1
+>chrM:3151-3212(+)
+EEEEEEEEESSSHHHHHHHHSSSMMSSSSSSSHHHHHHHHHHHHSSSSSSSEEEEEEEEEE 1
+>chrM:3167-3228(+)
+EEEEEEEEESSSSSSSHHHHHHHHHHHHSSSSSSSMMMMMMMMMMSSSSHHHHHHHSSSSE 1
+>chrM:4269-4330(+)
+EESSSHHHHHHSSSMSSSSSSSHHHSSSSSSSMMSSSSSSHHHHHHHHHHHHSSSSSSEEE 1
+>chrM:4370-4431(+)
+EEEEESSSHHHHHHHHSSSMSSSIIIIIIIIIIIIISSSISSSSHHHHHSSSSSSSSSSEE 1
+>chrM:4387-4448(+)
+EEEEEEEEESSSHHHHHHSSSMMSSSSHHHHHSSSSMSSSSSHHHHHHHSSSSSEEEEEEE 1
+>chrM:4403-4464(+)
+EEEEEEESSSSHHHHHSSSSMSSSSSHHHHHHHSSSSSMMMMMMMSSSHHHSSSEEEEEEE 1
+EEESSSISSSSSSIIIIIIIISSSSSHHHHHHHSSSSSIIIIISSSSSSIISSSEEEEEEE 1
+>chrM:15958-16019(-)
+SSSISSSSSISSSSIIISSSSSSSSHHHHHHHSSSSSISSSIISSSSIISSSSSIISSSEE 1
+>chrM:14470-14531(-)
+EEEEEEEESSSSSSSISSHHHHHHHHSSSSSSSSSMSSSSSSISSSHHHHSSSISSSSSSE 1
+>chrM:5828-5889(-)
+EEEEEEESSSHHHHHHSSSMMSSSSHHHHHHHSSSSMSSSISSSSSSHHHSSSSSSISSSE 1
Binary file test-data/test_shapes_final_graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_shapes_final_model.xml	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,584 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE mixture PUBLIC "-//ghmm.org//DOCUMENT ghmm V1.0//EN" "http://ghmm.sourceforge.net/xml/1.0/ghmm.dtd">
+<mixture version="1.0" noComponents="1">
+ <HMM name="stateHMM" type="labeled discrete">
+  <alphabet id="0">
+   <symbol code="0">A</symbol>
+   <symbol code="1">C</symbol>
+   <symbol code="2">G</symbol>
+   <symbol code="3">T</symbol>
+   <symbol code="4">+</symbol>
+   <symbol code="5">#</symbol>
+  </alphabet>
+  <classAlphabet>
+   <symbol code="0">St</symbol>
+   <symbol code="1">E1</symbol>
+   <symbol code="2">I1</symbol>
+   <symbol code="3">S1</symbol>
+   <symbol code="4">H1</symbol>
+   <symbol code="5">M1</symbol>
+   <symbol code="6">E2</symbol>
+   <symbol code="7">I2</symbol>
+   <symbol code="8">S2</symbol>
+   <symbol code="9">H2</symbol>
+   <symbol code="10">M2</symbol>
+   <symbol code="11">E3</symbol>
+   <symbol code="12">I3</symbol>
+   <symbol code="13">S3</symbol>
+   <symbol code="14">H3</symbol>
+   <symbol code="15">M3</symbol>
+   <symbol code="16">E4</symbol>
+   <symbol code="17">I4</symbol>
+   <symbol code="18">S4</symbol>
+   <symbol code="19">H4</symbol>
+   <symbol code="20">M4</symbol>
+   <symbol code="21">E5</symbol>
+   <symbol code="22">I5</symbol>
+   <symbol code="23">S5</symbol>
+   <symbol code="24">H5</symbol>
+   <symbol code="25">M5</symbol>
+   <symbol code="26">E6</symbol>
+   <symbol code="27">I6</symbol>
+   <symbol code="28">S6</symbol>
+   <symbol code="29">H6</symbol>
+   <symbol code="30">M6</symbol>
+   <symbol code="31">En</symbol>
+  </classAlphabet>
+  <state id="0" initial="1.00000000">
+   <discrete id="0">0, 0, 0, 0, 1, 0</discrete>
+   <class>0</class>
+  </state>
+  <state id="1" initial="0.00000000">
+   <discrete id="0">0.33333333, 0.16666667, 0.33333333, 0.16666667, 0, 0</discrete>
+   <class>1</class>
+  </state>
+  <state id="2" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>2</class>
+  </state>
+  <state id="3" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>3</class>
+  </state>
+  <state id="4" initial="0.00000000">
+   <discrete id="0">0.5625, 0.1875, 0.1875, 0.0625, 0, 0</discrete>
+   <class>4</class>
+  </state>
+  <state id="5" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>5</class>
+  </state>
+  <state id="6" initial="0.00000000">
+   <discrete id="0">0.16666667, 0.33333333, 0.16666667, 0.33333333, 0, 0</discrete>
+   <class>6</class>
+  </state>
+  <state id="7" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>7</class>
+  </state>
+  <state id="8" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>8</class>
+  </state>
+  <state id="9" initial="0.00000000">
+   <discrete id="0">0.3125, 0.3125, 0.1875, 0.1875, 0, 0</discrete>
+   <class>9</class>
+  </state>
+  <state id="10" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>10</class>
+  </state>
+  <state id="11" initial="0.00000000">
+   <discrete id="0">0.33333333, 0.16666667, 0.16666667, 0.33333333, 0, 0</discrete>
+   <class>11</class>
+  </state>
+  <state id="12" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>12</class>
+  </state>
+  <state id="13" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>13</class>
+  </state>
+  <state id="14" initial="0.00000000">
+   <discrete id="0">0.1875, 0.1875, 0.1875, 0.4375, 0, 0</discrete>
+   <class>14</class>
+  </state>
+  <state id="15" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>15</class>
+  </state>
+  <state id="16" initial="0.00000000">
+   <discrete id="0">0.33333333, 0.16666667, 0.16666667, 0.33333333, 0, 0</discrete>
+   <class>16</class>
+  </state>
+  <state id="17" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>17</class>
+  </state>
+  <state id="18" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>18</class>
+  </state>
+  <state id="19" initial="0.00000000">
+   <discrete id="0">0.3125, 0.0625, 0.125, 0.5, 0, 0</discrete>
+   <class>19</class>
+  </state>
+  <state id="20" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>20</class>
+  </state>
+  <state id="21" initial="0.00000000">
+   <discrete id="0">0.16666667, 0.16666667, 0.33333333, 0.33333333, 0, 0</discrete>
+   <class>21</class>
+  </state>
+  <state id="22" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>22</class>
+  </state>
+  <state id="23" initial="0.00000000">
+   <discrete id="0">0.2, 0.1, 0.5, 0.2, 0, 0</discrete>
+   <class>23</class>
+  </state>
+  <state id="24" initial="0.00000000">
+   <discrete id="0">0.6, 0.2, 0.1, 0.1, 0, 0</discrete>
+   <class>24</class>
+  </state>
+  <state id="25" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>25</class>
+  </state>
+  <state id="26" initial="0.00000000">
+   <discrete id="0">0.16666667, 0.16666667, 0.16666667, 0.5, 0, 0</discrete>
+   <class>26</class>
+  </state>
+  <state id="27" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>27</class>
+  </state>
+  <state id="28" initial="0.00000000">
+   <discrete id="0">0.33333333, 0.16666667, 0.25, 0.25, 0, 0</discrete>
+   <class>28</class>
+  </state>
+  <state id="29" initial="0.00000000">
+   <discrete id="0">0.375, 0.375, 0.125, 0.125, 0, 0</discrete>
+   <class>29</class>
+  </state>
+  <state id="30" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>30</class>
+  </state>
+  <state id="31" initial="0.00000000">
+   <discrete id="0">0, 0, 0, 0, 0, 1</discrete>
+   <class>31</class>
+  </state>
+  <transition source="0" target="1">
+   <probability>0.15789474</probability>
+  </transition>
+  <transition source="0" target="2">
+   <probability>0.052631579</probability>
+  </transition>
+  <transition source="0" target="3">
+   <probability>0.052631579</probability>
+  </transition>
+  <transition source="0" target="4">
+   <probability>0.68421053</probability>
+  </transition>
+  <transition source="0" target="5">
+   <probability>0.052631579</probability>
+  </transition>
+  <transition source="1" target="6">
+   <probability>0.42857143</probability>
+  </transition>
+  <transition source="1" target="7">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="1" target="8">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="1" target="9">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="1" target="10">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="2" target="6">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="2" target="7">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="2" target="8">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="2" target="9">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="2" target="10">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="3" target="6">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="3" target="7">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="3" target="8">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="3" target="9">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="3" target="10">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="4" target="6">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="4" target="7">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="4" target="8">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="4" target="9">
+   <probability>0.76470588</probability>
+  </transition>
+  <transition source="4" target="10">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="5" target="6">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="5" target="7">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="5" target="8">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="5" target="9">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="5" target="10">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="6" target="11">
+   <probability>0.42857143</probability>
+  </transition>
+  <transition source="6" target="12">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="6" target="13">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="6" target="14">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="6" target="15">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="7" target="11">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="7" target="12">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="7" target="13">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="7" target="14">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="7" target="15">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="8" target="11">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="8" target="12">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="8" target="13">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="8" target="14">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="8" target="15">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="9" target="11">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="9" target="12">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="9" target="13">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="9" target="14">
+   <probability>0.76470588</probability>
+  </transition>
+  <transition source="9" target="15">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="10" target="11">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="10" target="12">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="10" target="13">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="10" target="14">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="10" target="15">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="11" target="16">
+   <probability>0.42857143</probability>
+  </transition>
+  <transition source="11" target="17">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="11" target="18">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="11" target="19">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="11" target="20">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="12" target="16">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="12" target="17">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="12" target="18">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="12" target="19">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="12" target="20">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="13" target="16">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="13" target="17">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="13" target="18">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="13" target="19">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="13" target="20">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="14" target="16">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="14" target="17">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="14" target="18">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="14" target="19">
+   <probability>0.76470588</probability>
+  </transition>
+  <transition source="14" target="20">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="15" target="16">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="15" target="17">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="15" target="18">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="15" target="19">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="15" target="20">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="16" target="21">
+   <probability>0.42857143</probability>
+  </transition>
+  <transition source="16" target="22">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="16" target="23">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="16" target="24">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="16" target="25">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="17" target="21">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="17" target="22">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="17" target="23">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="17" target="24">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="17" target="25">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="18" target="21">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="18" target="22">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="18" target="23">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="18" target="24">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="18" target="25">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="19" target="21">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="19" target="22">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="19" target="23">
+   <probability>0.41176471</probability>
+  </transition>
+  <transition source="19" target="24">
+   <probability>0.41176471</probability>
+  </transition>
+  <transition source="19" target="25">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="20" target="21">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="20" target="22">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="20" target="23">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="20" target="24">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="20" target="25">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="21" target="26">
+   <probability>0.42857143</probability>
+  </transition>
+  <transition source="21" target="27">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="21" target="28">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="21" target="29">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="21" target="30">
+   <probability>0.14285714</probability>
+  </transition>
+  <transition source="22" target="26">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="22" target="27">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="22" target="28">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="22" target="29">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="22" target="30">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="23" target="26">
+   <probability>0.090909091</probability>
+  </transition>
+  <transition source="23" target="27">
+   <probability>0.090909091</probability>
+  </transition>
+  <transition source="23" target="28">
+   <probability>0.63636364</probability>
+  </transition>
+  <transition source="23" target="29">
+   <probability>0.090909091</probability>
+  </transition>
+  <transition source="23" target="30">
+   <probability>0.090909091</probability>
+  </transition>
+  <transition source="24" target="26">
+   <probability>0.090909091</probability>
+  </transition>
+  <transition source="24" target="27">
+   <probability>0.090909091</probability>
+  </transition>
+  <transition source="24" target="28">
+   <probability>0.27272727</probability>
+  </transition>
+  <transition source="24" target="29">
+   <probability>0.45454545</probability>
+  </transition>
+  <transition source="24" target="30">
+   <probability>0.090909091</probability>
+  </transition>
+  <transition source="25" target="26">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="25" target="27">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="25" target="28">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="25" target="29">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="25" target="30">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="26" target="31">
+   <probability>1</probability>
+  </transition>
+  <transition source="27" target="31">
+   <probability>1</probability>
+  </transition>
+  <transition source="28" target="31">
+   <probability>1</probability>
+  </transition>
+  <transition source="29" target="31">
+   <probability>1</probability>
+  </transition>
+  <transition source="30" target="31">
+   <probability>1</probability>
+  </transition>
+  <transition source="31" target="31">
+   <probability>1</probability>
+  </transition>
+ </HMM>
+</mixture>
Binary file test-data/test_shapes_logo_best_sequences.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_shapes_logo_best_sequences.txt	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,7 @@
+A	C	G	T
+0.578947368421	0.157894736842	0.210526315789	0.0526315789474
+0.263157894737	0.315789473684	0.157894736842	0.263157894737
+0.210526315789	0.210526315789	0.157894736842	0.421052631579
+0.315789473684	0.0526315789474	0.105263157895	0.526315789474
+0.368421052632	0.157894736842	0.315789473684	0.157894736842
+0.368421052632	0.210526315789	0.157894736842	0.263157894737
Binary file test-data/test_shapes_logo_global.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_shapes_logo_global.txt	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,7 @@
+A	C	G	T
+0.476973684211	0.194078947368	0.220394736842	0.108552631579
+0.274460047177	0.297709346897	0.202290653103	0.225539952823
+0.230152274532	0.205089642668	0.205089642668	0.359668440131
+0.293683667816	0.145821174691	0.176068753437	0.384426404055
+0.323937667837	0.177301370012	0.293371370423	0.205389591728
+0.292889941685	0.236277914204	0.206327031782	0.264505112329
Binary file test-data/test_shapes_logo_hairpin.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_shapes_logo_hairpin.txt	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,7 @@
+A	C	G	T
+0.5625	0.1875	0.1875	0.0625
+0.3125	0.3125	0.1875	0.1875
+0.1875	0.1875	0.1875	0.4375
+0.3125	0.0625	0.125	0.5
+0.6	0.2	0.1	0.1
+0.375	0.375	0.125	0.125
Binary file test-data/test_structure_final_graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_structure_final_model.xml	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,584 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE mixture PUBLIC "-//ghmm.org//DOCUMENT ghmm V1.0//EN" "http://ghmm.sourceforge.net/xml/1.0/ghmm.dtd">
+<mixture version="1.0" noComponents="1">
+ <HMM name="stateHMM" type="labeled discrete">
+  <alphabet id="0">
+   <symbol code="0">A</symbol>
+   <symbol code="1">C</symbol>
+   <symbol code="2">G</symbol>
+   <symbol code="3">T</symbol>
+   <symbol code="4">+</symbol>
+   <symbol code="5">#</symbol>
+  </alphabet>
+  <classAlphabet>
+   <symbol code="0">St</symbol>
+   <symbol code="1">E1</symbol>
+   <symbol code="2">I1</symbol>
+   <symbol code="3">S1</symbol>
+   <symbol code="4">H1</symbol>
+   <symbol code="5">M1</symbol>
+   <symbol code="6">E2</symbol>
+   <symbol code="7">I2</symbol>
+   <symbol code="8">S2</symbol>
+   <symbol code="9">H2</symbol>
+   <symbol code="10">M2</symbol>
+   <symbol code="11">E3</symbol>
+   <symbol code="12">I3</symbol>
+   <symbol code="13">S3</symbol>
+   <symbol code="14">H3</symbol>
+   <symbol code="15">M3</symbol>
+   <symbol code="16">E4</symbol>
+   <symbol code="17">I4</symbol>
+   <symbol code="18">S4</symbol>
+   <symbol code="19">H4</symbol>
+   <symbol code="20">M4</symbol>
+   <symbol code="21">E5</symbol>
+   <symbol code="22">I5</symbol>
+   <symbol code="23">S5</symbol>
+   <symbol code="24">H5</symbol>
+   <symbol code="25">M5</symbol>
+   <symbol code="26">E6</symbol>
+   <symbol code="27">I6</symbol>
+   <symbol code="28">S6</symbol>
+   <symbol code="29">H6</symbol>
+   <symbol code="30">M6</symbol>
+   <symbol code="31">En</symbol>
+  </classAlphabet>
+  <state id="0" initial="1.00000000">
+   <discrete id="0">0, 0, 0, 0, 1, 0</discrete>
+   <class>0</class>
+  </state>
+  <state id="1" initial="0.00000000">
+   <discrete id="0">0.4, 0.2, 0.2, 0.2, 0, 0</discrete>
+   <class>1</class>
+  </state>
+  <state id="2" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>2</class>
+  </state>
+  <state id="3" initial="0.00000000">
+   <discrete id="0">0.41176471, 0.11764706, 0.35294118, 0.11764706, 0, 0</discrete>
+   <class>3</class>
+  </state>
+  <state id="4" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>4</class>
+  </state>
+  <state id="5" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>5</class>
+  </state>
+  <state id="6" initial="0.00000000">
+   <discrete id="0">0.4, 0.2, 0.2, 0.2, 0, 0</discrete>
+   <class>6</class>
+  </state>
+  <state id="7" initial="0.00000000">
+   <discrete id="0">0.2, 0.4, 0.2, 0.2, 0, 0</discrete>
+   <class>7</class>
+  </state>
+  <state id="8" initial="0.00000000">
+   <discrete id="0">0.25, 0.1875, 0.3125, 0.25, 0, 0</discrete>
+   <class>8</class>
+  </state>
+  <state id="9" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>9</class>
+  </state>
+  <state id="10" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>10</class>
+  </state>
+  <state id="11" initial="0.00000000">
+   <discrete id="0">0.2, 0.4, 0.2, 0.2, 0, 0</discrete>
+   <class>11</class>
+  </state>
+  <state id="12" initial="0.00000000">
+   <discrete id="0">0.4, 0.2, 0.2, 0.2, 0, 0</discrete>
+   <class>12</class>
+  </state>
+  <state id="13" initial="0.00000000">
+   <discrete id="0">0.38461538, 0.15384615, 0.23076923, 0.23076923, 0, 0</discrete>
+   <class>13</class>
+  </state>
+  <state id="14" initial="0.00000000">
+   <discrete id="0">0.28571429, 0.42857143, 0.14285714, 0.14285714, 0, 0</discrete>
+   <class>14</class>
+  </state>
+  <state id="15" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>15</class>
+  </state>
+  <state id="16" initial="0.00000000">
+   <discrete id="0">0.4, 0.2, 0.2, 0.2, 0, 0</discrete>
+   <class>16</class>
+  </state>
+  <state id="17" initial="0.00000000">
+   <discrete id="0">0.2, 0.2, 0.2, 0.4, 0, 0</discrete>
+   <class>17</class>
+  </state>
+  <state id="18" initial="0.00000000">
+   <discrete id="0">0.125, 0.125, 0.25, 0.5, 0, 0</discrete>
+   <class>18</class>
+  </state>
+  <state id="19" initial="0.00000000">
+   <discrete id="0">0.5, 0.16666667, 0.083333333, 0.25, 0, 0</discrete>
+   <class>19</class>
+  </state>
+  <state id="20" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>20</class>
+  </state>
+  <state id="21" initial="0.00000000">
+   <discrete id="0">0.4, 0.2, 0.2, 0.2, 0, 0</discrete>
+   <class>21</class>
+  </state>
+  <state id="22" initial="0.00000000">
+   <discrete id="0">0.2, 0.4, 0.2, 0.2, 0, 0</discrete>
+   <class>22</class>
+  </state>
+  <state id="23" initial="0.00000000">
+   <discrete id="0">0.14285714, 0.14285714, 0.14285714, 0.57142857, 0, 0</discrete>
+   <class>23</class>
+  </state>
+  <state id="24" initial="0.00000000">
+   <discrete id="0">0.23076923, 0.38461538, 0.15384615, 0.23076923, 0, 0</discrete>
+   <class>24</class>
+  </state>
+  <state id="25" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>25</class>
+  </state>
+  <state id="26" initial="0.00000000">
+   <discrete id="0">0.2, 0.2, 0.4, 0.2, 0, 0</discrete>
+   <class>26</class>
+  </state>
+  <state id="27" initial="0.00000000">
+   <discrete id="0">0.2, 0.4, 0.2, 0.2, 0, 0</discrete>
+   <class>27</class>
+  </state>
+  <state id="28" initial="0.00000000">
+   <discrete id="0">0.57142857, 0.14285714, 0.14285714, 0.14285714, 0, 0</discrete>
+   <class>28</class>
+  </state>
+  <state id="29" initial="0.00000000">
+   <discrete id="0">0.38461538, 0.23076923, 0.076923077, 0.30769231, 0, 0</discrete>
+   <class>29</class>
+  </state>
+  <state id="30" initial="0.00000000">
+   <discrete id="0">0.25, 0.25, 0.25, 0.25, 0, 0</discrete>
+   <class>30</class>
+  </state>
+  <state id="31" initial="0.00000000">
+   <discrete id="0">0, 0, 0, 0, 0, 1</discrete>
+   <class>31</class>
+  </state>
+  <transition source="0" target="1">
+   <probability>0.10526316</probability>
+  </transition>
+  <transition source="0" target="2">
+   <probability>0.052631579</probability>
+  </transition>
+  <transition source="0" target="3">
+   <probability>0.73684211</probability>
+  </transition>
+  <transition source="0" target="4">
+   <probability>0.052631579</probability>
+  </transition>
+  <transition source="0" target="5">
+   <probability>0.052631579</probability>
+  </transition>
+  <transition source="1" target="6">
+   <probability>0.33333333</probability>
+  </transition>
+  <transition source="1" target="7">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="1" target="8">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="1" target="9">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="1" target="10">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="2" target="6">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="2" target="7">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="2" target="8">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="2" target="9">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="2" target="10">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="3" target="6">
+   <probability>0.055555556</probability>
+  </transition>
+  <transition source="3" target="7">
+   <probability>0.11111111</probability>
+  </transition>
+  <transition source="3" target="8">
+   <probability>0.72222222</probability>
+  </transition>
+  <transition source="3" target="9">
+   <probability>0.055555556</probability>
+  </transition>
+  <transition source="3" target="10">
+   <probability>0.055555556</probability>
+  </transition>
+  <transition source="4" target="6">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="4" target="7">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="4" target="8">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="4" target="9">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="4" target="10">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="5" target="6">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="5" target="7">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="5" target="8">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="5" target="9">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="5" target="10">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="6" target="11">
+   <probability>0.33333333</probability>
+  </transition>
+  <transition source="6" target="12">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="6" target="13">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="6" target="14">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="6" target="15">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="7" target="11">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="7" target="12">
+   <probability>0.33333333</probability>
+  </transition>
+  <transition source="7" target="13">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="7" target="14">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="7" target="15">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="8" target="11">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="8" target="12">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="8" target="13">
+   <probability>0.58823529</probability>
+  </transition>
+  <transition source="8" target="14">
+   <probability>0.23529412</probability>
+  </transition>
+  <transition source="8" target="15">
+   <probability>0.058823529</probability>
+  </transition>
+  <transition source="9" target="11">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="9" target="12">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="9" target="13">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="9" target="14">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="9" target="15">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="10" target="11">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="10" target="12">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="10" target="13">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="10" target="14">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="10" target="15">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="11" target="16">
+   <probability>0.33333333</probability>
+  </transition>
+  <transition source="11" target="17">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="11" target="18">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="11" target="19">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="11" target="20">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="12" target="16">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="12" target="17">
+   <probability>0.33333333</probability>
+  </transition>
+  <transition source="12" target="18">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="12" target="19">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="12" target="20">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="13" target="16">
+   <probability>0.071428571</probability>
+  </transition>
+  <transition source="13" target="17">
+   <probability>0.071428571</probability>
+  </transition>
+  <transition source="13" target="18">
+   <probability>0.35714286</probability>
+  </transition>
+  <transition source="13" target="19">
+   <probability>0.42857143</probability>
+  </transition>
+  <transition source="13" target="20">
+   <probability>0.071428571</probability>
+  </transition>
+  <transition source="14" target="16">
+   <probability>0.125</probability>
+  </transition>
+  <transition source="14" target="17">
+   <probability>0.125</probability>
+  </transition>
+  <transition source="14" target="18">
+   <probability>0.125</probability>
+  </transition>
+  <transition source="14" target="19">
+   <probability>0.5</probability>
+  </transition>
+  <transition source="14" target="20">
+   <probability>0.125</probability>
+  </transition>
+  <transition source="15" target="16">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="15" target="17">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="15" target="18">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="15" target="19">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="15" target="20">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="16" target="21">
+   <probability>0.33333333</probability>
+  </transition>
+  <transition source="16" target="22">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="16" target="23">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="16" target="24">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="16" target="25">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="17" target="21">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="17" target="22">
+   <probability>0.33333333</probability>
+  </transition>
+  <transition source="17" target="23">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="17" target="24">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="17" target="25">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="18" target="21">
+   <probability>0.11111111</probability>
+  </transition>
+  <transition source="18" target="22">
+   <probability>0.11111111</probability>
+  </transition>
+  <transition source="18" target="23">
+   <probability>0.44444444</probability>
+  </transition>
+  <transition source="18" target="24">
+   <probability>0.22222222</probability>
+  </transition>
+  <transition source="18" target="25">
+   <probability>0.11111111</probability>
+  </transition>
+  <transition source="19" target="21">
+   <probability>0.076923077</probability>
+  </transition>
+  <transition source="19" target="22">
+   <probability>0.076923077</probability>
+  </transition>
+  <transition source="19" target="23">
+   <probability>0.076923077</probability>
+  </transition>
+  <transition source="19" target="24">
+   <probability>0.69230769</probability>
+  </transition>
+  <transition source="19" target="25">
+   <probability>0.076923077</probability>
+  </transition>
+  <transition source="20" target="21">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="20" target="22">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="20" target="23">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="20" target="24">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="20" target="25">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="21" target="26">
+   <probability>0.33333333</probability>
+  </transition>
+  <transition source="21" target="27">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="21" target="28">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="21" target="29">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="21" target="30">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="22" target="26">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="22" target="27">
+   <probability>0.33333333</probability>
+  </transition>
+  <transition source="22" target="28">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="22" target="29">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="22" target="30">
+   <probability>0.16666667</probability>
+  </transition>
+  <transition source="23" target="26">
+   <probability>0.125</probability>
+  </transition>
+  <transition source="23" target="27">
+   <probability>0.125</probability>
+  </transition>
+  <transition source="23" target="28">
+   <probability>0.5</probability>
+  </transition>
+  <transition source="23" target="29">
+   <probability>0.125</probability>
+  </transition>
+  <transition source="23" target="30">
+   <probability>0.125</probability>
+  </transition>
+  <transition source="24" target="26">
+   <probability>0.071428571</probability>
+  </transition>
+  <transition source="24" target="27">
+   <probability>0.071428571</probability>
+  </transition>
+  <transition source="24" target="28">
+   <probability>0.071428571</probability>
+  </transition>
+  <transition source="24" target="29">
+   <probability>0.71428571</probability>
+  </transition>
+  <transition source="24" target="30">
+   <probability>0.071428571</probability>
+  </transition>
+  <transition source="25" target="26">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="25" target="27">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="25" target="28">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="25" target="29">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="25" target="30">
+   <probability>0.2</probability>
+  </transition>
+  <transition source="26" target="31">
+   <probability>1</probability>
+  </transition>
+  <transition source="27" target="31">
+   <probability>1</probability>
+  </transition>
+  <transition source="28" target="31">
+   <probability>1</probability>
+  </transition>
+  <transition source="29" target="31">
+   <probability>1</probability>
+  </transition>
+  <transition source="30" target="31">
+   <probability>1</probability>
+  </transition>
+  <transition source="31" target="31">
+   <probability>1</probability>
+  </transition>
+ </HMM>
+</mixture>
Binary file test-data/test_structure_logo_best_sequences.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_structure_logo_best_sequences.txt	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,7 @@
+A	C	G	T
+0.421052631579	0.105263157895	0.315789473684	0.157894736842
+0.263157894737	0.210526315789	0.263157894737	0.263157894737
+0.421052631579	0.263157894737	0.157894736842	0.157894736842
+0.368421052632	0.157894736842	0.105263157895	0.368421052632
+0.210526315789	0.368421052632	0.105263157895	0.315789473684
+0.421052631579	0.210526315789	0.105263157895	0.263157894737
Binary file test-data/test_structure_logo_global.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_structure_logo_global.txt	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,7 @@
+A	C	G	T
+0.384984520124	0.147213622291	0.320588235294	0.147213622291
+0.259590643275	0.227938596491	0.274400584795	0.238070175439
+0.327199882562	0.26038871185	0.206205702794	0.206205702794
+0.321786111248	0.176320123839	0.177234517667	0.324659247247
+0.235785812673	0.292484260816	0.177506621579	0.294223304932
+0.349524327816	0.23630361257	0.180298105303	0.233873954311
Binary file test-data/test_structure_logo_hairpin.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_structure_logo_hairpin.txt	Fri Jul 06 09:01:40 2018 -0400
@@ -0,0 +1,7 @@
+A	C	G	T
+0.25	0.25	0.25	0.25
+0.25	0.25	0.25	0.25
+0.285714285714	0.428571428571	0.142857142857	0.142857142857
+0.5	0.166666666667	0.0833333333333	0.25
+0.230769230769	0.384615384615	0.153846153846	0.230769230769
+0.384615384615	0.230769230769	0.0769230769231	0.307692307692