changeset 0:7346619ad005 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/crispr_studio/ commit d746438ee434696f2867394eca7a93d6ec704320"
author iuc
date Wed, 14 Aug 2019 11:37:55 -0400
parents
children a227c05e0a55
files crispr_studio.xml test-data/crispr_test.gff test-data/crispr_test.gff.fasta test-data/crispr_test.gff.fasta_fasta36 test-data/crispr_test.gff.fasta_fasta36.spacermatch test-data/crispr_test.gff.fasta_fasta36.spacermatch.mcl test-data/crispr_test.gff.fasta_fasta36.spacermatch.mcl.col test-data/crispr_test.gff.fasta_fasta36.spacermatch.mcl.final test-data/crispr_test.gff.fasta_fasta36.spacermatch.mcl.svg test-data/crispr_test_adv.gff test-data/crispr_test_adv.gff.fasta test-data/crispr_test_adv.gff.fasta_fasta36.spacermatch.mcl.final test-data/crispr_test_adv.gff.fasta_fasta36.spacermatch.mcl.svg test-data/test_isolates.txt
diffstat 14 files changed, 633 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/crispr_studio.xml	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,161 @@
+<?xml version="1.0"?>
+<tool id="crispr_studio" name="CRISPR Studio" version="1+galaxy0">
+    <description>
+        facilitate and accelerate CRISPR array visualization from a GFF3 file generated with CRISPRDetect
+    </description>
+    <requirements>
+        <requirement type="package" version="1">crispr_studio</requirement>
+    </requirements>
+    <command detect_errors="exit_code">
+        <![CDATA[
+        ln -s '${input_data}' ./infile &&
+
+        #if $rerun.r == '-r':
+            ln -s '${rerun.prev_final}' infile.fasta_fasta36.spacermatch.mcl.final &&
+            ln -s '${rerun.prev_svg}' infile.fasta_fasta36.spacermatch.mcl.svg &&
+        #end if
+
+        CRISPR_Studio
+
+        #if $order.s_order == 'File':
+            -l '${order.isolate_list}'
+        #else:
+            -s '${order.s_order}'
+        #end if
+
+        $f
+        $n
+        $gU
+        $gS
+        $rerun.r
+
+        #if $cut_off:
+            -c '${cut_off}'
+        #end if
+
+        -i ./infile
+    ]]></command>
+    <inputs>
+        <param name="input_data" type="data" format="gff" label="Input sequences" help="gff (GFF3) files are valid"/>
+        <conditional name="order">
+            <param name='s_order' type="select" label="Order of Isolates" help="Determine order of isolates in figure (-s)">
+                <option value="DistMatrix" selected="True">DistMatrix (Order extracted from a distance matrix based on the similarity of the arrays in the isolates.)</option>
+                <option value="CRISPRDetect">CRISPRDetect (Order in GFF File)</option>
+                <option value="File">By File</option>
+            </param>
+            <when value="DistMatrix">
+            </when>
+            <when value="CRISPRDetect">
+            </when>
+            <when value="File">
+                 <param name="isolate_list" type="data" format="txt" optional="true" label="List of Isolates to show" help="Generate the figure with the subset of isolates listed in the file"/>
+            </when>
+        </conditional>
+        <param name="n" argument="-n" truevalue="-n" falsevalue="" type="boolean" label="Show the size of the spacers over the boxed diamonds?" help="We recommend to use this option only for experimental analysis of the data"/>
+        <param argument="-f" truevalue="-f" falsevalue="" type="boolean" label="Skip the verification of the fasta file generated from the GFF file?" help="The verification is mainly based on the length of the spacer sequences. If a spacer is 1.5 time shorter or longer than the average spacer size of the dataset, a warning is raised and the script stops (Verification is ran by default)."/>
+        <param name="cut_off" type="integer" optional="true" label="Score cutoff for pairing of the spacers"/>
+        <param argument="-gU" truevalue="-gU" falsevalue="" type="boolean" label="Gray out unique?" help="The unique spacers will be grayed"/>
+        <param argument="-gS" truevalue="-gS" falsevalue="" type="boolean" label="Gray out similar?" help="The conserved spacers will be grayed"/>
+        <conditional name="rerun">
+            <param argument="-r" type="select" label="Change spacer colour?" help="Use this option to keep the same color attributed to the spacer during a previous analysis">
+                <option value="">No</option>
+                <option value="-r">Yes</option>
+            </param>
+            <when value="-r">
+                <param name="prev_final" format="tabular" label="Previous spacer.mcl.final" type="data" help="Input a previous .final file you want to retain the colour from"/>
+                <param name="prev_svg" format="svg" label="Previous SVG" type="data" help="Input a previous .svg file you want to retain the colour from"/>
+            </when>
+            <when value="">
+            </when>
+        </conditional>
+        <param name="outputs" type="select" multiple="true" display="checkboxes" label="Additional outputs">
+             <option value="out_fasta36">Fasta36</option>
+             <option value="out_spacermatch">Spacermatch</option>
+             <option value="out_spacermatch_mcl">Spacermatch MCL</option>
+             <option value="out_spacermatch_mcl_col">Spacermatch MCL Col</option>
+        </param>
+
+    </inputs>
+    <outputs>
+        <data name="output_fasta" format="tabular" label="${tool.name} on ${on_string}: fasta output" from_work_dir="infile.fasta"/>
+        <data name="output_fasta36" format="tabular" label="${tool.name} on ${on_string}: fasta_fast36 output" from_work_dir="infile.fasta_fasta36">
+            <filter>outputs and 'out_fasta36' in outputs</filter>
+        </data>
+        <data name="output_spacermatch" format="tabular" label="${tool.name} on ${on_string}: spacermatch output" from_work_dir="infile.fasta_fasta36.spacermatch">
+           <filter>outputs and 'out_spacermatch' in outputs</filter>
+        </data>
+        <data name="output_spacermatch_mcl" format="tabular" label="${tool.name} on ${on_string}: spacermatch.mcl output" from_work_dir="infile.fasta_fasta36.spacermatch.mcl">
+            <filter>outputs and 'out_spacermatch_mcl' in outputs</filter>
+        </data>
+        <data name="output_spacermatch_mcl_col" format="tabular" label="${tool.name} on ${on_string}: spacermatch.mcl.col output" from_work_dir="infile.fasta_fasta36.spacermatch.mcl.col">
+            <filter>outputs and 'out_spacermatch_mcl_col' in outputs</filter>
+        </data>
+        <data name="output_spacermatch_mcl_final" format="tabular" label="${tool.name} on ${on_string}: spacematch.mcl.final output" from_work_dir="infile.fasta_fasta36.spacermatch.mcl.final"/>
+        <data name="output_svg" format="svg" label="${tool.name} on ${on_string}: SVG output" from_work_dir="infile.fasta_fasta36.spacermatch.mcl.svg"/>
+    </outputs>
+    <tests>
+        <test expect_num_outputs="7">
+            <param name="input_data" value="crispr_test.gff" ftype="gff"/>
+            <param name="outputs" value="out_fasta36,out_spacermatch,out_spacermatch_mcl_col,out_spacermatch_mcl"/>
+            <output name="output_fasta" file="crispr_test.gff.fasta"/>
+            <output name="output_fasta36">
+                <assert_contents>
+                    <has_text text="NC_010473"/>
+                </assert_contents>
+            </output>
+            <output name="output_spacermatch" file="crispr_test.gff.fasta_fasta36.spacermatch"/>
+            <output name="output_spacermatch_mcl" file="crispr_test.gff.fasta_fasta36.spacermatch.mcl"/>
+            <output name="output_spacermatch_mcl_col">
+                <assert_contents>
+                    <has_text text="NC_010473"/>
+                </assert_contents>
+            </output>
+            <output name="output_spacermatch_mcl_final">
+                <assert_contents>
+                    <has_text text="NC_010473"/>
+                </assert_contents>
+            </output>
+            <output name="output_svg">
+                <assert_contents>
+                    <has_text text="svg"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="3">
+            <param name="input_data" value="crispr_test_adv.gff" ftype="gff"/>
+            <param name="isolate_list" value="test_isolates.txt" ftype="txt"/>
+            <param name="n" value="true"/>
+            <output name="output_fasta" file="crispr_test_adv.gff.fasta"/>
+            <output name="output_spacermatch_mcl_final">
+                <assert_contents>
+                    <has_text text="NC_010473"/>
+                </assert_contents>
+            </output>
+            <output name="output_svg">
+                <assert_contents>
+                    <has_text text="svg"/>
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help><![CDATA[
+
+**What it does**
+
+CRISPRStudio is a program developed to facilitate and accelerate CRISPR array visualization.
+It works by first comparing spacers sequence homology in a dataset, then assigning a two-color-code
+to each cluster of spacers and finally writing an svg file, which can be opened in graphics vector editor.
+
+    ]]>
+    </help>
+    <citations>
+        <citation type="bibtex">
+@UNPUBLISHED{moineaulab2018,
+author = {moineaulab},
+title = {CRISPRStudio: Program developed to facilitate and accelerate CRISPR array visualization},
+year = {2018},
+url = {https://github.com/moineaulab/CRISPRStudio},
+}
+        </citation>
+    </citations>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/crispr_test.gff	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,40 @@
+NC_010473	CRISPRDetect	repeat_region	2994577	2994972	396	-	.	ID=CRISPR1_2994577_2994972;Note=GTGTTCCCCGCGCCAGCGGGGATAAACCG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994577	2994606	29	-	.	ID=CRISPR1_REPEAT1_2994577_2994606;Name=CRISPR1_REPEAT1_2994577_2994606;Parent=CRISPR1_2994577_2994972;Note=TGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2994606	2994638	32	-	.	ID=CRISPR1_SPACER1_2994606_2994638;Name=CRISPR1_SPACER1_2994606_2994638;Parent=CRISPR1_2994577_2994972;Note=GACAGAACGGCCTCAGTAGTCTCGTCAGGCTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994638	2994667	29	-	.	ID=CRISPR1_REPEAT2_2994638_2994667;Name=CRISPR1_REPEAT2_2994638_2994667;Parent=CRISPR1_2994577_2994972;Note=CGGTTTATCCCCGCTGGCGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2994667	2994699	32	-	.	ID=CRISPR1_SPACER2_2994667_2994699;Name=CRISPR1_SPACER2_2994667_2994699;Parent=CRISPR1_2994577_2994972;Note=CTGTTTTCGCAAATCTATGGACTATTGCTATT;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994699	2994728	29	-	.	ID=CRISPR1_REPEAT3_2994699_2994728;Name=CRISPR1_REPEAT3_2994699_2994728;Parent=CRISPR1_2994577_2994972;Note=CGGTTTATCCCCGCTGGCGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2994728	2994760	32	-	.	ID=CRISPR1_SPACER3_2994728_2994760;Name=CRISPR1_SPACER3_2994728_2994760;Parent=CRISPR1_2994577_2994972;Note=GGGCGCACGGAATACAAAGCCGTGTATCTGCT;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994760	2994789	29	-	.	ID=CRISPR1_REPEAT4_2994760_2994789;Name=CRISPR1_REPEAT4_2994760_2994789;Parent=CRISPR1_2994577_2994972;Note=CGGTTTATCCCCGCTGGCGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2994789	2994821	32	-	.	ID=CRISPR1_SPACER4_2994789_2994821;Name=CRISPR1_SPACER4_2994789_2994821;Parent=CRISPR1_2994577_2994972;Note=TGGCTCTGCAACAGCAGCACCCATGACCACGT;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994821	2994850	29	-	.	ID=CRISPR1_REPEAT5_2994821_2994850;Name=CRISPR1_REPEAT5_2994821_2994850;Parent=CRISPR1_2994577_2994972;Note=CGGTTTATCCCCGCTGGCGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2994850	2994882	32	-	.	ID=CRISPR1_SPACER5_2994850_2994882;Name=CRISPR1_SPACER5_2994850_2994882;Parent=CRISPR1_2994577_2994972;Note=GAAATGCTGGTGAGCGTTAATGCCGCAAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994882	2994911	29	-	.	ID=CRISPR1_REPEAT6_2994882_2994911;Name=CRISPR1_REPEAT6_2994882_2994911;Parent=CRISPR1_2994577_2994972;Note=AGGTTTATCCCCGCTGGCGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2994911	2994943	32	-	.	ID=CRISPR1_SPACER6_2994911_2994943;Name=CRISPR1_SPACER6_2994911_2994943;Parent=CRISPR1_2994577_2994972;Note=ATTACGCCTTTTTGCGATTGCCCGGTTTTTGC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994943	2994972	29	-	.	ID=CRISPR1_REPEAT7_2994943_2994972;Name=CRISPR1_REPEAT7_2994943_2994972;Parent=CRISPR1_2994577_2994972;Note=CGGTTTATCCCCGCTGGCGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	repeat_region	2968265	2969028	764	-	.	ID=CRISPR2_2968265_2969028;Note=GAGTTCCCCGCGCCAGCGGGGATAAACCG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968265	2968294	29	-	.	ID=CRISPR2_REPEAT1_2968265_2968294;Name=CRISPR2_REPEAT1_2968265_2968294;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGATGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968294	2968326	32	-	.	ID=CRISPR2_SPACER1_2968294_2968326;Name=CRISPR2_SPACER1_2968294_2968326;Parent=CRISPR2_2968265_2969028;Note=CAGCGTCAGGCGTGAAATCTCACCGTCGTTGC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968326	2968355	29	-	.	ID=CRISPR2_REPEAT2_2968326_2968355;Name=CRISPR2_REPEAT2_2968326_2968355;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCTGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968355	2968387	32	-	.	ID=CRISPR2_SPACER2_2968355_2968387;Name=CRISPR2_SPACER2_2968355_2968387;Parent=CRISPR2_2968265_2969028;Note=TCGGTTCAGGCGTTGCAAACCTGGCTACCGGG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968387	2968416	29	-	.	ID=CRISPR2_REPEAT3_2968387_2968416;Name=CRISPR2_REPEAT3_2968387_2968416;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTAACGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968416	2968448	32	-	.	ID=CRISPR2_SPACER3_2968416_2968448;Name=CRISPR2_SPACER3_2968416_2968448;Parent=CRISPR2_2968265_2969028;Note=GTAGTCCATCATTCCACCTATGTCTGAACTCC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968448	2968477	29	-	.	ID=CRISPR2_REPEAT4_2968448_2968477;Name=CRISPR2_REPEAT4_2968448_2968477;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968477	2968509	32	-	.	ID=CRISPR2_SPACER4_2968477_2968509;Name=CRISPR2_SPACER4_2968477_2968509;Parent=CRISPR2_2968265_2969028;Note=CCGGGGGATAATGTTTACGGTCATGCGCCCCC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968509	2968538	29	-	.	ID=CRISPR2_REPEAT5_2968509_2968538;Name=CRISPR2_REPEAT5_2968509_2968538;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968538	2968570	32	-	.	ID=CRISPR2_SPACER5_2968538_2968570;Name=CRISPR2_SPACER5_2968538_2968570;Parent=CRISPR2_2968265_2969028;Note=TGGGCGGCTTGCCTTGCAGCCAGCTCCAGCAG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968570	2968599	29	-	.	ID=CRISPR2_REPEAT6_2968570_2968599;Name=CRISPR2_REPEAT6_2968570_2968599;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968599	2968631	32	-	.	ID=CRISPR2_SPACER6_2968599_2968631;Name=CRISPR2_SPACER6_2968599_2968631;Parent=CRISPR2_2968265_2969028;Note=AAGCTGGCTGGCAATCTCTTTCGGGGTGAGTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968631	2968660	29	-	.	ID=CRISPR2_REPEAT7_2968631_2968660;Name=CRISPR2_REPEAT7_2968631_2968660;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCTCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968660	2968692	32	-	.	ID=CRISPR2_SPACER7_2968660_2968692;Name=CRISPR2_SPACER7_2968660_2968692;Parent=CRISPR2_2968265_2969028;Note=TAGTTTCCGTATCTCCGGATTTATAAAGCTGA;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968692	2968721	29	-	.	ID=CRISPR2_REPEAT8_2968692_2968721;Name=CRISPR2_REPEAT8_2968692_2968721;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968721	2968754	33	-	.	ID=CRISPR2_SPACER8_2968721_2968754;Name=CRISPR2_SPACER8_2968721_2968754;Parent=CRISPR2_2968265_2969028;Note=GCAGGCGGCGACGCGCAGGGTATGCGCGATTCG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968754	2968783	29	-	.	ID=CRISPR2_REPEAT9_2968754_2968783;Name=CRISPR2_REPEAT9_2968754_2968783;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968783	2968816	33	-	.	ID=CRISPR2_SPACER9_2968783_2968816;Name=CRISPR2_SPACER9_2968783_2968816;Parent=CRISPR2_2968265_2969028;Note=GCGACCGCTCAGAAATTCCAGACCCGATCCAAA;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968816	2968845	29	-	.	ID=CRISPR2_REPEAT10_2968816_2968845;Name=CRISPR2_REPEAT10_2968816_2968845;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968845	2968877	32	-	.	ID=CRISPR2_SPACER10_2968845_2968877;Name=CRISPR2_SPACER10_2968845_2968877;Parent=CRISPR2_2968265_2969028;Note=TCAACATTATCAATTACAACCGACAGGGAGCC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968877	2968906	29	-	.	ID=CRISPR2_REPEAT11_2968877_2968906;Name=CRISPR2_REPEAT11_2968877_2968906;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968906	2968938	32	-	.	ID=CRISPR2_SPACER11_2968906_2968938;Name=CRISPR2_SPACER11_2968906_2968938;Parent=CRISPR2_2968265_2969028;Note=AGCGTGTTCGGCATCACCTTTGGCTTCGGCTG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968938	2968967	29	-	.	ID=CRISPR2_REPEAT12_2968938_2968967;Name=CRISPR2_REPEAT12_2968938_2968967;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968967	2968999	32	-	.	ID=CRISPR2_SPACER12_2968967_2968999;Name=CRISPR2_SPACER12_2968967_2968999;Parent=CRISPR2_2968265_2969028;Note=TGCGTGAGCGTATCGCCGCGCGTCTGCGAAAG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968999	2969028	29	-	.	ID=CRISPR2_REPEAT13_2968999_2969028;Name=CRISPR2_REPEAT13_2968999_2969028;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/crispr_test.gff.fasta	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,36 @@
+>NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-
+GACAGAACGGCCTCAGTAGTCTCGTCAGGCTC
+>NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-
+CTGTTTTCGCAAATCTATGGACTATTGCTATT
+>NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-
+GGGCGCACGGAATACAAAGCCGTGTATCTGCT
+>NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-
+TGGCTCTGCAACAGCAGCACCCATGACCACGT
+>NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-
+GAAATGCTGGTGAGCGTTAATGCCGCAAACAC
+>NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-
+ATTACGCCTTTTTGCGATTGCCCGGTTTTTGC
+>NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-
+CAGCGTCAGGCGTGAAATCTCACCGTCGTTGC
+>NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-
+TCGGTTCAGGCGTTGCAAACCTGGCTACCGGG
+>NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-
+GTAGTCCATCATTCCACCTATGTCTGAACTCC
+>NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-
+CCGGGGGATAATGTTTACGGTCATGCGCCCCC
+>NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-
+TGGGCGGCTTGCCTTGCAGCCAGCTCCAGCAG
+>NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-
+AAGCTGGCTGGCAATCTCTTTCGGGGTGAGTC
+>NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-
+TAGTTTCCGTATCTCCGGATTTATAAAGCTGA
+>NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-
+GCAGGCGGCGACGCGCAGGGTATGCGCGATTCG
+>NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-
+GCGACCGCTCAGAAATTCCAGACCCGATCCAAA
+>NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-
+TCAACATTATCAATTACAACCGACAGGGAGCC
+>NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-
+AGCGTGTTCGGCATCACCTTTGGCTTCGGCTG
+>NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-
+TGCGTGAGCGTATCGCCGCGCGTCTGCGAAAG
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/crispr_test.gff.fasta_fasta36	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,133 @@
+NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-	NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-	100.00	32	0	0	1	32	1	32	1.4e-11	50.3
+NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-	NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-	66.67	21	7	0	30	10	10	30	0.43	15.4
+NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	100.00	8	0	0	23	30	4	11	0.65	14.8
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	100.00	32	0	0	1	32	1	32	2.5e-15	62.7
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	100.00	8	0	0	24	17	2	9	0.079	17.8
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	88.89	9	1	0	13	5	23	31	0.22	16.3
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	100.00	7	0	0	13	7	11	17	0.28	16.0
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	80.00	10	2	0	7	16	13	22	0.61	14.9
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	80.00	10	2	0	1	10	23	32	0.61	14.9
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	80.00	10	2	0	13	4	4	13	0.61	14.9
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	87.50	8	1	0	9	2	24	31	0.79	14.5
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	87.50	8	1	0	2	9	12	19	0.79	14.5
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-	87.50	8	1	0	27	20	14	21	0.79	14.5
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	100.00	6	0	0	11	16	15	20	1	14.1
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	100.00	6	0	0	8	13	24	29	1	14.1
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	69.23	13	4	0	3	15	20	32	1.3	13.7
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	73.68	21	5	2	3	23	3	21	1.3	13.7
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	63.16	19	7	0	5	23	12	30	1.7	13.4
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	85.71	7	1	0	3	9	4	10	1.7	13.4
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	64.71	17	6	0	17	1	1	17	1.7	13.4
+NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	100.00	32	0	0	1	32	1	32	3.9e-13	55.4
+NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	75.00	16	4	0	27	12	12	27	0.14	17.0
+NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	76.92	13	3	0	3	15	13	25	0.54	15.0
+NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	76.92	13	3	0	19	31	15	27	0.54	15.0
+NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	88.89	9	1	0	9	1	22	30	0.84	14.4
+NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	75.00	12	3	0	19	8	18	29	1.6	13.4
+NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	61.90	21	8	0	21	1	9	29	1.6	13.4
+NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	100.00	32	0	0	1	32	1	32	2e-12	53.0
+NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	66.67	21	7	0	23	3	1	21	0.28	16.0
+NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	63.64	22	8	0	3	24	7	28	0.66	14.7
+NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	65.00	20	7	0	12	31	9	28	0.82	14.4
+NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	88.89	9	1	0	28	20	19	27	1	14.1
+NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	75.00	12	3	0	23	12	21	32	1.9	13.2
+NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-	75.00	12	3	0	6	17	21	32	1.9	13.2
+NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	100.00	32	0	0	1	32	1	32	6.1e-13	54.8
+NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	66.67	24	8	0	24	1	9	32	0.056	18.3
+NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	87.50	17	2	1	10	26	4	19	0.088	17.7
+NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	70.59	17	5	0	32	16	2	18	0.34	15.7
+NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	88.89	9	1	0	31	23	12	20	0.82	14.4
+NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	71.43	14	4	0	32	19	18	31	1.3	13.8
+NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	80.00	10	2	0	10	1	6	15	2	13.1
+NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	80.00	10	2	0	23	14	14	23	2	13.1
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	100.00	32	0	0	1	32	1	32	1.1e-13	57.2
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	78.57	14	3	0	28	15	17	30	0.12	17.3
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	68.42	19	6	0	11	29	4	22	0.19	16.6
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	81.82	11	2	0	24	14	8	18	0.48	15.2
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	100.00	7	0	0	17	11	7	13	0.77	14.5
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	75.00	12	3	0	24	13	11	22	1.2	13.8
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	80.00	10	2	0	10	19	23	32	1.5	13.5
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	80.00	10	2	0	13	4	14	23	1.5	13.5
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	87.50	8	1	0	32	25	25	32	1.9	13.2
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	64.71	17	6	0	1	17	11	27	1.9	13.2
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	100.00	32	0	0	1	32	1	32	3.8e-12	52.1
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	66.67	24	8	0	32	9	1	24	0.086	17.7
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	83.33	12	2	0	23	12	12	23	0.31	15.9
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	100.00	8	0	0	6	13	6	13	0.47	15.3
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-	100.00	8	0	0	4	11	23	30	0.47	15.3
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	73.33	15	4	0	7	21	4	18	0.58	14.9
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	59.26	27	11	0	32	6	1	27	1.1	14.0
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	75.00	12	3	0	30	19	19	30	2	13.1
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	75.00	12	3	0	22	11	13	24	2	13.1
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	100.00	32	0	0	1	32	1	32	6.5e-12	51.3
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	78.57	14	3	0	30	17	15	28	0.29	16.0
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	66.67	21	7	0	21	1	3	23	0.35	15.7
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	100.00	8	0	0	6	13	6	13	0.53	15.1
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	63.64	22	8	0	2	23	5	26	0.81	14.5
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	66.67	18	6	0	6	23	14	31	1.2	13.8
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	88.89	9	1	0	18	26	1	9	1.2	13.8
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	68.75	16	5	0	16	1	12	27	1.5	13.5
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-	71.43	14	4	0	32	19	12	25	1.8	13.2
+NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	100.00	32	0	0	1	32	1	32	2.8e-13	55.9
+NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	100.00	8	0	0	9	2	17	24	0.22	16.3
+NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	81.82	11	2	0	15	25	15	25	0.44	15.3
+NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	75.00	12	3	0	29	18	4	15	1.1	14.0
+NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	80.00	10	2	0	29	20	7	16	1.3	13.7
+NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	80.00	10	2	0	15	24	18	27	1.3	13.7
+NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	80.00	10	2	0	15	6	1	10	1.3	13.7
+NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	64.71	17	6	0	11	27	1	17	1.7	13.4
+NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	100.00	32	0	0	1	32	1	32	7.3e-13	54.5
+NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	90.91	11	1	0	17	7	1	11	0.095	17.6
+NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	81.82	11	2	0	26	16	2	12	0.7	14.7
+NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	88.89	9	1	0	20	12	23	31	0.88	14.3
+NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	88.89	9	1	0	27	19	20	28	0.88	14.3
+NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	88.89	9	1	0	30	22	1	9	0.88	14.3
+NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-	NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-	100.00	32	0	0	1	32	1	32	2.6e-12	52.6
+NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-	NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	100.00	9	0	0	25	17	2	10	0.2	16.5
+NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	100.00	32	0	0	1	32	1	32	1e-11	50.7
+NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-	100.00	9	0	0	10	2	17	25	0.19	16.5
+NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	73.33	15	4	0	4	18	7	21	0.65	14.8
+NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	81.82	11	2	0	18	8	14	24	0.98	14.2
+NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	88.89	9	1	0	1	9	18	26	1.2	13.9
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	100.00	32	0	0	1	32	1	32	1.6e-13	56.7
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	75.00	16	4	0	31	16	16	31	0.075	17.9
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	78.57	14	3	0	32	19	1	14	0.094	17.6
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	68.42	19	6	0	4	22	11	29	0.15	16.9
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	90.00	10	1	0	8	17	9	18	0.15	16.9
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	66.67	18	6	0	14	31	6	23	0.47	15.2
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	75.00	12	3	0	5	16	7	18	0.93	14.2
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	80.00	10	2	0	25	16	13	22	1.2	13.9
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	80.00	10	2	0	22	31	13	22	1.2	13.9
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	87.50	8	1	0	32	25	14	21	1.5	13.6
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	100.00	6	0	0	26	31	1	6	1.8	13.2
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	66.67	15	5	0	23	9	18	32	1.8	13.2
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	66.67	15	5	0	29	15	10	24	1.8	13.2
+NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	100.00	33	0	0	1	33	1	33	4.4e-11	48.6
+NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	76.19	22	5	1	27	6	8	28	0.8	14.5
+NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	70.59	17	5	0	28	12	12	28	1.2	14.0
+NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	76.92	13	3	0	13	25	3	15	1.7	13.4
+NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	100.00	33	0	0	1	33	1	33	1.4e-12	53.6
+NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	63.64	22	8	0	26	5	5	26	0.68	14.7
+NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	63.64	22	8	0	7	28	3	24	0.68	14.7
+NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	63.64	22	8	0	5	26	2	23	0.68	14.7
+NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	59.26	27	11	0	27	1	6	32	1	14.1
+NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	68.75	16	5	0	27	12	1	16	1.3	13.8
+NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	100.00	32	0	0	1	32	1	32	7.3e-13	54.5
+NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	90.91	11	1	0	11	1	7	17	0.074	17.9
+NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	78.57	14	3	0	14	1	19	32	0.14	17.0
+NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	75.00	12	3	0	30	19	19	30	1.3	13.8
+NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	80.00	10	2	0	29	20	15	24	1.6	13.4
+NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	63.16	19	7	0	2	20	12	30	1.6	13.4
+NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	100.00	32	0	0	1	32	1	32	3.2e-12	52.4
+NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	70.59	17	5	0	18	2	16	32	0.44	15.3
+NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	65.00	20	7	0	9	28	12	31	0.83	14.4
+NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	81.82	11	2	0	15	25	15	25	0.83	14.4
+NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	75.00	12	3	0	29	18	8	19	1.9	13.2
+NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	75.00	12	3	0	32	21	12	23	1.9	13.2
+NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	75.00	12	3	0	7	18	5	16	1.9	13.2
+NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	100.00	32	0	0	1	32	1	32	1.2e-09	43.8
+NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	87.50	17	2	1	4	19	10	26	0.41	15.4
+NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	76.19	22	5	1	28	8	6	27	0.82	14.4
+NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	90.00	10	1	0	9	18	8	17	0.97	14.2
+NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	76.92	13	3	0	15	27	19	31	1.6	13.4
+NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	81.82	11	2	0	12	2	16	26	1.9	13.2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/crispr_test.gff.fasta_fasta36.spacermatch	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,18 @@
+NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-	NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-
+NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-
+NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-
+NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-
+NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-
+NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-
+NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-	NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-
+NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-
+NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-
+NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-
+NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-
+NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-
+NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/crispr_test.gff.fasta_fasta36.spacermatch.mcl	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,18 @@
+NC_010473||CRISPR1_SPACER1_2994606_2994638:32:- NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:- NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-
+NC_010473||CRISPR1_SPACER3_2994728_2994760:32:- NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-
+NC_010473||CRISPR1_SPACER4_2994789_2994821:32:- NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-
+NC_010473||CRISPR1_SPACER5_2994850_2994882:32:- NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:- NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:- NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:- NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-
+NC_010473||CRISPR2_SPACER3_2968416_2968448:32:- NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-
+NC_010473||CRISPR2_SPACER4_2968477_2968509:32:- NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-
+NC_010473||CRISPR2_SPACER5_2968538_2968570:32:- NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-
+NC_010473||CRISPR2_SPACER6_2968599_2968631:32:- NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:- NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-
+NC_010473||CRISPR2_SPACER8_2968721_2968754:33:- NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-
+NC_010473||CRISPR2_SPACER9_2968783_2968816:33:- NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-
+NC_010473||CRISPR2_SPACER10_2968845_2968877:32:- NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-
+NC_010473||CRISPR2_SPACER11_2968906_2968938:32:- NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-
+NC_010473||CRISPR2_SPACER12_2968967_2968999:32:- NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/crispr_test.gff.fasta_fasta36.spacermatch.mcl.col	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,18 @@
+e92	e59	NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-	NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-
+e83	a21	NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-
+a41	ea0	NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-
+5cc	c33	NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-
+165	34b	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-
+aba	8b5	NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-
+77b	31a	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-
+4e4	f2f	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-
+a8a	f6e	NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-
+ea9	0b2	NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-
+ebd	122	NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-	NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-
+6dc	915	NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-
+1e4	8c1	NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-
+966	d0f	NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-
+be2	a25	NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-
+986	6db	NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-
+608	00f	NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-
+609	0bf	NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/crispr_test.gff.fasta_fasta36.spacermatch.mcl.final	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,18 @@
+NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-	GACAGAACGGCCTCAGTAGTCTCGTCAGGCTC	32	-	e92	e59	cls_0001
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	CTGTTTTCGCAAATCTATGGACTATTGCTATT	32	-	e83	a21	cls_0002
+NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	GGGCGCACGGAATACAAAGCCGTGTATCTGCT	32	-	a41	ea0	cls_0003
+NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	TGGCTCTGCAACAGCAGCACCCATGACCACGT	32	-	5cc	c33	cls_0004
+NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	GAAATGCTGGTGAGCGTTAATGCCGCAAACAC	32	-	165	34b	cls_0005
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	ATTACGCCTTTTTGCGATTGCCCGGTTTTTGC	32	-	aba	8b5	cls_0006
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	CAGCGTCAGGCGTGAAATCTCACCGTCGTTGC	32	-	77b	31a	cls_0007
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	TCGGTTCAGGCGTTGCAAACCTGGCTACCGGG	32	-	4e4	f2f	cls_0008
+NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	GTAGTCCATCATTCCACCTATGTCTGAACTCC	32	-	a8a	f6e	cls_0009
+NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	CCGGGGGATAATGTTTACGGTCATGCGCCCCC	32	-	ea9	0b2	cls_0010
+NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-	TGGGCGGCTTGCCTTGCAGCCAGCTCCAGCAG	32	-	ebd	122	cls_0011
+NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	AAGCTGGCTGGCAATCTCTTTCGGGGTGAGTC	32	-	6dc	915	cls_0012
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	TAGTTTCCGTATCTCCGGATTTATAAAGCTGA	32	-	1e4	8c1	cls_0013
+NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	GCAGGCGGCGACGCGCAGGGTATGCGCGATTCG	33	-	966	d0f	cls_0014
+NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	GCGACCGCTCAGAAATTCCAGACCCGATCCAAA	33	-	be2	a25	cls_0015
+NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	TCAACATTATCAATTACAACCGACAGGGAGCC	32	-	986	6db	cls_0016
+NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	AGCGTGTTCGGCATCACCTTTGGCTTCGGCTG	32	-	608	00f	cls_0017
+NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	TGCGTGAGCGTATCGCCGCGCGTCTGCGAAAG	32	-	609	0bf	cls_0018
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/crispr_test.gff.fasta_fasta36.spacermatch.mcl.svg	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,39 @@
+<svg>
+<text x="500" y="6.5" width="1.6" height="4" font-family="Verdana" font-size="7" fill="black">NC_010473</text>
+<rect x="492.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#e92" />
+<polygon points="493.5,3.75 496.25,1 499.0,3.75 496.25,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#e59"/>
+<rect x="485.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#e83" />
+<polygon points="486.0,3.75 488.75,1 491.5,3.75 488.75,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#a21"/>
+<rect x="477.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#a41" />
+<polygon points="478.5,3.75 481.25,1 484.0,3.75 481.25,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#ea0"/>
+<rect x="470.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#5cc" />
+<polygon points="471.0,3.75 473.75,1 476.5,3.75 473.75,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#c33"/>
+<rect x="462.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#165" />
+<polygon points="463.5,3.75 466.25,1 469.0,3.75 466.25,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#34b"/>
+<rect x="455.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#aba" />
+<polygon points="456.0,3.75 458.75,1 461.5,3.75 458.75,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#8b5"/>
+<rect x="427.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#77b" />
+<polygon points="428.5,3.75 431.25,1 434.0,3.75 431.25,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#31a"/>
+<rect x="420.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#4e4" />
+<polygon points="421.0,3.75 423.75,1 426.5,3.75 423.75,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#f2f"/>
+<rect x="412.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#a8a" />
+<polygon points="413.5,3.75 416.25,1 419.0,3.75 416.25,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#f6e"/>
+<rect x="405.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#ea9" />
+<polygon points="406.0,3.75 408.75,1 411.5,3.75 408.75,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#0b2"/>
+<rect x="397.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#ebd" />
+<polygon points="398.5,3.75 401.25,1 404.0,3.75 401.25,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#122"/>
+<rect x="390.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#6dc" />
+<polygon points="391.0,3.75 393.75,1 396.5,3.75 393.75,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#915"/>
+<rect x="382.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#1e4" />
+<polygon points="383.5,3.75 386.25,1 389.0,3.75 386.25,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#8c1"/>
+<rect x="375.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#966" />
+<polygon points="376.0,3.75 378.75,1 381.5,3.75 378.75,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#d0f"/>
+<rect x="367.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#be2" />
+<polygon points="368.5,3.75 371.25,1 374.0,3.75 371.25,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#a25"/>
+<rect x="360.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#986" />
+<polygon points="361.0,3.75 363.75,1 366.5,3.75 363.75,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#6db"/>
+<rect x="352.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#608" />
+<polygon points="353.5,3.75 356.25,1 359.0,3.75 356.25,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#00f"/>
+<rect x="345.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#609" />
+<polygon points="346.0,3.75 348.75,1 351.5,3.75 348.75,6.5" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#0bf"/>
+</svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/crispr_test_adv.gff	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,40 @@
+NC_010473	CRISPRDetect	repeat_region	2994577	2994972	396	-	.	ID=CRISPR1_2994577_2994972;Note=GTGTTCCCCGCGCCAGCGGGGATAAACCG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994577	2994606	29	-	.	ID=CRISPR1_REPEAT1_2994577_2994606;Name=CRISPR1_REPEAT1_2994577_2994606;Parent=CRISPR1_2994577_2994972;Note=TGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2994606	2994638	32	-	.	ID=CRISPR1_SPACER1_2994606_2994638;Name=CRISPR1_SPACER1_2994606_2994638;Parent=CRISPR1_2994577_2994972;Note=GACAGAACGGCCTCAGTAGTCTCGTCAGGCTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994638	2994667	29	-	.	ID=CRISPR1_REPEAT2_2994638_2994667;Name=CRISPR1_REPEAT2_2994638_2994667;Parent=CRISPR1_2994577_2994972;Note=CGGTTTATCCCCGCTGGCGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2994667	2994699	32	-	.	ID=CRISPR1_SPACER2_2994667_2994699;Name=CRISPR1_SPACER2_2994667_2994699;Parent=CRISPR1_2994577_2994972;Note=CTGTTTTCGCAAATCTATGGACTATTGCTATT;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994699	2994728	29	-	.	ID=CRISPR1_REPEAT3_2994699_2994728;Name=CRISPR1_REPEAT3_2994699_2994728;Parent=CRISPR1_2994577_2994972;Note=CGGTTTATCCCCGCTGGCGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2994728	2994760	32	-	.	ID=CRISPR1_SPACER3_2994728_2994760;Name=CRISPR1_SPACER3_2994728_2994760;Parent=CRISPR1_2994577_2994972;Note=GGGCGCACGGAATACAAAGCCGTGTATCTGCT;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994760	2994789	29	-	.	ID=CRISPR1_REPEAT4_2994760_2994789;Name=CRISPR1_REPEAT4_2994760_2994789;Parent=CRISPR1_2994577_2994972;Note=CGGTTTATCCCCGCTGGCGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2994789	2994821	32	-	.	ID=CRISPR1_SPACER4_2994789_2994821;Name=CRISPR1_SPACER4_2994789_2994821;Parent=CRISPR1_2994577_2994972;Note=TGGCTCTGCAACAGCAGCACCCATGACCACGT;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994821	2994850	29	-	.	ID=CRISPR1_REPEAT5_2994821_2994850;Name=CRISPR1_REPEAT5_2994821_2994850;Parent=CRISPR1_2994577_2994972;Note=CGGTTTATCCCCGCTGGCGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2994850	2994882	32	-	.	ID=CRISPR1_SPACER5_2994850_2994882;Name=CRISPR1_SPACER5_2994850_2994882;Parent=CRISPR1_2994577_2994972;Note=GAAATGCTGGTGAGCGTTAATGCCGCAAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994882	2994911	29	-	.	ID=CRISPR1_REPEAT6_2994882_2994911;Name=CRISPR1_REPEAT6_2994882_2994911;Parent=CRISPR1_2994577_2994972;Note=AGGTTTATCCCCGCTGGCGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2994911	2994943	32	-	.	ID=CRISPR1_SPACER6_2994911_2994943;Name=CRISPR1_SPACER6_2994911_2994943;Parent=CRISPR1_2994577_2994972;Note=ATTACGCCTTTTTGCGATTGCCCGGTTTTTGC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2994943	2994972	29	-	.	ID=CRISPR1_REPEAT7_2994943_2994972;Name=CRISPR1_REPEAT7_2994943_2994972;Parent=CRISPR1_2994577_2994972;Note=CGGTTTATCCCCGCTGGCGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	repeat_region	2968265	2969028	764	-	.	ID=CRISPR2_2968265_2969028;Note=GAGTTCCCCGCGCCAGCGGGGATAAACCG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968265	2968294	29	-	.	ID=CRISPR2_REPEAT1_2968265_2968294;Name=CRISPR2_REPEAT1_2968265_2968294;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGATGCGGGGAACAC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968294	2968326	32	-	.	ID=CRISPR2_SPACER1_2968294_2968326;Name=CRISPR2_SPACER1_2968294_2968326;Parent=CRISPR2_2968265_2969028;Note=CAGCGTCAGGCGTGAAATCTCACCGTCGTTGC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968326	2968355	29	-	.	ID=CRISPR2_REPEAT2_2968326_2968355;Name=CRISPR2_REPEAT2_2968326_2968355;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCTGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968355	2968387	32	-	.	ID=CRISPR2_SPACER2_2968355_2968387;Name=CRISPR2_SPACER2_2968355_2968387;Parent=CRISPR2_2968265_2969028;Note=TCGGTTCAGGCGTTGCAAACCTGGCTACCGGG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968387	2968416	29	-	.	ID=CRISPR2_REPEAT3_2968387_2968416;Name=CRISPR2_REPEAT3_2968387_2968416;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTAACGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968416	2968448	32	-	.	ID=CRISPR2_SPACER3_2968416_2968448;Name=CRISPR2_SPACER3_2968416_2968448;Parent=CRISPR2_2968265_2969028;Note=GTAGTCCATCATTCCACCTATGTCTGAACTCC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968448	2968477	29	-	.	ID=CRISPR2_REPEAT4_2968448_2968477;Name=CRISPR2_REPEAT4_2968448_2968477;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968477	2968509	32	-	.	ID=CRISPR2_SPACER4_2968477_2968509;Name=CRISPR2_SPACER4_2968477_2968509;Parent=CRISPR2_2968265_2969028;Note=CCGGGGGATAATGTTTACGGTCATGCGCCCCC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968509	2968538	29	-	.	ID=CRISPR2_REPEAT5_2968509_2968538;Name=CRISPR2_REPEAT5_2968509_2968538;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968538	2968570	32	-	.	ID=CRISPR2_SPACER5_2968538_2968570;Name=CRISPR2_SPACER5_2968538_2968570;Parent=CRISPR2_2968265_2969028;Note=TGGGCGGCTTGCCTTGCAGCCAGCTCCAGCAG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968570	2968599	29	-	.	ID=CRISPR2_REPEAT6_2968570_2968599;Name=CRISPR2_REPEAT6_2968570_2968599;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968599	2968631	32	-	.	ID=CRISPR2_SPACER6_2968599_2968631;Name=CRISPR2_SPACER6_2968599_2968631;Parent=CRISPR2_2968265_2969028;Note=AAGCTGGCTGGCAATCTCTTTCGGGGTGAGTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968631	2968660	29	-	.	ID=CRISPR2_REPEAT7_2968631_2968660;Name=CRISPR2_REPEAT7_2968631_2968660;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCTCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968660	2968692	32	-	.	ID=CRISPR2_SPACER7_2968660_2968692;Name=CRISPR2_SPACER7_2968660_2968692;Parent=CRISPR2_2968265_2969028;Note=TAGTTTCCGTATCTCCGGATTTATAAAGCTGA;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968692	2968721	29	-	.	ID=CRISPR2_REPEAT8_2968692_2968721;Name=CRISPR2_REPEAT8_2968692_2968721;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968721	2968754	33	-	.	ID=CRISPR2_SPACER8_2968721_2968754;Name=CRISPR2_SPACER8_2968721_2968754;Parent=CRISPR2_2968265_2969028;Note=GCAGGCGGCGACGCGCAGGGTATGCGCGATTCG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968754	2968783	29	-	.	ID=CRISPR2_REPEAT9_2968754_2968783;Name=CRISPR2_REPEAT9_2968754_2968783;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968783	2968816	33	-	.	ID=CRISPR2_SPACER9_2968783_2968816;Name=CRISPR2_SPACER9_2968783_2968816;Parent=CRISPR2_2968265_2969028;Note=GCGACCGCTCAGAAATTCCAGACCCGATCCAAA;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968816	2968845	29	-	.	ID=CRISPR2_REPEAT10_2968816_2968845;Name=CRISPR2_REPEAT10_2968816_2968845;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968845	2968877	32	-	.	ID=CRISPR2_SPACER10_2968845_2968877;Name=CRISPR2_SPACER10_2968845_2968877;Parent=CRISPR2_2968265_2969028;Note=TCAACATTATCAATTACAACCGACAGGGAGCC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968877	2968906	29	-	.	ID=CRISPR2_REPEAT11_2968877_2968906;Name=CRISPR2_REPEAT11_2968877_2968906;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968906	2968938	32	-	.	ID=CRISPR2_SPACER11_2968906_2968938;Name=CRISPR2_SPACER11_2968906_2968938;Parent=CRISPR2_2968265_2969028;Note=AGCGTGTTCGGCATCACCTTTGGCTTCGGCTG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968938	2968967	29	-	.	ID=CRISPR2_REPEAT12_2968938_2968967;Name=CRISPR2_REPEAT12_2968938_2968967;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	Spacer	2968967	2968999	32	-	.	ID=CRISPR2_SPACER12_2968967_2968999;Name=CRISPR2_SPACER12_2968967_2968999;Parent=CRISPR2_2968265_2969028;Note=TGCGTGAGCGTATCGCCGCGCGTCTGCGAAAG;Dbxref=SO:0001459;Ontology_term=CRISPR
+NC_010473	CRISPRDetect	direct_repeat	2968999	2969028	29	-	.	ID=CRISPR2_REPEAT13_2968999_2969028;Name=CRISPR2_REPEAT13_2968999_2969028;Parent=CRISPR2_2968265_2969028;Note=CGGTTTATCCCCGCTGGCGCGGGGAACTC;Dbxref=SO:0001459;Ontology_term=CRISPR
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/crispr_test_adv.gff.fasta	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,36 @@
+>NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-
+GACAGAACGGCCTCAGTAGTCTCGTCAGGCTC
+>NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-
+CTGTTTTCGCAAATCTATGGACTATTGCTATT
+>NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-
+GGGCGCACGGAATACAAAGCCGTGTATCTGCT
+>NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-
+TGGCTCTGCAACAGCAGCACCCATGACCACGT
+>NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-
+GAAATGCTGGTGAGCGTTAATGCCGCAAACAC
+>NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-
+ATTACGCCTTTTTGCGATTGCCCGGTTTTTGC
+>NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-
+CAGCGTCAGGCGTGAAATCTCACCGTCGTTGC
+>NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-
+TCGGTTCAGGCGTTGCAAACCTGGCTACCGGG
+>NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-
+GTAGTCCATCATTCCACCTATGTCTGAACTCC
+>NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-
+CCGGGGGATAATGTTTACGGTCATGCGCCCCC
+>NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-
+TGGGCGGCTTGCCTTGCAGCCAGCTCCAGCAG
+>NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-
+AAGCTGGCTGGCAATCTCTTTCGGGGTGAGTC
+>NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-
+TAGTTTCCGTATCTCCGGATTTATAAAGCTGA
+>NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-
+GCAGGCGGCGACGCGCAGGGTATGCGCGATTCG
+>NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-
+GCGACCGCTCAGAAATTCCAGACCCGATCCAAA
+>NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-
+TCAACATTATCAATTACAACCGACAGGGAGCC
+>NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-
+AGCGTGTTCGGCATCACCTTTGGCTTCGGCTG
+>NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-
+TGCGTGAGCGTATCGCCGCGCGTCTGCGAAAG
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/crispr_test_adv.gff.fasta_fasta36.spacermatch.mcl.final	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,18 @@
+NC_010473||CRISPR1_SPACER1_2994606_2994638:32:-	GACAGAACGGCCTCAGTAGTCTCGTCAGGCTC	32	-	cc8	3d2	cls_0001
+NC_010473||CRISPR1_SPACER2_2994667_2994699:32:-	CTGTTTTCGCAAATCTATGGACTATTGCTATT	32	-	e4b	34d	cls_0002
+NC_010473||CRISPR1_SPACER3_2994728_2994760:32:-	GGGCGCACGGAATACAAAGCCGTGTATCTGCT	32	-	878	92b	cls_0003
+NC_010473||CRISPR1_SPACER4_2994789_2994821:32:-	TGGCTCTGCAACAGCAGCACCCATGACCACGT	32	-	9fc	5d4	cls_0004
+NC_010473||CRISPR1_SPACER5_2994850_2994882:32:-	GAAATGCTGGTGAGCGTTAATGCCGCAAACAC	32	-	5ca	262	cls_0005
+NC_010473||CRISPR1_SPACER6_2994911_2994943:32:-	ATTACGCCTTTTTGCGATTGCCCGGTTTTTGC	32	-	bbb	654	cls_0006
+NC_010473||CRISPR2_SPACER1_2968294_2968326:32:-	CAGCGTCAGGCGTGAAATCTCACCGTCGTTGC	32	-	9ff	d71	cls_0007
+NC_010473||CRISPR2_SPACER2_2968355_2968387:32:-	TCGGTTCAGGCGTTGCAAACCTGGCTACCGGG	32	-	37d	0e9	cls_0008
+NC_010473||CRISPR2_SPACER3_2968416_2968448:32:-	GTAGTCCATCATTCCACCTATGTCTGAACTCC	32	-	349	b3e	cls_0009
+NC_010473||CRISPR2_SPACER4_2968477_2968509:32:-	CCGGGGGATAATGTTTACGGTCATGCGCCCCC	32	-	210	c94	cls_0010
+NC_010473||CRISPR2_SPACER5_2968538_2968570:32:-	TGGGCGGCTTGCCTTGCAGCCAGCTCCAGCAG	32	-	c06	56c	cls_0011
+NC_010473||CRISPR2_SPACER6_2968599_2968631:32:-	AAGCTGGCTGGCAATCTCTTTCGGGGTGAGTC	32	-	bfb	89d	cls_0012
+NC_010473||CRISPR2_SPACER7_2968660_2968692:32:-	TAGTTTCCGTATCTCCGGATTTATAAAGCTGA	32	-	f25	372	cls_0013
+NC_010473||CRISPR2_SPACER8_2968721_2968754:33:-	GCAGGCGGCGACGCGCAGGGTATGCGCGATTCG	33	-	686	4d5	cls_0014
+NC_010473||CRISPR2_SPACER9_2968783_2968816:33:-	GCGACCGCTCAGAAATTCCAGACCCGATCCAAA	33	-	fbb	296	cls_0015
+NC_010473||CRISPR2_SPACER10_2968845_2968877:32:-	TCAACATTATCAATTACAACCGACAGGGAGCC	32	-	d33	650	cls_0016
+NC_010473||CRISPR2_SPACER11_2968906_2968938:32:-	AGCGTGTTCGGCATCACCTTTGGCTTCGGCTG	32	-	fb9	3c0	cls_0017
+NC_010473||CRISPR2_SPACER12_2968967_2968999:32:-	TGCGTGAGCGTATCGCCGCGCGTCTGCGAAAG	32	-	8e0	5aa	cls_0018
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/crispr_test_adv.gff.fasta_fasta36.spacermatch.mcl.svg	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,57 @@
+<svg>
+<text x="500" y="6.5" width="1.6" height="4" font-family="Verdana" font-size="7" fill="black">NC_010473</text>
+<rect x="492.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="493.5,3.75 496.25,1 499.0,3.75 496.25,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="493.5" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="485.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="486.0,3.75 488.75,1 491.5,3.75 488.75,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="486.0" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="477.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="478.5,3.75 481.25,1 484.0,3.75 481.25,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="478.5" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="470.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="471.0,3.75 473.75,1 476.5,3.75 473.75,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="471.0" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="462.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="463.5,3.75 466.25,1 469.0,3.75 466.25,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="463.5" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="455.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="456.0,3.75 458.75,1 461.5,3.75 458.75,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="456.0" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="427.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="428.5,3.75 431.25,1 434.0,3.75 431.25,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="428.5" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="420.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="421.0,3.75 423.75,1 426.5,3.75 423.75,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="421.0" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="412.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="413.5,3.75 416.25,1 419.0,3.75 416.25,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="413.5" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="405.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="406.0,3.75 408.75,1 411.5,3.75 408.75,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="406.0" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="397.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="398.5,3.75 401.25,1 404.0,3.75 401.25,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="398.5" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="390.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="391.0,3.75 393.75,1 396.5,3.75 393.75,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="391.0" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="382.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="383.5,3.75 386.25,1 389.0,3.75 386.25,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="383.5" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="375.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="376.0,3.75 378.75,1 381.5,3.75 378.75,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="376.0" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">33</text>
+<rect x="367.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="368.5,3.75 371.25,1 374.0,3.75 371.25,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="368.5" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">33</text>
+<rect x="360.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="361.0,3.75 363.75,1 366.5,3.75 363.75,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="361.0" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="352.5" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="353.5,3.75 356.25,1 359.0,3.75 356.25,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="353.5" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+<rect x="345.0" y="0" stroke="black" stroke-width="0.2" width="7.5" height="7.5" style="fill:#FFF" fill-opacity="0.2" />
+<polygon points="346.0,3.75 348.75,1 351.5,3.75 348.75,6.5" stroke-width="0.2" width="7.5" height="7.5" style="fill:#999" fill-opacity="0.2" />
+<text x="346.0" y="5.5" width="1.2" height="3" font-family="Verdana" font-size="4.5" font-weight="bold" fill="black">32</text>
+</svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_isolates.txt	Wed Aug 14 11:37:55 2019 -0400
@@ -0,0 +1,1 @@
+nothing useful