changeset 0:adde21b6bdb3 draft

Uploaded
author cpt
date Fri, 13 May 2022 05:18:31 +0000
parents
children 95be3ae33abc
files cpt_lipop_conv/cpt-macros.xml cpt_lipop_conv/gff3.py cpt_lipop_conv/lipoP_to_gff3.py cpt_lipop_conv/lipoP_to_gff3.xml cpt_lipop_conv/macros.xml cpt_lipop_conv/test-data/LipoToGFF_In.gff3 cpt_lipop_conv/test-data/LipoToGFF_In.txt cpt_lipop_conv/test-data/LipoToGFF_Out.gff3
diffstat 8 files changed, 1360 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cpt_lipop_conv/cpt-macros.xml	Fri May 13 05:18:31 2022 +0000
@@ -0,0 +1,115 @@
+<?xml version="1.0"?>
+<macros>
+	<xml name="gff_requirements">
+		<requirements>
+			<requirement type="package" version="2.7">python</requirement>
+			<requirement type="package" version="1.65">biopython</requirement>
+			<requirement type="package" version="2.12.1">requests</requirement>
+			<yield/>
+		</requirements>
+		<version_command>
+		<![CDATA[
+			cd $__tool_directory__ && git rev-parse HEAD
+		]]>
+		</version_command>
+	</xml>
+	<xml name="citation/mijalisrasche">
+		<citation type="doi">10.1371/journal.pcbi.1008214</citation>
+		<citation type="bibtex">@unpublished{galaxyTools,
+		author = {E. Mijalis, H. Rasche},
+		title = {CPT Galaxy Tools},
+		year = {2013-2017},
+		note = {https://github.com/tamu-cpt/galaxy-tools/}
+		}
+		</citation>
+	</xml>
+	<xml name="citations">
+		<citations>
+			<citation type="doi">10.1371/journal.pcbi.1008214</citation>
+			<citation type="bibtex">
+			@unpublished{galaxyTools,
+				author = {E. Mijalis, H. Rasche},
+				title = {CPT Galaxy Tools},
+				year = {2013-2017},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+			</citation> 
+		<yield/>
+		</citations>
+	</xml>
+    	<xml name="citations-crr">
+		<citations>
+			<citation type="doi">10.1371/journal.pcbi.1008214</citation>
+			<citation type="bibtex">
+			@unpublished{galaxyTools,
+				author = {C. Ross},
+				title = {CPT Galaxy Tools},
+				year = {2020-},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+			</citation>
+		<yield/>
+		</citations>
+	</xml>
+        <xml name="citations-2020">
+		<citations>
+			<citation type="doi">10.1371/journal.pcbi.1008214</citation>
+			<citation type="bibtex">
+			@unpublished{galaxyTools,
+				author = {E. Mijalis, H. Rasche},
+				title = {CPT Galaxy Tools},
+				year = {2013-2017},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+			</citation>
+                        <citation type="bibtex">
+			@unpublished{galaxyTools,
+				author = {A. Criscione},
+				title = {CPT Galaxy Tools},
+				year = {2019-2021},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+                        </citation>
+                        <yield/>
+		</citations>
+	</xml>
+        <xml name="citations-2020-AJC-solo">
+		<citations>
+			<citation type="doi">10.1371/journal.pcbi.1008214</citation>
+                        <citation type="bibtex">
+			@unpublished{galaxyTools,
+				author = {A. Criscione},
+				title = {CPT Galaxy Tools},
+				year = {2019-2021},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+                        </citation>
+                        <yield/>
+		</citations>
+	</xml>
+        <xml name="citations-clm">
+		<citations>
+			<citation type="doi">10.1371/journal.pcbi.1008214</citation>
+			<citation type="bibtex">
+			@unpublished{galaxyTools,
+				author = {C. Maughmer},
+				title = {CPT Galaxy Tools},
+				year = {2017-2020},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+			</citation>
+                        <yield/>
+		</citations>
+	</xml>
+        <xml name="sl-citations-clm">
+			<citation type="bibtex">
+			@unpublished{galaxyTools,
+				author = {C. Maughmer},
+				title = {CPT Galaxy Tools},
+				year = {2017-2020},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+			</citation>
+                        <yield/>
+	</xml>
+</macros>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cpt_lipop_conv/gff3.py	Fri May 13 05:18:31 2022 +0000
@@ -0,0 +1,346 @@
+import copy
+import logging
+
+log = logging.getLogger()
+log.setLevel(logging.WARN)
+
+
+def feature_lambda(
+    feature_list,
+    test,
+    test_kwargs,
+    subfeatures=True,
+    parent=None,
+    invert=False,
+    recurse=True,
+):
+    """Recursively search through features, testing each with a test function, yielding matches.
+
+    GFF3 is a hierachical data structure, so we need to be able to recursively
+    search through features. E.g. if you're looking for a feature with
+    ID='bob.42', you can't just do a simple list comprehension with a test
+    case. You don't know how deeply burried bob.42 will be in the feature tree. This is where feature_lambda steps in.
+
+    :type feature_list: list
+    :param feature_list: an iterable of features
+
+    :type test: function reference
+    :param test: a closure with the method signature (feature, **kwargs) where
+                 the kwargs are those passed in the next argument. This
+                 function should return True or False, True if the feature is
+                 to be yielded as part of the main feature_lambda function, or
+                 False if it is to be ignored. This function CAN mutate the
+                 features passed to it (think "apply").
+
+    :type test_kwargs: dictionary
+    :param test_kwargs: kwargs to pass to your closure when it is called.
+
+    :type subfeatures: boolean
+    :param subfeatures: when a feature is matched, should just that feature be
+                        yielded to the caller, or should the entire sub_feature
+                        tree for that feature be included? subfeatures=True is
+                        useful in cases such as searching for a gene feature,
+                        and wanting to know what RBS/Shine_Dalgarno_sequences
+                        are in the sub_feature tree (which can be accomplished
+                        with two feature_lambda calls). subfeatures=False is
+                        useful in cases when you want to process (and possibly
+                        return) the entire feature tree, such as applying a
+                        qualifier to every single feature.
+
+    :type invert: boolean
+    :param invert: Negate/invert the result of the filter.
+
+    :rtype: yielded list
+    :return: Yields a list of matching features.
+    """
+    # Either the top level set of [features] or the subfeature attribute
+    for feature in feature_list:
+        feature._parent = parent
+        if not parent:
+            # Set to self so we cannot go above root.
+            feature._parent = feature
+        test_result = test(feature, **test_kwargs)
+        # if (not invert and test_result) or (invert and not test_result):
+        if invert ^ test_result:
+            if not subfeatures:
+                feature_copy = copy.deepcopy(feature)
+                feature_copy.sub_features = list()
+                yield feature_copy
+            else:
+                yield feature
+
+        if recurse and hasattr(feature, "sub_features"):
+            for x in feature_lambda(
+                feature.sub_features,
+                test,
+                test_kwargs,
+                subfeatures=subfeatures,
+                parent=feature,
+                invert=invert,
+                recurse=recurse,
+            ):
+                yield x
+
+
+def fetchParent(feature):
+    if not hasattr(feature, "_parent") or feature._parent is None:
+        return feature
+    else:
+        return fetchParent(feature._parent)
+
+
+def feature_test_true(feature, **kwargs):
+    return True
+
+
+def feature_test_type(feature, **kwargs):
+    if "type" in kwargs:
+        return str(feature.type).upper() == str(kwargs["type"]).upper()
+    elif "types" in kwargs:
+      for x in kwargs["types"]:
+        if str(feature.type).upper() == str(x).upper():
+          return True
+      return False
+    raise Exception("Incorrect feature_test_type call, need type or types")
+
+
+def feature_test_qual_value(feature, **kwargs):
+    """Test qualifier values.
+
+    For every feature, check that at least one value in
+    feature.quailfiers(kwargs['qualifier']) is in kwargs['attribute_list']
+    """
+    if isinstance(kwargs["qualifier"], list):
+        for qualifier in kwargs["qualifier"]:
+            for attribute_value in feature.qualifiers.get(qualifier, []):
+                if attribute_value in kwargs["attribute_list"]:
+                    return True
+    else:
+        for attribute_value in feature.qualifiers.get(kwargs["qualifier"], []):
+            if attribute_value in kwargs["attribute_list"]:
+                return True
+    return False
+
+
+def feature_test_location(feature, **kwargs):
+    if "strand" in kwargs:
+        if feature.location.strand != kwargs["strand"]:
+            return False
+
+    return feature.location.start <= kwargs["loc"] <= feature.location.end
+
+
+def feature_test_quals(feature, **kwargs):
+    """
+    Example::
+
+        a = Feature(qualifiers={'Note': ['Some notes', 'Aasdf']})
+
+        # Check if a contains a Note
+        feature_test_quals(a, {'Note': None})  # Returns True
+        feature_test_quals(a, {'Product': None})  # Returns False
+
+        # Check if a contains a note with specific value
+        feature_test_quals(a, {'Note': ['ome']})  # Returns True
+
+        # Check if a contains a note with specific value
+        feature_test_quals(a, {'Note': ['other']})  # Returns False
+    """
+    for key in kwargs:
+        if key not in feature.qualifiers:
+            return False
+
+        # Key is present, no value specified
+        if kwargs[key] is None:
+            return True
+
+        # Otherwise there is a key value we're looking for.
+        # so we make a list of matches
+        matches = []
+        # And check all of the feature qualifier valuse
+        for value in feature.qualifiers[key]:
+            # For that kwargs[key] value
+            for x in kwargs[key]:
+                matches.append(x in value)
+
+        # If none matched, then we return false.
+        if not any(matches):
+            return False
+
+    return True
+
+
+def feature_test_contains(feature, **kwargs):
+    if "index" in kwargs:
+        return feature.location.start < kwargs["index"] < feature.location.end
+    elif "range" in kwargs:
+        return (
+            feature.location.start < kwargs["range"]["start"] < feature.location.end
+            and feature.location.start < kwargs["range"]["end"] < feature.location.end
+        )
+    else:
+        raise RuntimeError("Must use index or range keyword")
+
+
+def get_id(feature=None, parent_prefix=None):
+    result = ""
+    if parent_prefix is not None:
+        result += parent_prefix + "|"
+    if "locus_tag" in feature.qualifiers:
+        result += feature.qualifiers["locus_tag"][0]
+    elif "gene" in feature.qualifiers:
+        result += feature.qualifiers["gene"][0]
+    elif "Gene" in feature.qualifiers:
+        result += feature.qualifiers["Gene"][0]
+    elif "product" in feature.qualifiers:
+        result += feature.qualifiers["product"][0]
+    elif "Product" in feature.qualifiers:
+        result += feature.qualifiers["Product"][0]
+    elif "Name" in feature.qualifiers:
+        result += feature.qualifiers["Name"][0]
+    else:
+        return feature.id
+        # Leaving in case bad things happen.
+        # result += '%s_%s_%s_%s' % (
+        # feature.id,
+        # feature.location.start,
+        # feature.location.end,
+        # feature.location.strand
+        # )
+    return result
+
+
+def get_gff3_id(gene):
+    return gene.qualifiers.get("Name", [gene.id])[0]
+
+
+def ensure_location_in_bounds(start=0, end=0, parent_length=0):
+    # This prevents frameshift errors
+    while start < 0:
+        start += 3
+    while end < 0:
+        end += 3
+    while start > parent_length:
+        start -= 3
+    while end > parent_length:
+        end -= 3
+    return (start, end)
+
+
+def coding_genes(feature_list):
+    for x in genes(feature_list):
+        if (
+            len(
+                list(
+                    feature_lambda(
+                        x.sub_features,
+                        feature_test_type,
+                        {"type": "CDS"},
+                        subfeatures=False,
+                    )
+                )
+            )
+            > 0
+        ):
+            yield x
+
+
+def genes(feature_list, feature_type="gene", sort=False):
+    """
+    Simple filter to extract gene features from the feature set.
+    """
+
+    if not sort:
+        for x in feature_lambda(
+            feature_list, feature_test_type, {"type": feature_type}, subfeatures=True
+        ):
+            yield x
+    else:
+        data = list(genes(feature_list, feature_type=feature_type, sort=False))
+        data = sorted(data, key=lambda feature: feature.location.start)
+        for x in data:
+            yield x
+
+
+def wa_unified_product_name(feature):
+    """
+    Try and figure out a name. We gave conflicting instructions, so
+    this isn't as trivial as it should be. Sometimes it will be in
+    'product' or 'Product', othertimes in 'Name'
+    """
+    # Manually applied tags.
+    protein_product = feature.qualifiers.get(
+        "product", feature.qualifiers.get("Product", [None])
+    )[0]
+
+    # If neither of those are available ...
+    if protein_product is None:
+        # And there's a name...
+        if "Name" in feature.qualifiers:
+            if not is_uuid(feature.qualifiers["Name"][0]):
+                protein_product = feature.qualifiers["Name"][0]
+
+    return protein_product
+
+
+def is_uuid(name):
+    return name.count("-") == 4 and len(name) == 36
+
+
+def get_rbs_from(gene):
+    # Normal RBS annotation types
+    rbs_rbs = list(
+        feature_lambda(
+            gene.sub_features, feature_test_type, {"type": "RBS"}, subfeatures=False
+        )
+    )
+    rbs_sds = list(
+        feature_lambda(
+            gene.sub_features,
+            feature_test_type,
+            {"type": "Shine_Dalgarno_sequence"},
+            subfeatures=False,
+        )
+    )
+    # Fraking apollo
+    apollo_exons = list(
+        feature_lambda(
+            gene.sub_features, feature_test_type, {"type": "exon"}, subfeatures=False
+        )
+    )
+    apollo_exons = [x for x in apollo_exons if len(x) < 10]
+    # These are more NCBI's style
+    regulatory_elements = list(
+        feature_lambda(
+            gene.sub_features,
+            feature_test_type,
+            {"type": "regulatory"},
+            subfeatures=False,
+        )
+    )
+    rbs_regulatory = list(
+        feature_lambda(
+            regulatory_elements,
+            feature_test_quals,
+            {"regulatory_class": ["ribosome_binding_site"]},
+            subfeatures=False,
+        )
+    )
+    # Here's hoping you find just one ;)
+    return rbs_rbs + rbs_sds + rbs_regulatory + apollo_exons
+
+
+def nice_name(record):
+    """
+    get the real name rather than NCBI IDs and so on. If fails, will return record.id
+    """
+    name = record.id
+    likely_parental_contig = list(genes(record.features, feature_type="contig"))
+    if len(likely_parental_contig) == 1:
+        name = likely_parental_contig[0].qualifiers.get("organism", [name])[0]
+    return name
+
+
+def fsort(it):
+    for i in sorted(it, key=lambda x: int(x.location.start)):
+        yield i
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cpt_lipop_conv/lipoP_to_gff3.py	Fri May 13 05:18:31 2022 +0000
@@ -0,0 +1,110 @@
+#!/usr/bin/env python
+import sys
+import copy
+import argparse
+from CPT_GFFParser import gffParse, gffWrite, gffSeqFeature
+from Bio.Seq import Seq
+from Bio.SeqRecord import SeqRecord
+from Bio.SeqFeature import FeatureLocation
+from gff3 import feature_lambda, feature_test_type, get_id
+
+
+def lipoP_gff(lipoIn, gff3In, jBrowseOut, filterSP2):
+
+    orgIDs = {}
+    orgID = ""
+
+    # Take and parse the txt output into a sequence of records
+    # Dict of X records, with the ID as key and an array Y of each cleavage site as the value,
+    for row in lipoIn:
+        if row.startswith("#"):
+            orgID = ""
+            continue
+
+        rowElem = row.split("\t")
+
+        orgID = rowElem[0]
+        
+        if filterSP2:
+          if rowElem[2] == "CleavII":
+            if not (orgID in orgIDs.keys()):
+                orgIDs[orgID] = []
+            orgIDs[orgID].append(int(rowElem[3]))  # , int(rowElem[4])))
+        else:
+          if rowElem[2] in "CleavII":
+            if not (orgID in orgIDs.keys()):
+                orgIDs[orgID] = []
+            orgIDs[orgID].append(int(rowElem[3]))  # , int(rowElem[4])))
+
+
+    # Rebase
+    for gff in gffParse(gff3In):
+        keepSeq = []
+        for xRec in gff.features:
+            cdss = list(
+                feature_lambda(
+                    xRec.sub_features,
+                    feature_test_type,
+                    {"type": "CDS"},
+                    subfeatures=False,
+                )
+            )
+            findCleave = ""
+            cdsOff = 0
+            for cds in cdss:
+                if cds.id in orgIDs:
+                    findCleave = cds.id
+                    break
+                cdsOff += 1
+            if findCleave == "":
+                if not jBrowseOut:
+                    keepSeq.append(xRec)
+                continue
+
+            #if jBrowseOut:
+            #    xRec.sub_features = []
+
+            i = 0
+            for cleaveBase in orgIDs[findCleave]:
+                tempQuals = xRec.qualifiers.copy()
+                i += 1
+                tempQuals["ID"] = xRec.id + "_cleavage_" + str(i)
+
+                xRec.sub_features.append(
+                    gffSeqFeature(
+                        FeatureLocation(
+                            cdss[cdsOff].location.start + (cleaveBase * 3) - 1,
+                            cdss[cdsOff].location.start + (cleaveBase * 3) + 1,
+                        ),
+                        type="cleavage_site",
+                        strand=xRec.location.strand,
+                        qualifiers=tempQuals,
+                    )
+                )
+            keepSeq.append(xRec)
+
+        gff.features = keepSeq
+        gffWrite([gff], sys.stdout)
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser(description="add parent gene features to CDSs")
+    parser.add_argument(
+        "lipoIn", type=argparse.FileType("r"), help="LipoP tool's .txt output"
+    )
+    parser.add_argument(
+        "gff3In", type=argparse.FileType("r"), help="GFF3 to rebase LipoP results"
+    )
+    parser.add_argument(
+        "--jBrowseOut",
+        type=bool,
+        default=False,
+        help="Prepare Output for jBrowse instance",
+    )
+    parser.add_argument(
+        "--filterSP2",
+        action='store_true',
+        help="Filter for only SPII sites",
+    )
+    args = parser.parse_args()
+    lipoP_gff(**vars(args))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cpt_lipop_conv/lipoP_to_gff3.xml	Fri May 13 05:18:31 2022 +0000
@@ -0,0 +1,54 @@
+<tool id="edu.tamu.cpt.gff3.lipoP_to_gff3" name= "LipoP to GFF3" version="1.0">
+  <description>Adds LipoP results to GFF3</description>
+  <macros>
+    <import>macros.xml</import>
+    <import>cpt-macros.xml</import>
+  </macros>
+  <expand macro="requirements"/>
+  <command detect_errors="aggressive"><![CDATA[
+python $__tool_directory__/lipoP_to_gff3.py
+
+"$lipoIn"
+"$gff3In"
+--jBrowseOut "$jBrowseOut"
+$filterSP2
+> $stdout
+
+]]></command>
+  <inputs>
+    <param label="LipoP Output" name="lipoIn" type="data" format="txt"/>
+    <param label="GFF3 for Rebasing" name="gff3In" type="data" format="gff3"/>
+    <param label="Output to jBrowse" name="jBrowseOut" type="boolean" truevalue="True" falsevalue="" help="Strip non-cleavage features from GFF3 (for viewing in Apollo)"/>
+    <param name="filterSP2" truevalue="--filterSP2" falsevalue="" type="boolean" label="Filter for only SPII Cleavage sites" checked="true"/>
+  </inputs>
+  <outputs>
+    <data format="gff3" name="stdout"/>
+  </outputs>
+  <tests>
+    <test>
+      <param name="lipoIn" value="LipoToGFF_In.txt" />
+      <param name="gff3In" value="LipoToGFF_In.gff3" />
+      <param name="jBrowseOut" value="True" />
+      <param name="filterSP2" value="True" />
+      <output name="stdout" value="LipoToGFF_Out.gff3" />
+    </test>
+  </tests>
+  <help><![CDATA[
+**What it does**
+
+Adds the cleavage sites from a LipoP run to a GFF3 file's feature list. Must use
+the .txt output of LipoP (ensure .html is turned off). The most common way this
+tool will be utilized is to take a GFF3, use the GFF3 Feature Sequence Export
+tool (https://cpt.tamu.edu/galaxy/root?tool_id=edu.tamu.cpt.gff3.export_seq) to 
+get a multi-FASTA of the CDSs, run that multi-FASTA through LipoP, and then
+recombine the LipoP results with the original GFF3 file with this tool.
+
+Currently, only CleavII results will be added with this tool.
+
+"Output to jBrowse" will remove all gene features that do not have a CleavII 
+result from the LipoP, and remove all sub features of the gene except for the 
+cleavage sites. This is useful for viewing in Apollo, but should most likely 
+not be used if you plan to run this output through more tools.
+      ]]></help>
+		<expand macro="citations-2020" />
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cpt_lipop_conv/macros.xml	Fri May 13 05:18:31 2022 +0000
@@ -0,0 +1,85 @@
+<?xml version="1.0"?>
+<macros>
+	<xml name="requirements">
+		<requirements>
+			<requirement type="package" version="3.6">python</requirement>
+			<requirement type="package" version="1.77">biopython</requirement>
+			<requirement type="package" version="1.1.3">cpt_gffparser</requirement>  
+			<yield/>
+		</requirements>
+	</xml>
+	<token name="@BLAST_TSV@">
+		"$blast_tsv"
+	</token>
+	<xml name="blast_tsv">
+		<param label="Blast Results" help="TSV/tabular (25 Column)"
+			name="blast_tsv" type="data" format="tabular" />
+	</xml>
+
+	<token name="@BLAST_XML@">
+		"$blast_xml"
+	</token>
+	<xml name="blast_xml">
+		<param label="Blast Results" help="XML format"
+			name="blast_xml" type="data" format="blastxml" />
+	</xml>
+	<xml name="gff3_with_fasta">
+	<param label="Genome Sequences" name="fasta" type="data" format="fasta" />
+	<param label="Genome Annotations" name="gff3" type="data" format="gff3" />
+	</xml>
+	<xml name="genome_selector">
+		<conditional name="reference_genome">
+			<param name="reference_genome_source" type="select" label="Reference Genome">
+				<option value="history" selected="True">From History</option>
+				<option value="cached">Locally Cached</option>
+			</param>
+			<when value="cached">
+				<param name="fasta_indexes" type="select" label="Source FASTA Sequence">
+					<options from_data_table="all_fasta"/>
+				</param>
+			</when>
+			<when value="history">
+				<param name="genome_fasta" type="data" format="fasta" label="Source FASTA Sequence"/>
+			</when>
+		</conditional>
+	</xml>
+	<xml name="gff3_input">
+		<param label="GFF3 Annotations" name="gff3_data" type="data" format="gff3"/>
+	</xml>
+	<xml name="input/gff3+fasta">
+		<expand macro="gff3_input" />
+		<expand macro="genome_selector" />
+	</xml>
+	<token name="@INPUT_GFF@">
+	"$gff3_data"
+	</token>
+	<token name="@INPUT_FASTA@">
+#if str($reference_genome.reference_genome_source) == 'cached':
+		"${reference_genome.fasta_indexes.fields.path}"
+#else if str($reference_genome.reference_genome_source) == 'history':
+		genomeref.fa
+#end if
+	</token>
+	<token name="@GENOME_SELECTOR_PRE@">
+#if $reference_genome.reference_genome_source == 'history':
+		ln -s $reference_genome.genome_fasta genomeref.fa;
+#end if
+	</token>
+	<token name="@GENOME_SELECTOR@">
+#if str($reference_genome.reference_genome_source) == 'cached':
+		"${reference_genome.fasta_indexes.fields.path}"
+#else if str($reference_genome.reference_genome_source) == 'history':
+		genomeref.fa
+#end if
+	</token>
+        <xml name="input/fasta">
+		<param label="Fasta file" name="sequences" type="data" format="fasta"/>
+	</xml>
+
+	<token name="@SEQUENCE@">
+		"$sequences"
+	</token>
+	<xml name="input/fasta/protein">
+		<param label="Protein fasta file" name="sequences" type="data" format="fasta"/>
+	</xml>
+</macros>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cpt_lipop_conv/test-data/LipoToGFF_In.gff3	Fri May 13 05:18:31 2022 +0000
@@ -0,0 +1,302 @@
+##gff-version 3
+##sequence-region testseq_2018-03-08 1 9216
+testseq_2018-03-08	cpt.fixModel	gene	52	147	.	-	.	ID=ORF.0.472_0.8077298255
+testseq_2018-03-08	cpt.fixModel	mRNA	52	147	.	-	.	ID=ORF.0.472_0.8077298255.mRNA;Parent=ORF.0.472_0.8077298255
+testseq_2018-03-08	getOrfsOrCds	CDS	52	147	.	-	0	ID=ORF.0.472_0.8077298255.CDS;Parent=ORF.0.472_0.8077298255.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	160	162	.	-	.	ID=ORF.0.472_0.8077298255.rbs-0;Parent=ORF.0.472_0.8077298255
+testseq_2018-03-08	cpt.fixModel	gene	154	339	.	-	.	ID=ORF.0.465_0.466377183402
+testseq_2018-03-08	cpt.fixModel	mRNA	154	339	.	-	.	ID=ORF.0.465_0.466377183402.mRNA;Parent=ORF.0.465_0.466377183402
+testseq_2018-03-08	getOrfsOrCds	CDS	154	339	.	-	0	ID=ORF.0.465_0.466377183402.CDS;Parent=ORF.0.465_0.466377183402.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	347	349	.	-	.	ID=ORF.0.465_0.466377183402.rbs-0;Parent=ORF.0.465_0.466377183402
+testseq_2018-03-08	cpt.fixModel	gene	154	324	.	-	.	ID=ORF.0.466_0.685859290271
+testseq_2018-03-08	cpt.fixModel	mRNA	154	324	.	-	.	ID=ORF.0.466_0.685859290271.mRNA;Parent=ORF.0.466_0.685859290271
+testseq_2018-03-08	getOrfsOrCds	CDS	154	324	.	-	0	ID=ORF.0.466_0.685859290271.CDS;Parent=ORF.0.466_0.685859290271.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	335	337	.	-	.	ID=ORF.0.466_0.685859290271.rbs-0;Parent=ORF.0.466_0.685859290271
+testseq_2018-03-08	cpt.fixModel	gene	154	297	.	-	.	ID=ORF.0.468_0.803001272192
+testseq_2018-03-08	cpt.fixModel	mRNA	154	297	.	-	.	ID=ORF.0.468_0.803001272192.mRNA;Parent=ORF.0.468_0.803001272192
+testseq_2018-03-08	getOrfsOrCds	CDS	154	297	.	-	0	ID=ORF.0.468_0.803001272192.CDS;Parent=ORF.0.468_0.803001272192.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	306	311	.	-	.	ID=ORF.0.468_0.803001272192.rbs-0;Parent=ORF.0.468_0.803001272192
+testseq_2018-03-08	cpt.fixModel	gene	314	490	.	-	.	ID=ORF.0.708_0.889453606077
+testseq_2018-03-08	cpt.fixModel	mRNA	314	490	.	-	.	ID=ORF.0.708_0.889453606077.mRNA;Parent=ORF.0.708_0.889453606077
+testseq_2018-03-08	getOrfsOrCds	CDS	314	490	.	-	0	ID=ORF.0.708_0.889453606077.CDS;Parent=ORF.0.708_0.889453606077.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	500	502	.	-	.	ID=ORF.0.708_0.889453606077.rbs-0;Parent=ORF.0.708_0.889453606077
+testseq_2018-03-08	cpt.fixModel	gene	487	672	.	-	.	ID=ORF.0.458_0.61399204562
+testseq_2018-03-08	cpt.fixModel	mRNA	487	672	.	-	.	ID=ORF.0.458_0.61399204562.mRNA;Parent=ORF.0.458_0.61399204562
+testseq_2018-03-08	getOrfsOrCds	CDS	487	672	.	-	0	ID=ORF.0.458_0.61399204562.CDS;Parent=ORF.0.458_0.61399204562.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	678	681	.	-	.	ID=ORF.0.458_0.61399204562.rbs-0;Parent=ORF.0.458_0.61399204562
+testseq_2018-03-08	cpt.fixModel	gene	487	666	.	-	.	ID=ORF.0.459_0.323250347541
+testseq_2018-03-08	cpt.fixModel	mRNA	487	666	.	-	.	ID=ORF.0.459_0.323250347541.mRNA;Parent=ORF.0.459_0.323250347541
+testseq_2018-03-08	getOrfsOrCds	CDS	487	666	.	-	0	ID=ORF.0.459_0.323250347541.CDS;Parent=ORF.0.459_0.323250347541.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	678	681	.	-	.	ID=ORF.0.459_0.323250347541.rbs-0;Parent=ORF.0.459_0.323250347541
+testseq_2018-03-08	cpt.fixModel	gene	487	657	.	-	.	ID=ORF.0.460_0.509039455004
+testseq_2018-03-08	cpt.fixModel	mRNA	487	657	.	-	.	ID=ORF.0.460_0.509039455004.mRNA;Parent=ORF.0.460_0.509039455004
+testseq_2018-03-08	getOrfsOrCds	CDS	487	657	.	-	0	ID=ORF.0.460_0.509039455004.CDS;Parent=ORF.0.460_0.509039455004.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	665	670	.	-	.	ID=ORF.0.460_0.509039455004.rbs-0;Parent=ORF.0.460_0.509039455004
+testseq_2018-03-08	cpt.fixModel	gene	487	654	.	-	.	ID=ORF.0.461_0.392081904542
+testseq_2018-03-08	cpt.fixModel	mRNA	487	654	.	-	.	ID=ORF.0.461_0.392081904542.mRNA;Parent=ORF.0.461_0.392081904542
+testseq_2018-03-08	getOrfsOrCds	CDS	487	654	.	-	0	ID=ORF.0.461_0.392081904542.CDS;Parent=ORF.0.461_0.392081904542.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	665	669	.	-	.	ID=ORF.0.461_0.392081904542.rbs-0;Parent=ORF.0.461_0.392081904542
+testseq_2018-03-08	cpt.fixModel	gene	644	904	.	-	.	ID=ORF.0.699_0.764949625216
+testseq_2018-03-08	cpt.fixModel	mRNA	644	904	.	-	.	ID=ORF.0.699_0.764949625216.mRNA;Parent=ORF.0.699_0.764949625216
+testseq_2018-03-08	getOrfsOrCds	CDS	644	904	.	-	0	ID=ORF.0.699_0.764949625216.CDS;Parent=ORF.0.699_0.764949625216.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	914	918	.	-	.	ID=ORF.0.699_0.764949625216.rbs-0;Parent=ORF.0.699_0.764949625216
+testseq_2018-03-08	cpt.fixModel	gene	644	802	.	-	.	ID=ORF.0.703_0.981371874022
+testseq_2018-03-08	cpt.fixModel	mRNA	644	802	.	-	.	ID=ORF.0.703_0.981371874022.mRNA;Parent=ORF.0.703_0.981371874022
+testseq_2018-03-08	getOrfsOrCds	CDS	644	802	.	-	0	ID=ORF.0.703_0.981371874022.CDS;Parent=ORF.0.703_0.981371874022.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	811	814	.	-	.	ID=ORF.0.703_0.981371874022.rbs-0;Parent=ORF.0.703_0.981371874022
+testseq_2018-03-08	cpt.fixModel	gene	644	775	.	-	.	ID=ORF.0.705_0.438813830323
+testseq_2018-03-08	cpt.fixModel	mRNA	644	775	.	-	.	ID=ORF.0.705_0.438813830323.mRNA;Parent=ORF.0.705_0.438813830323
+testseq_2018-03-08	getOrfsOrCds	CDS	644	775	.	-	0	ID=ORF.0.705_0.438813830323.CDS;Parent=ORF.0.705_0.438813830323.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	788	790	.	-	.	ID=ORF.0.705_0.438813830323.rbs-0;Parent=ORF.0.705_0.438813830323
+testseq_2018-03-08	cpt.fixModel	gene	932	2659	.	-	.	ID=ORF.0.622_0.865794102081
+testseq_2018-03-08	cpt.fixModel	mRNA	932	2659	.	-	.	ID=ORF.0.622_0.865794102081.mRNA;Parent=ORF.0.622_0.865794102081
+testseq_2018-03-08	getOrfsOrCds	CDS	932	2659	.	-	0	ID=ORF.0.622_0.865794102081.CDS;Parent=ORF.0.622_0.865794102081.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	2672	2674	.	-	.	ID=ORF.0.622_0.865794102081.rbs-0;Parent=ORF.0.622_0.865794102081
+testseq_2018-03-08	cpt.fixModel	gene	932	2650	.	-	.	ID=ORF.0.623_0.846988205141
+testseq_2018-03-08	cpt.fixModel	mRNA	932	2650	.	-	.	ID=ORF.0.623_0.846988205141.mRNA;Parent=ORF.0.623_0.846988205141
+testseq_2018-03-08	getOrfsOrCds	CDS	932	2650	.	-	0	ID=ORF.0.623_0.846988205141.CDS;Parent=ORF.0.623_0.846988205141.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	2659	2662	.	-	.	ID=ORF.0.623_0.846988205141.rbs-0;Parent=ORF.0.623_0.846988205141
+testseq_2018-03-08	cpt.fixModel	gene	932	2605	.	-	.	ID=ORF.0.625_0.0578111846669
+testseq_2018-03-08	cpt.fixModel	mRNA	932	2605	.	-	.	ID=ORF.0.625_0.0578111846669.mRNA;Parent=ORF.0.625_0.0578111846669
+testseq_2018-03-08	getOrfsOrCds	CDS	932	2605	.	-	0	ID=ORF.0.625_0.0578111846669.CDS;Parent=ORF.0.625_0.0578111846669.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	2618	2620	.	-	.	ID=ORF.0.625_0.0578111846669.rbs-0;Parent=ORF.0.625_0.0578111846669
+testseq_2018-03-08	cpt.fixModel	gene	932	2572	.	-	.	ID=ORF.0.626_0.303786861772
+testseq_2018-03-08	cpt.fixModel	mRNA	932	2572	.	-	.	ID=ORF.0.626_0.303786861772.mRNA;Parent=ORF.0.626_0.303786861772
+testseq_2018-03-08	getOrfsOrCds	CDS	932	2572	.	-	0	ID=ORF.0.626_0.303786861772.CDS;Parent=ORF.0.626_0.303786861772.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	2584	2586	.	-	.	ID=ORF.0.626_0.303786861772.rbs-0;Parent=ORF.0.626_0.303786861772
+testseq_2018-03-08	cpt.fixModel	gene	932	2518	.	-	.	ID=ORF.0.630_0.467112600707
+testseq_2018-03-08	cpt.fixModel	mRNA	932	2518	.	-	.	ID=ORF.0.630_0.467112600707.mRNA;Parent=ORF.0.630_0.467112600707
+testseq_2018-03-08	getOrfsOrCds	CDS	932	2518	.	-	0	ID=ORF.0.630_0.467112600707.CDS;Parent=ORF.0.630_0.467112600707.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	2526	2528	.	-	.	ID=ORF.0.630_0.467112600707.rbs-0;Parent=ORF.0.630_0.467112600707
+testseq_2018-03-08	cpt.fixModel	gene	932	2509	.	-	.	ID=ORF.0.631_0.2883116125
+testseq_2018-03-08	cpt.fixModel	mRNA	932	2509	.	-	.	ID=ORF.0.631_0.2883116125.mRNA;Parent=ORF.0.631_0.2883116125
+testseq_2018-03-08	getOrfsOrCds	CDS	932	2509	.	-	0	ID=ORF.0.631_0.2883116125.CDS;Parent=ORF.0.631_0.2883116125.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	2522	2524	.	-	.	ID=ORF.0.631_0.2883116125.rbs-0;Parent=ORF.0.631_0.2883116125
+testseq_2018-03-08	cpt.fixModel	gene	932	2404	.	-	.	ID=ORF.0.636_0.876600016398
+testseq_2018-03-08	cpt.fixModel	mRNA	932	2404	.	-	.	ID=ORF.0.636_0.876600016398.mRNA;Parent=ORF.0.636_0.876600016398
+testseq_2018-03-08	getOrfsOrCds	CDS	932	2404	.	-	0	ID=ORF.0.636_0.876600016398.CDS;Parent=ORF.0.636_0.876600016398.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	2416	2418	.	-	.	ID=ORF.0.636_0.876600016398.rbs-0;Parent=ORF.0.636_0.876600016398
+testseq_2018-03-08	cpt.fixModel	gene	932	2356	.	-	.	ID=ORF.0.640_0.0888066128056
+testseq_2018-03-08	cpt.fixModel	mRNA	932	2356	.	-	.	ID=ORF.0.640_0.0888066128056.mRNA;Parent=ORF.0.640_0.0888066128056
+testseq_2018-03-08	getOrfsOrCds	CDS	932	2356	.	-	0	ID=ORF.0.640_0.0888066128056.CDS;Parent=ORF.0.640_0.0888066128056.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	2366	2368	.	-	.	ID=ORF.0.640_0.0888066128056.rbs-0;Parent=ORF.0.640_0.0888066128056
+testseq_2018-03-08	cpt.fixModel	gene	932	2098	.	-	.	ID=ORF.0.655_0.212962186525
+testseq_2018-03-08	cpt.fixModel	mRNA	932	2098	.	-	.	ID=ORF.0.655_0.212962186525.mRNA;Parent=ORF.0.655_0.212962186525
+testseq_2018-03-08	getOrfsOrCds	CDS	932	2098	.	-	0	ID=ORF.0.655_0.212962186525.CDS;Parent=ORF.0.655_0.212962186525.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	2108	2111	.	-	.	ID=ORF.0.655_0.212962186525.rbs-0;Parent=ORF.0.655_0.212962186525
+testseq_2018-03-08	cpt.fixModel	gene	932	2020	.	-	.	ID=ORF.0.659_0.370352364369
+testseq_2018-03-08	cpt.fixModel	mRNA	932	2020	.	-	.	ID=ORF.0.659_0.370352364369.mRNA;Parent=ORF.0.659_0.370352364369
+testseq_2018-03-08	getOrfsOrCds	CDS	932	2020	.	-	0	ID=ORF.0.659_0.370352364369.CDS;Parent=ORF.0.659_0.370352364369.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	2031	2034	.	-	.	ID=ORF.0.659_0.370352364369.rbs-0;Parent=ORF.0.659_0.370352364369
+testseq_2018-03-08	cpt.fixModel	gene	932	1996	.	-	.	ID=ORF.0.660_0.561664408596
+testseq_2018-03-08	cpt.fixModel	mRNA	932	1996	.	-	.	ID=ORF.0.660_0.561664408596.mRNA;Parent=ORF.0.660_0.561664408596
+testseq_2018-03-08	getOrfsOrCds	CDS	932	1996	.	-	0	ID=ORF.0.660_0.561664408596.CDS;Parent=ORF.0.660_0.561664408596.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	2009	2011	.	-	.	ID=ORF.0.660_0.561664408596.rbs-0;Parent=ORF.0.660_0.561664408596
+testseq_2018-03-08	cpt.fixModel	gene	932	1924	.	-	.	ID=ORF.0.662_0.547739243117
+testseq_2018-03-08	cpt.fixModel	mRNA	932	1924	.	-	.	ID=ORF.0.662_0.547739243117.mRNA;Parent=ORF.0.662_0.547739243117
+testseq_2018-03-08	getOrfsOrCds	CDS	932	1924	.	-	0	ID=ORF.0.662_0.547739243117.CDS;Parent=ORF.0.662_0.547739243117.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	1930	1933	.	-	.	ID=ORF.0.662_0.547739243117.rbs-0;Parent=ORF.0.662_0.547739243117
+testseq_2018-03-08	cpt.fixModel	gene	932	1780	.	-	.	ID=ORF.0.667_0.381504311163
+testseq_2018-03-08	cpt.fixModel	mRNA	932	1780	.	-	.	ID=ORF.0.667_0.381504311163.mRNA;Parent=ORF.0.667_0.381504311163
+testseq_2018-03-08	getOrfsOrCds	CDS	932	1780	.	-	0	ID=ORF.0.667_0.381504311163.CDS;Parent=ORF.0.667_0.381504311163.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	1787	1789	.	-	.	ID=ORF.0.667_0.381504311163.rbs-0;Parent=ORF.0.667_0.381504311163
+testseq_2018-03-08	cpt.fixModel	gene	1303	1413	.	-	.	ID=ORF.0.457_0.112605087319
+testseq_2018-03-08	cpt.fixModel	mRNA	1303	1413	.	-	.	ID=ORF.0.457_0.112605087319.mRNA;Parent=ORF.0.457_0.112605087319
+testseq_2018-03-08	getOrfsOrCds	CDS	1303	1413	.	-	0	ID=ORF.0.457_0.112605087319.CDS;Parent=ORF.0.457_0.112605087319.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	1421	1424	.	-	.	ID=ORF.0.457_0.112605087319.rbs-0;Parent=ORF.0.457_0.112605087319
+testseq_2018-03-08	cpt.fixModel	gene	2673	3473	.	-	.	ID=ORF.0.518_0.704496503167
+testseq_2018-03-08	cpt.fixModel	mRNA	2673	3473	.	-	.	ID=ORF.0.518_0.704496503167.mRNA;Parent=ORF.0.518_0.704496503167
+testseq_2018-03-08	getOrfsOrCds	CDS	2673	3473	.	-	0	ID=ORF.0.518_0.704496503167.CDS;Parent=ORF.0.518_0.704496503167.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	3484	3488	.	-	.	ID=ORF.0.518_0.704496503167.rbs-0;Parent=ORF.0.518_0.704496503167
+testseq_2018-03-08	cpt.fixModel	gene	2673	3140	.	-	.	ID=ORF.0.531_0.284124356131
+testseq_2018-03-08	cpt.fixModel	mRNA	2673	3140	.	-	.	ID=ORF.0.531_0.284124356131.mRNA;Parent=ORF.0.531_0.284124356131
+testseq_2018-03-08	getOrfsOrCds	CDS	2673	3140	.	-	0	ID=ORF.0.531_0.284124356131.CDS;Parent=ORF.0.531_0.284124356131.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	3153	3155	.	-	.	ID=ORF.0.531_0.284124356131.rbs-0;Parent=ORF.0.531_0.284124356131
+testseq_2018-03-08	cpt.fixModel	gene	2673	3077	.	-	.	ID=ORF.0.534_0.230486359187
+testseq_2018-03-08	cpt.fixModel	mRNA	2673	3077	.	-	.	ID=ORF.0.534_0.230486359187.mRNA;Parent=ORF.0.534_0.230486359187
+testseq_2018-03-08	getOrfsOrCds	CDS	2673	3077	.	-	0	ID=ORF.0.534_0.230486359187.CDS;Parent=ORF.0.534_0.230486359187.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	3083	3085	.	-	.	ID=ORF.0.534_0.230486359187.rbs-0;Parent=ORF.0.534_0.230486359187
+testseq_2018-03-08	cpt.fixModel	gene	2673	2765	.	-	.	ID=ORF.0.549_0.435747482069
+testseq_2018-03-08	cpt.fixModel	mRNA	2673	2765	.	-	.	ID=ORF.0.549_0.435747482069.mRNA;Parent=ORF.0.549_0.435747482069
+testseq_2018-03-08	getOrfsOrCds	CDS	2673	2765	.	-	0	ID=ORF.0.549_0.435747482069.CDS;Parent=ORF.0.549_0.435747482069.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	2774	2777	.	-	.	ID=ORF.0.549_0.435747482069.rbs-0;Parent=ORF.0.549_0.435747482069
+testseq_2018-03-08	cpt.fixModel	gene	3362	3739	.	-	.	ID=ORF.0.603_0.488926379773
+testseq_2018-03-08	cpt.fixModel	mRNA	3362	3739	.	-	.	ID=ORF.0.603_0.488926379773.mRNA;Parent=ORF.0.603_0.488926379773
+testseq_2018-03-08	getOrfsOrCds	CDS	3362	3739	.	-	0	ID=ORF.0.603_0.488926379773.CDS;Parent=ORF.0.603_0.488926379773.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	3749	3754	.	-	.	ID=ORF.0.603_0.488926379773.rbs-0;Parent=ORF.0.603_0.488926379773
+testseq_2018-03-08	cpt.fixModel	gene	3362	3706	.	-	.	ID=ORF.0.605_0.950422684088
+testseq_2018-03-08	cpt.fixModel	mRNA	3362	3706	.	-	.	ID=ORF.0.605_0.950422684088.mRNA;Parent=ORF.0.605_0.950422684088
+testseq_2018-03-08	getOrfsOrCds	CDS	3362	3706	.	-	0	ID=ORF.0.605_0.950422684088.CDS;Parent=ORF.0.605_0.950422684088.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	3719	3721	.	-	.	ID=ORF.0.605_0.950422684088.rbs-0;Parent=ORF.0.605_0.950422684088
+testseq_2018-03-08	cpt.fixModel	gene	3362	3688	.	-	.	ID=ORF.0.606_0.329949811104
+testseq_2018-03-08	cpt.fixModel	mRNA	3362	3688	.	-	.	ID=ORF.0.606_0.329949811104.mRNA;Parent=ORF.0.606_0.329949811104
+testseq_2018-03-08	getOrfsOrCds	CDS	3362	3688	.	-	0	ID=ORF.0.606_0.329949811104.CDS;Parent=ORF.0.606_0.329949811104.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	3699	3702	.	-	.	ID=ORF.0.606_0.329949811104.rbs-0;Parent=ORF.0.606_0.329949811104
+testseq_2018-03-08	cpt.fixModel	gene	3362	3550	.	-	.	ID=ORF.0.611_0.815705221168
+testseq_2018-03-08	cpt.fixModel	mRNA	3362	3550	.	-	.	ID=ORF.0.611_0.815705221168.mRNA;Parent=ORF.0.611_0.815705221168
+testseq_2018-03-08	getOrfsOrCds	CDS	3362	3550	.	-	0	ID=ORF.0.611_0.815705221168.CDS;Parent=ORF.0.611_0.815705221168.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	3559	3561	.	-	.	ID=ORF.0.611_0.815705221168.rbs-0;Parent=ORF.0.611_0.815705221168
+testseq_2018-03-08	cpt.fixModel	gene	3362	3493	.	-	.	ID=ORF.0.613_0.104890641676
+testseq_2018-03-08	cpt.fixModel	mRNA	3362	3493	.	-	.	ID=ORF.0.613_0.104890641676.mRNA;Parent=ORF.0.613_0.104890641676
+testseq_2018-03-08	getOrfsOrCds	CDS	3362	3493	.	-	0	ID=ORF.0.613_0.104890641676.CDS;Parent=ORF.0.613_0.104890641676.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	3506	3508	.	-	.	ID=ORF.0.613_0.104890641676.rbs-0;Parent=ORF.0.613_0.104890641676
+testseq_2018-03-08	cpt.fixModel	gene	3433	3537	.	+	.	ID=ORF.0.17_0.711047642618
+testseq_2018-03-08	cpt.fixModel	mRNA	3433	3537	.	+	.	ID=ORF.0.17_0.711047642618.mRNA;Parent=ORF.0.17_0.711047642618
+testseq_2018-03-08	getOrfsOrCds	CDS	3433	3537	.	+	0	ID=ORF.0.17_0.711047642618.CDS;Parent=ORF.0.17_0.711047642618.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	3419	3421	.	+	.	ID=ORF.0.17_0.711047642618.rbs-0;Parent=ORF.0.17_0.711047642618
+testseq_2018-03-08	cpt.fixModel	gene	3986	4114	.	+	.	ID=ORF.0.139_0.904626958426
+testseq_2018-03-08	cpt.fixModel	mRNA	3986	4114	.	+	.	ID=ORF.0.139_0.904626958426.mRNA;Parent=ORF.0.139_0.904626958426
+testseq_2018-03-08	getOrfsOrCds	CDS	3986	4114	.	+	0	ID=ORF.0.139_0.904626958426.CDS;Parent=ORF.0.139_0.904626958426.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	3971	3973	.	+	.	ID=ORF.0.139_0.904626958426.rbs-0;Parent=ORF.0.139_0.904626958426
+testseq_2018-03-08	cpt.fixModel	gene	4006	4101	.	-	.	ID=ORF.0.445_0.286571403109
+testseq_2018-03-08	cpt.fixModel	mRNA	4006	4101	.	-	.	ID=ORF.0.445_0.286571403109.mRNA;Parent=ORF.0.445_0.286571403109
+testseq_2018-03-08	getOrfsOrCds	CDS	4006	4101	.	-	0	ID=ORF.0.445_0.286571403109.CDS;Parent=ORF.0.445_0.286571403109.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	4108	4110	.	-	.	ID=ORF.0.445_0.286571403109.rbs-0;Parent=ORF.0.445_0.286571403109
+testseq_2018-03-08	cpt.fixModel	gene	4071	4190	.	+	.	ID=ORF.0.345_0.971616620883
+testseq_2018-03-08	cpt.fixModel	mRNA	4071	4190	.	+	.	ID=ORF.0.345_0.971616620883.mRNA;Parent=ORF.0.345_0.971616620883
+testseq_2018-03-08	getOrfsOrCds	CDS	4071	4190	.	+	0	ID=ORF.0.345_0.971616620883.CDS;Parent=ORF.0.345_0.971616620883.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	4057	4059	.	+	.	ID=ORF.0.345_0.971616620883.rbs-0;Parent=ORF.0.345_0.971616620883
+testseq_2018-03-08	cpt.fixModel	gene	4095	4190	.	+	.	ID=ORF.0.347_0.0208968983552
+testseq_2018-03-08	cpt.fixModel	mRNA	4095	4190	.	+	.	ID=ORF.0.347_0.0208968983552.mRNA;Parent=ORF.0.347_0.0208968983552
+testseq_2018-03-08	getOrfsOrCds	CDS	4095	4190	.	+	0	ID=ORF.0.347_0.0208968983552.CDS;Parent=ORF.0.347_0.0208968983552.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	4087	4089	.	+	.	ID=ORF.0.347_0.0208968983552.rbs-0;Parent=ORF.0.347_0.0208968983552
+testseq_2018-03-08	cpt.fixModel	gene	4134	4229	.	-	.	ID=ORF.0.517_0.929120702544
+testseq_2018-03-08	cpt.fixModel	mRNA	4134	4229	.	-	.	ID=ORF.0.517_0.929120702544.mRNA;Parent=ORF.0.517_0.929120702544
+testseq_2018-03-08	getOrfsOrCds	CDS	4134	4229	.	-	0	ID=ORF.0.517_0.929120702544.CDS;Parent=ORF.0.517_0.929120702544.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	4241	4243	.	-	.	ID=ORF.0.517_0.929120702544.rbs-0;Parent=ORF.0.517_0.929120702544
+testseq_2018-03-08	cpt.fixModel	gene	4574	5500	.	+	.	ID=ORF.0.146_0.351389104617
+testseq_2018-03-08	cpt.fixModel	mRNA	4574	5500	.	+	.	ID=ORF.0.146_0.351389104617.mRNA;Parent=ORF.0.146_0.351389104617
+testseq_2018-03-08	getOrfsOrCds	CDS	4574	5500	.	+	0	ID=ORF.0.146_0.351389104617.CDS;Parent=ORF.0.146_0.351389104617.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	4560	4563	.	+	.	ID=ORF.0.146_0.351389104617.rbs-0;Parent=ORF.0.146_0.351389104617
+testseq_2018-03-08	cpt.fixModel	gene	5029	5181	.	-	.	ID=ORF.0.439_0.445866101899
+testseq_2018-03-08	cpt.fixModel	mRNA	5029	5181	.	-	.	ID=ORF.0.439_0.445866101899.mRNA;Parent=ORF.0.439_0.445866101899
+testseq_2018-03-08	getOrfsOrCds	CDS	5029	5181	.	-	0	ID=ORF.0.439_0.445866101899.CDS;Parent=ORF.0.439_0.445866101899.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	5188	5192	.	-	.	ID=ORF.0.439_0.445866101899.rbs-0;Parent=ORF.0.439_0.445866101899
+testseq_2018-03-08	cpt.fixModel	gene	5029	5160	.	-	.	ID=ORF.0.440_0.915263915342
+testseq_2018-03-08	cpt.fixModel	mRNA	5029	5160	.	-	.	ID=ORF.0.440_0.915263915342.mRNA;Parent=ORF.0.440_0.915263915342
+testseq_2018-03-08	getOrfsOrCds	CDS	5029	5160	.	-	0	ID=ORF.0.440_0.915263915342.CDS;Parent=ORF.0.440_0.915263915342.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	5170	5172	.	-	.	ID=ORF.0.440_0.915263915342.rbs-0;Parent=ORF.0.440_0.915263915342
+testseq_2018-03-08	cpt.fixModel	gene	5393	5500	.	+	.	ID=ORF.0.183_0.0663532791257
+testseq_2018-03-08	cpt.fixModel	mRNA	5393	5500	.	+	.	ID=ORF.0.183_0.0663532791257.mRNA;Parent=ORF.0.183_0.0663532791257
+testseq_2018-03-08	getOrfsOrCds	CDS	5393	5500	.	+	0	ID=ORF.0.183_0.0663532791257.CDS;Parent=ORF.0.183_0.0663532791257.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	5381	5383	.	+	.	ID=ORF.0.183_0.0663532791257.rbs-0;Parent=ORF.0.183_0.0663532791257
+testseq_2018-03-08	cpt.fixModel	gene	5570	5689	.	+	.	ID=ORF.0.185_0.343675913625
+testseq_2018-03-08	cpt.fixModel	mRNA	5570	5689	.	+	.	ID=ORF.0.185_0.343675913625.mRNA;Parent=ORF.0.185_0.343675913625
+testseq_2018-03-08	getOrfsOrCds	CDS	5570	5689	.	+	0	ID=ORF.0.185_0.343675913625.CDS;Parent=ORF.0.185_0.343675913625.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	5562	5564	.	+	.	ID=ORF.0.185_0.343675913625.rbs-0;Parent=ORF.0.185_0.343675913625
+testseq_2018-03-08	cpt.fixModel	gene	6095	6205	.	-	.	ID=ORF.0.580_0.42130451371
+testseq_2018-03-08	cpt.fixModel	mRNA	6095	6205	.	-	.	ID=ORF.0.580_0.42130451371.mRNA;Parent=ORF.0.580_0.42130451371
+testseq_2018-03-08	getOrfsOrCds	CDS	6095	6205	.	-	0	ID=ORF.0.580_0.42130451371.CDS;Parent=ORF.0.580_0.42130451371.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	6218	6220	.	-	.	ID=ORF.0.580_0.42130451371.rbs-0;Parent=ORF.0.580_0.42130451371
+testseq_2018-03-08	cpt.fixModel	gene	6166	6282	.	-	.	ID=ORF.0.429_0.211525337226
+testseq_2018-03-08	cpt.fixModel	mRNA	6166	6282	.	-	.	ID=ORF.0.429_0.211525337226.mRNA;Parent=ORF.0.429_0.211525337226
+testseq_2018-03-08	getOrfsOrCds	CDS	6166	6282	.	-	0	ID=ORF.0.429_0.211525337226.CDS;Parent=ORF.0.429_0.211525337226.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	6288	6290	.	-	.	ID=ORF.0.429_0.211525337226.rbs-0;Parent=ORF.0.429_0.211525337226
+testseq_2018-03-08	cpt.fixModel	gene	6206	6973	.	+	.	ID=ORF.0.202_0.502577350308
+testseq_2018-03-08	cpt.fixModel	mRNA	6206	6973	.	+	.	ID=ORF.0.202_0.502577350308.mRNA;Parent=ORF.0.202_0.502577350308
+testseq_2018-03-08	getOrfsOrCds	CDS	6206	6973	.	+	0	ID=ORF.0.202_0.502577350308.CDS;Parent=ORF.0.202_0.502577350308.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	6196	6198	.	+	.	ID=ORF.0.202_0.502577350308.rbs-0;Parent=ORF.0.202_0.502577350308
+testseq_2018-03-08	cpt.fixModel	gene	6545	6973	.	+	.	ID=ORF.0.217_0.854168148494
+testseq_2018-03-08	cpt.fixModel	mRNA	6545	6973	.	+	.	ID=ORF.0.217_0.854168148494.mRNA;Parent=ORF.0.217_0.854168148494
+testseq_2018-03-08	getOrfsOrCds	CDS	6545	6973	.	+	0	ID=ORF.0.217_0.854168148494.CDS;Parent=ORF.0.217_0.854168148494.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	6530	6532	.	+	.	ID=ORF.0.217_0.854168148494.rbs-0;Parent=ORF.0.217_0.854168148494
+testseq_2018-03-08	cpt.fixModel	gene	6704	6973	.	+	.	ID=ORF.0.224_0.295192659405
+testseq_2018-03-08	cpt.fixModel	mRNA	6704	6973	.	+	.	ID=ORF.0.224_0.295192659405.mRNA;Parent=ORF.0.224_0.295192659405
+testseq_2018-03-08	getOrfsOrCds	CDS	6704	6973	.	+	0	ID=ORF.0.224_0.295192659405.CDS;Parent=ORF.0.224_0.295192659405.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	6692	6695	.	+	.	ID=ORF.0.224_0.295192659405.rbs-0;Parent=ORF.0.224_0.295192659405
+testseq_2018-03-08	cpt.fixModel	gene	6978	7094	.	+	.	ID=ORF.0.355_0.773691408662
+testseq_2018-03-08	cpt.fixModel	mRNA	6978	7094	.	+	.	ID=ORF.0.355_0.773691408662.mRNA;Parent=ORF.0.355_0.773691408662
+testseq_2018-03-08	getOrfsOrCds	CDS	6978	7094	.	+	0	ID=ORF.0.355_0.773691408662.CDS;Parent=ORF.0.355_0.773691408662.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	6967	6971	.	+	.	ID=ORF.0.355_0.773691408662.rbs-0;Parent=ORF.0.355_0.773691408662
+testseq_2018-03-08	cpt.fixModel	gene	7016	7156	.	-	.	ID=ORF.0.571_0.245647554641
+testseq_2018-03-08	cpt.fixModel	mRNA	7016	7156	.	-	.	ID=ORF.0.571_0.245647554641.mRNA;Parent=ORF.0.571_0.245647554641
+testseq_2018-03-08	getOrfsOrCds	CDS	7016	7156	.	-	0	ID=ORF.0.571_0.245647554641.CDS;Parent=ORF.0.571_0.245647554641.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	7163	7166	.	-	.	ID=ORF.0.571_0.245647554641.rbs-0;Parent=ORF.0.571_0.245647554641
+testseq_2018-03-08	cpt.fixModel	gene	7056	7244	.	-	.	ID=ORF.0.492_0.914947831416
+testseq_2018-03-08	cpt.fixModel	mRNA	7056	7244	.	-	.	ID=ORF.0.492_0.914947831416.mRNA;Parent=ORF.0.492_0.914947831416
+testseq_2018-03-08	getOrfsOrCds	CDS	7056	7244	.	-	0	ID=ORF.0.492_0.914947831416.CDS;Parent=ORF.0.492_0.914947831416.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	7250	7253	.	-	.	ID=ORF.0.492_0.914947831416.rbs-0;Parent=ORF.0.492_0.914947831416
+testseq_2018-03-08	cpt.fixModel	gene	7056	7229	.	-	.	ID=ORF.0.494_0.190486747638
+testseq_2018-03-08	cpt.fixModel	mRNA	7056	7229	.	-	.	ID=ORF.0.494_0.190486747638.mRNA;Parent=ORF.0.494_0.190486747638
+testseq_2018-03-08	getOrfsOrCds	CDS	7056	7229	.	-	0	ID=ORF.0.494_0.190486747638.CDS;Parent=ORF.0.494_0.190486747638.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	7235	7237	.	-	.	ID=ORF.0.494_0.190486747638.rbs-0;Parent=ORF.0.494_0.190486747638
+testseq_2018-03-08	cpt.fixModel	gene	7072	7395	.	+	.	ID=ORF.0.33_0.821816667683
+testseq_2018-03-08	cpt.fixModel	mRNA	7072	7395	.	+	.	ID=ORF.0.33_0.821816667683.mRNA;Parent=ORF.0.33_0.821816667683
+testseq_2018-03-08	getOrfsOrCds	CDS	7072	7395	.	+	0	ID=ORF.0.33_0.821816667683.CDS;Parent=ORF.0.33_0.821816667683.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	7061	7065	.	+	.	ID=ORF.0.33_0.821816667683.rbs-0;Parent=ORF.0.33_0.821816667683
+testseq_2018-03-08	cpt.fixModel	gene	7078	7395	.	+	.	ID=ORF.0.34_0.707053863467
+testseq_2018-03-08	cpt.fixModel	mRNA	7078	7395	.	+	.	ID=ORF.0.34_0.707053863467.mRNA;Parent=ORF.0.34_0.707053863467
+testseq_2018-03-08	getOrfsOrCds	CDS	7078	7395	.	+	0	ID=ORF.0.34_0.707053863467.CDS;Parent=ORF.0.34_0.707053863467.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	7063	7066	.	+	.	ID=ORF.0.34_0.707053863467.rbs-0;Parent=ORF.0.34_0.707053863467
+testseq_2018-03-08	cpt.fixModel	gene	7379	7855	.	+	.	ID=ORF.0.231_0.000923123852602
+testseq_2018-03-08	cpt.fixModel	mRNA	7379	7855	.	+	.	ID=ORF.0.231_0.000923123852602.mRNA;Parent=ORF.0.231_0.000923123852602
+testseq_2018-03-08	getOrfsOrCds	CDS	7379	7855	.	+	0	ID=ORF.0.231_0.000923123852602.CDS;Parent=ORF.0.231_0.000923123852602.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	7369	7372	.	+	.	ID=ORF.0.231_0.000923123852602.rbs-0;Parent=ORF.0.231_0.000923123852602
+testseq_2018-03-08	cpt.fixModel	gene	7418	7855	.	+	.	ID=ORF.0.233_0.405974692709
+testseq_2018-03-08	cpt.fixModel	mRNA	7418	7855	.	+	.	ID=ORF.0.233_0.405974692709.mRNA;Parent=ORF.0.233_0.405974692709
+testseq_2018-03-08	getOrfsOrCds	CDS	7418	7855	.	+	0	ID=ORF.0.233_0.405974692709.CDS;Parent=ORF.0.233_0.405974692709.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	7404	7406	.	+	.	ID=ORF.0.233_0.405974692709.rbs-0;Parent=ORF.0.233_0.405974692709
+testseq_2018-03-08	cpt.fixModel	gene	7658	7855	.	+	.	ID=ORF.0.237_0.755472071473
+testseq_2018-03-08	cpt.fixModel	mRNA	7658	7855	.	+	.	ID=ORF.0.237_0.755472071473.mRNA;Parent=ORF.0.237_0.755472071473
+testseq_2018-03-08	getOrfsOrCds	CDS	7658	7855	.	+	0	ID=ORF.0.237_0.755472071473.CDS;Parent=ORF.0.237_0.755472071473.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	7650	7652	.	+	.	ID=ORF.0.237_0.755472071473.rbs-0;Parent=ORF.0.237_0.755472071473
+testseq_2018-03-08	cpt.fixModel	gene	7664	7855	.	+	.	ID=ORF.0.238_0.914046339376
+testseq_2018-03-08	cpt.fixModel	mRNA	7664	7855	.	+	.	ID=ORF.0.238_0.914046339376.mRNA;Parent=ORF.0.238_0.914046339376
+testseq_2018-03-08	getOrfsOrCds	CDS	7664	7855	.	+	0	ID=ORF.0.238_0.914046339376.CDS;Parent=ORF.0.238_0.914046339376.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	7650	7653	.	+	.	ID=ORF.0.238_0.914046339376.rbs-0;Parent=ORF.0.238_0.914046339376
+testseq_2018-03-08	cpt.fixModel	gene	7806	7922	.	+	.	ID=ORF.0.365_0.2945108684
+testseq_2018-03-08	cpt.fixModel	mRNA	7806	7922	.	+	.	ID=ORF.0.365_0.2945108684.mRNA;Parent=ORF.0.365_0.2945108684
+testseq_2018-03-08	getOrfsOrCds	CDS	7806	7922	.	+	0	ID=ORF.0.365_0.2945108684.CDS;Parent=ORF.0.365_0.2945108684.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	7791	7793	.	+	.	ID=ORF.0.365_0.2945108684.rbs-0;Parent=ORF.0.365_0.2945108684
+testseq_2018-03-08	cpt.fixModel	gene	7852	8313	.	+	.	ID=ORF.0.50_0.415010657017
+testseq_2018-03-08	cpt.fixModel	mRNA	7852	8313	.	+	.	ID=ORF.0.50_0.415010657017.mRNA;Parent=ORF.0.50_0.415010657017
+testseq_2018-03-08	getOrfsOrCds	CDS	7852	8313	.	+	0	ID=ORF.0.50_0.415010657017.CDS;Parent=ORF.0.50_0.415010657017.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	7839	7841	.	+	.	ID=ORF.0.50_0.415010657017.rbs-0;Parent=ORF.0.50_0.415010657017
+testseq_2018-03-08	cpt.fixModel	gene	8072	8254	.	+	.	ID=ORF.0.247_0.938715889806
+testseq_2018-03-08	cpt.fixModel	mRNA	8072	8254	.	+	.	ID=ORF.0.247_0.938715889806.mRNA;Parent=ORF.0.247_0.938715889806
+testseq_2018-03-08	getOrfsOrCds	CDS	8072	8254	.	+	0	ID=ORF.0.247_0.938715889806.CDS;Parent=ORF.0.247_0.938715889806.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	8060	8064	.	+	.	ID=ORF.0.247_0.938715889806.rbs-0;Parent=ORF.0.247_0.938715889806
+testseq_2018-03-08	cpt.fixModel	gene	8128	8313	.	+	.	ID=ORF.0.65_0.403948729686
+testseq_2018-03-08	cpt.fixModel	mRNA	8128	8313	.	+	.	ID=ORF.0.65_0.403948729686.mRNA;Parent=ORF.0.65_0.403948729686
+testseq_2018-03-08	getOrfsOrCds	CDS	8128	8313	.	+	0	ID=ORF.0.65_0.403948729686.CDS;Parent=ORF.0.65_0.403948729686.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	8116	8118	.	+	.	ID=ORF.0.65_0.403948729686.rbs-0;Parent=ORF.0.65_0.403948729686
+testseq_2018-03-08	cpt.fixModel	gene	8152	8640	.	-	.	ID=ORF.0.380_0.771335496557
+testseq_2018-03-08	cpt.fixModel	mRNA	8152	8640	.	-	.	ID=ORF.0.380_0.771335496557.mRNA;Parent=ORF.0.380_0.771335496557
+testseq_2018-03-08	getOrfsOrCds	CDS	8152	8640	.	-	0	ID=ORF.0.380_0.771335496557.CDS;Parent=ORF.0.380_0.771335496557.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	8652	8654	.	-	.	ID=ORF.0.380_0.771335496557.rbs-0;Parent=ORF.0.380_0.771335496557
+testseq_2018-03-08	cpt.fixModel	gene	8152	8436	.	-	.	ID=ORF.0.391_0.169373954797
+testseq_2018-03-08	cpt.fixModel	mRNA	8152	8436	.	-	.	ID=ORF.0.391_0.169373954797.mRNA;Parent=ORF.0.391_0.169373954797
+testseq_2018-03-08	getOrfsOrCds	CDS	8152	8436	.	-	0	ID=ORF.0.391_0.169373954797.CDS;Parent=ORF.0.391_0.169373954797.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	8444	8446	.	-	.	ID=ORF.0.391_0.169373954797.rbs-0;Parent=ORF.0.391_0.169373954797
+testseq_2018-03-08	cpt.fixModel	gene	8152	8271	.	-	.	ID=ORF.0.400_0.811321232506
+testseq_2018-03-08	cpt.fixModel	mRNA	8152	8271	.	-	.	ID=ORF.0.400_0.811321232506.mRNA;Parent=ORF.0.400_0.811321232506
+testseq_2018-03-08	getOrfsOrCds	CDS	8152	8271	.	-	0	ID=ORF.0.400_0.811321232506.CDS;Parent=ORF.0.400_0.811321232506.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	8281	8284	.	-	.	ID=ORF.0.400_0.811321232506.rbs-0;Parent=ORF.0.400_0.811321232506
+testseq_2018-03-08	cpt.fixModel	gene	8339	8782	.	+	.	ID=ORF.0.260_0.577298671452
+testseq_2018-03-08	cpt.fixModel	mRNA	8339	8782	.	+	.	ID=ORF.0.260_0.577298671452.mRNA;Parent=ORF.0.260_0.577298671452
+testseq_2018-03-08	getOrfsOrCds	CDS	8339	8782	.	+	0	ID=ORF.0.260_0.577298671452.CDS;Parent=ORF.0.260_0.577298671452.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	8330	8332	.	+	.	ID=ORF.0.260_0.577298671452.rbs-0;Parent=ORF.0.260_0.577298671452
+testseq_2018-03-08	cpt.fixModel	gene	8360	8782	.	+	.	ID=ORF.0.261_0.357298653378
+testseq_2018-03-08	cpt.fixModel	mRNA	8360	8782	.	+	.	ID=ORF.0.261_0.357298653378.mRNA;Parent=ORF.0.261_0.357298653378
+testseq_2018-03-08	getOrfsOrCds	CDS	8360	8782	.	+	0	ID=ORF.0.261_0.357298653378.CDS;Parent=ORF.0.261_0.357298653378.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	8348	8351	.	+	.	ID=ORF.0.261_0.357298653378.rbs-0;Parent=ORF.0.261_0.357298653378
+testseq_2018-03-08	cpt.fixModel	gene	8453	8782	.	+	.	ID=ORF.0.268_0.501011908227
+testseq_2018-03-08	cpt.fixModel	mRNA	8453	8782	.	+	.	ID=ORF.0.268_0.501011908227.mRNA;Parent=ORF.0.268_0.501011908227
+testseq_2018-03-08	getOrfsOrCds	CDS	8453	8782	.	+	0	ID=ORF.0.268_0.501011908227.CDS;Parent=ORF.0.268_0.501011908227.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	8438	8440	.	+	.	ID=ORF.0.268_0.501011908227.rbs-0;Parent=ORF.0.268_0.501011908227
+testseq_2018-03-08	cpt.fixModel	gene	8504	8782	.	+	.	ID=ORF.0.269_0.219984821414
+testseq_2018-03-08	cpt.fixModel	mRNA	8504	8782	.	+	.	ID=ORF.0.269_0.219984821414.mRNA;Parent=ORF.0.269_0.219984821414
+testseq_2018-03-08	getOrfsOrCds	CDS	8504	8782	.	+	0	ID=ORF.0.269_0.219984821414.CDS;Parent=ORF.0.269_0.219984821414.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	8493	8495	.	+	.	ID=ORF.0.269_0.219984821414.rbs-0;Parent=ORF.0.269_0.219984821414
+testseq_2018-03-08	cpt.fixModel	gene	8621	8782	.	+	.	ID=ORF.0.278_0.44001518346
+testseq_2018-03-08	cpt.fixModel	mRNA	8621	8782	.	+	.	ID=ORF.0.278_0.44001518346.mRNA;Parent=ORF.0.278_0.44001518346
+testseq_2018-03-08	getOrfsOrCds	CDS	8621	8782	.	+	0	ID=ORF.0.278_0.44001518346.CDS;Parent=ORF.0.278_0.44001518346.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	8612	8614	.	+	.	ID=ORF.0.278_0.44001518346.rbs-0;Parent=ORF.0.278_0.44001518346
+testseq_2018-03-08	cpt.fixModel	gene	8944	9198	.	+	.	ID=ORF.0.81_0.839099082128
+testseq_2018-03-08	cpt.fixModel	mRNA	8944	9198	.	+	.	ID=ORF.0.81_0.839099082128.mRNA;Parent=ORF.0.81_0.839099082128
+testseq_2018-03-08	getOrfsOrCds	CDS	8944	9198	.	+	0	ID=ORF.0.81_0.839099082128.CDS;Parent=ORF.0.81_0.839099082128.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	8929	8931	.	+	.	ID=ORF.0.81_0.839099082128.rbs-0;Parent=ORF.0.81_0.839099082128
+testseq_2018-03-08	cpt.fixModel	gene	9037	9198	.	+	.	ID=ORF.0.87_0.518549362319
+testseq_2018-03-08	cpt.fixModel	mRNA	9037	9198	.	+	.	ID=ORF.0.87_0.518549362319.mRNA;Parent=ORF.0.87_0.518549362319
+testseq_2018-03-08	getOrfsOrCds	CDS	9037	9198	.	+	0	ID=ORF.0.87_0.518549362319.CDS;Parent=ORF.0.87_0.518549362319.mRNA
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	9022	9024	.	+	.	ID=ORF.0.87_0.518549362319.rbs-0;Parent=ORF.0.87_0.518549362319
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cpt_lipop_conv/test-data/LipoToGFF_In.txt	Fri May 13 05:18:31 2022 +0000
@@ -0,0 +1,336 @@
+# ORF.0.472_0.8077298255.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.472_0.8077298255.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.465_0.466377183402.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.465_0.466377183402.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.466_0.685859290271.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.466_0.685859290271.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.468_0.803001272192.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.468_0.803001272192.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.708_0.889453606077.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.708_0.889453606077.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.458_0.61399204562.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.458_0.61399204562.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.459_0.323250347541.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.459_0.323250347541.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.460_0.509039455004.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.460_0.509039455004.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.461_0.392081904542.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.461_0.392081904542.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.699_0.764949625216.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.699_0.764949625216.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.703_0.981371874022.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.703_0.981371874022.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.705_0.438813830323.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.705_0.438813830323.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.622_0.865794102081.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.622_0.865794102081.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.623_0.846988205141.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.623_0.846988205141.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.625_0.0578111846669.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.625_0.0578111846669.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.626_0.303786861772.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.626_0.303786861772.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.630_0.467112600707.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.630_0.467112600707.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.631_0.2883116125.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.631_0.2883116125.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.636_0.876600016398.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.636_0.876600016398.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.640_0.0888066128056.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.640_0.0888066128056.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.655_0.212962186525.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.655_0.212962186525.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.659_0.370352364369.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.659_0.370352364369.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.660_0.561664408596.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.660_0.561664408596.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.662_0.547739243117.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.662_0.547739243117.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.667_0.381504311163.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.667_0.381504311163.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.457_0.112605087319.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.457_0.112605087319.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.518_0.704496503167.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.518_0.704496503167.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.531_0.284124356131.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.531_0.284124356131.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.534_0.230486359187.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.534_0.230486359187.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.549_0.435747482069.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.549_0.435747482069.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.603_0.488926379773.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.603_0.488926379773.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.605_0.950422684088.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.605_0.950422684088.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.606_0.329949811104.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.606_0.329949811104.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.611_0.815705221168.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.611_0.815705221168.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.613_0.104890641676.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.613_0.104890641676.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.17_0.711047642618.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.17_0.711047642618.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.139_0.904626958426.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.139_0.904626958426.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.445_0.286571403109.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.445_0.286571403109.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.345_0.971616620883.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.345_0.971616620883.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.347_0.0208968983552.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.347_0.0208968983552.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.517_0.929120702544.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.517_0.929120702544.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.146_0.351389104617.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.146_0.351389104617.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.439_0.445866101899.CDS TMH score=6.51858 margin=6.713639
+# Cut-off=-3
+ORF.0.439_0.445866101899.CDS	LipoP1.0:Best	TMH	1	1	6.51858
+ORF.0.439_0.445866101899.CDS	LipoP1.0:Margin	TMH	1	1	6.713639
+ORF.0.439_0.445866101899.CDS	LipoP1.0:Class	SpI	1	1	-0.195059
+ORF.0.439_0.445866101899.CDS	LipoP1.0:Class	CYT	1	1	-0.200913
+ORF.0.439_0.445866101899.CDS	LipoP1.0:Signal	CleavI	20	21	-0.295218	# SPGVP|CIMLL
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.440_0.915263915342.CDS TMH score=0.241158 margin=0.442071
+# Cut-off=-3
+ORF.0.440_0.915263915342.CDS	LipoP1.0:Best	TMH	1	1	0.241158
+ORF.0.440_0.915263915342.CDS	LipoP1.0:Margin	TMH	1	1	0.442071
+ORF.0.440_0.915263915342.CDS	LipoP1.0:Class	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.183_0.0663532791257.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.183_0.0663532791257.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.185_0.343675913625.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.185_0.343675913625.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.580_0.42130451371.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.580_0.42130451371.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.429_0.211525337226.CDS CYT score=-0.200913 margin=0.370359
+# Cut-off=-3
+ORF.0.429_0.211525337226.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+ORF.0.429_0.211525337226.CDS	LipoP1.0:Margin	CYT	1	1	0.370359
+ORF.0.429_0.211525337226.CDS	LipoP1.0:Class	TMH	1	1	-0.571272
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.202_0.502577350308.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.202_0.502577350308.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.217_0.854168148494.CDS CYT score=-0.200913 margin=1.810677
+# Cut-off=-3
+ORF.0.217_0.854168148494.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+ORF.0.217_0.854168148494.CDS	LipoP1.0:Margin	CYT	1	1	1.810677
+ORF.0.217_0.854168148494.CDS	LipoP1.0:Class	SpI	1	1	-2.01159
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.224_0.295192659405.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.224_0.295192659405.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.355_0.773691408662.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.355_0.773691408662.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.571_0.245647554641.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.571_0.245647554641.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.492_0.914947831416.CDS CYT score=-0.200913 margin=0.188252
+# Cut-off=-3
+ORF.0.492_0.914947831416.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+ORF.0.492_0.914947831416.CDS	LipoP1.0:Margin	CYT	1	1	0.188252
+ORF.0.492_0.914947831416.CDS	LipoP1.0:Class	TMH	1	1	-0.389165
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.494_0.190486747638.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.494_0.190486747638.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.33_0.821816667683.CDS CYT score=-0.200913 margin=1.151907
+# Cut-off=-3
+ORF.0.33_0.821816667683.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+ORF.0.33_0.821816667683.CDS	LipoP1.0:Margin	CYT	1	1	1.151907
+ORF.0.33_0.821816667683.CDS	LipoP1.0:Class	TMH	1	1	-1.35282
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.34_0.707053863467.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.34_0.707053863467.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.231_0.000923123852602.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.231_0.000923123852602.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.233_0.405974692709.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.233_0.405974692709.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.237_0.755472071473.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.237_0.755472071473.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.238_0.914046339376.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.238_0.914046339376.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.365_0.2945108684.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.365_0.2945108684.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.50_0.415010657017.CDS SpII score=5.92551 margin=3.72509 cleavage=17-18 Pos+2=L
+# Cut-off=-3
+ORF.0.50_0.415010657017.CDS	LipoP1.0:Best	SpII	1	1	5.92551
+ORF.0.50_0.415010657017.CDS	LipoP1.0:Margin	SpII	1	1	3.72509
+ORF.0.50_0.415010657017.CDS	LipoP1.0:Class	SpI	1	1	2.20042
+ORF.0.50_0.415010657017.CDS	LipoP1.0:Class	CYT	1	1	-0.200913
+ORF.0.50_0.415010657017.CDS	LipoP1.0:Signal	CleavII	17	18	5.9255	# ICIIV|CLSWA Pos+2=L
+ORF.0.50_0.415010657017.CDS	LipoP1.0:Signal	CleavI	22	23	2.16267	# CLSWA|VNHYR
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.247_0.938715889806.CDS SpII score=19.8902 margin=11.77152 cleavage=19-20 Pos+2=T
+# Cut-off=-3
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Best	SpII	1	1	19.8902
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Margin	SpII	1	1	11.77152
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Class	SpI	1	1	8.11868
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Class	CYT	1	1	-0.200913
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Class	TMH	1	1	-1.32568
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Signal	CleavII	19	20	19.8902	# LVVVG|CTSKQ Pos+2=T
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Signal	CleavI	25	26	6.80431	# TSKQS|VSQCV
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Signal	CleavI	19	20	6.49651	# LVVVG|CTSKQ
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Signal	CleavI	22	23	5.34572	# VGCTS|KQSVS
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Signal	CleavI	23	24	3.96804	# GCTSK|QSVSQ
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Signal	CleavI	26	27	2.72646	# SKQSV|SQCVK
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Signal	CleavI	27	28	2.57107	# KQSVS|QCVKP
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Signal	CleavI	24	25	1.65562	# CTSKQ|SVSQC
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Signal	CleavI	17	18	1.37856	# LPLVV|VGCTS
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Signal	CleavI	21	22	-0.782641	# VVGCT|SKQSV
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Signal	CleavI	28	29	-1.09651	# QSVSQ|CVKPP
+ORF.0.247_0.938715889806.CDS	LipoP1.0:Signal	CleavI	20	21	-2.99138	# VVVGC|TSKQS
+# ORF.0.65_0.403948729686.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.65_0.403948729686.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.380_0.771335496557.CDS CYT score=-0.200913 margin=1.869487
+# Cut-off=-3
+ORF.0.380_0.771335496557.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+ORF.0.380_0.771335496557.CDS	LipoP1.0:Margin	CYT	1	1	1.869487
+ORF.0.380_0.771335496557.CDS	LipoP1.0:Class	TMH	1	1	-2.0704
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.391_0.169373954797.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.391_0.169373954797.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.400_0.811321232506.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.400_0.811321232506.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.260_0.577298671452.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.260_0.577298671452.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.261_0.357298653378.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.261_0.357298653378.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.268_0.501011908227.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.268_0.501011908227.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.269_0.219984821414.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.269_0.219984821414.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.278_0.44001518346.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.278_0.44001518346.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.81_0.839099082128.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.81_0.839099082128.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
+# ORF.0.87_0.518549362319.CDS CYT score=-0.200913
+# Cut-off=-3
+ORF.0.87_0.518549362319.CDS	LipoP1.0:Best	CYT	1	1	-0.200913
+# NO PLOT made - less than 4 putative cleavage sites predicted
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cpt_lipop_conv/test-data/LipoToGFF_Out.gff3	Fri May 13 05:18:31 2022 +0000
@@ -0,0 +1,12 @@
+##gff-version 3
+##sequence-region testseq_2018-03-08 1 9216
+testseq_2018-03-08	cpt.fixModel	gene	7852	8313	.	+	.	ID=ORF.0.50_0.415010657017;
+testseq_2018-03-08	cpt.fixModel	mRNA	7852	8313	.	+	.	ID=ORF.0.50_0.415010657017.mRNA;Parent=ORF.0.50_0.415010657017;
+testseq_2018-03-08	getOrfsOrCds	CDS	7852	8313	.	+	0	ID=ORF.0.50_0.415010657017.CDS;Parent=ORF.0.50_0.415010657017.mRNA;
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	7839	7841	.	+	.	ID=ORF.0.50_0.415010657017.rbs-0;Parent=ORF.0.50_0.415010657017;
+testseq_2018-03-08	feature	cleavage_site	7902	7903	.	+	.	ID=ORF.0.50_0.415010657017_cleavage_1;Parent=ORF.0.50_0.415010657017;
+testseq_2018-03-08	cpt.fixModel	gene	8072	8254	.	+	.	ID=ORF.0.247_0.938715889806;
+testseq_2018-03-08	cpt.fixModel	mRNA	8072	8254	.	+	.	ID=ORF.0.247_0.938715889806.mRNA;Parent=ORF.0.247_0.938715889806;
+testseq_2018-03-08	getOrfsOrCds	CDS	8072	8254	.	+	0	ID=ORF.0.247_0.938715889806.CDS;Parent=ORF.0.247_0.938715889806.mRNA;
+testseq_2018-03-08	CPT_ShineFind	Shine_Dalgarno_sequence	8060	8064	.	+	.	ID=ORF.0.247_0.938715889806.rbs-0;Parent=ORF.0.247_0.938715889806;
+testseq_2018-03-08	feature	cleavage_site	8128	8129	.	+	.	ID=ORF.0.247_0.938715889806_cleavage_1;Parent=ORF.0.247_0.938715889806;