# HG changeset patch
# User cpt
# Date 1682480552 0
# Node ID 32e011fa615c1b59097a6b5445456948d04be95f
# Parent  6a4d1bd8ac1dafd536c4c2864b46aa6c0e252416
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
diff -r 6a4d1bd8ac1d -r 32e011fa615c cpt-macros.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cpt-macros.xml	Wed Apr 26 03:42:32 2023 +0000
@@ -0,0 +1,115 @@
+
+    
+        
+            python
+            biopython
+            requests
+			cpt_gffparser
+            
+        
+        
+		
+		
+    
+    
+        10.1371/journal.pcbi.1008214
+        @unpublished{galaxyTools,
+		author = {E. Mijalis, H. Rasche},
+		title = {CPT Galaxy Tools},
+		year = {2013-2017},
+		note = {https://github.com/tamu-cpt/galaxy-tools/}
+		}
+		
+    
+    
+        
+            10.1371/journal.pcbi.1008214
+            
+			@unpublished{galaxyTools,
+				author = {E. Mijalis, H. Rasche},
+				title = {CPT Galaxy Tools},
+				year = {2013-2017},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+			
+            
+        
+    
+    
+        
+            10.1371/journal.pcbi.1008214
+            
+			@unpublished{galaxyTools,
+				author = {C. Ross},
+				title = {CPT Galaxy Tools},
+				year = {2020-},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+			
+            
+        
+    
+    
+        
+            10.1371/journal.pcbi.1008214
+            
+			@unpublished{galaxyTools,
+				author = {E. Mijalis, H. Rasche},
+				title = {CPT Galaxy Tools},
+				year = {2013-2017},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+			
+            
+			@unpublished{galaxyTools,
+				author = {A. Criscione},
+				title = {CPT Galaxy Tools},
+				year = {2019-2021},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+                        
+            
+        
+    
+    
+        
+            10.1371/journal.pcbi.1008214
+            
+			@unpublished{galaxyTools,
+				author = {A. Criscione},
+				title = {CPT Galaxy Tools},
+				year = {2019-2021},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+                        
+            
+        
+    
+    
+        
+            10.1371/journal.pcbi.1008214
+            
+			@unpublished{galaxyTools,
+				author = {C. Maughmer},
+				title = {CPT Galaxy Tools},
+				year = {2017-2020},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+			
+            
+        
+    
+    
+        
+			@unpublished{galaxyTools,
+				author = {C. Maughmer},
+				title = {CPT Galaxy Tools},
+				year = {2017-2020},
+				note = {https://github.com/tamu-cpt/galaxy-tools/}
+			}
+			
+        
+    
+
diff -r 6a4d1bd8ac1d -r 32e011fa615c cpt_annotation_table/cpt-macros.xml
--- a/cpt_annotation_table/cpt-macros.xml	Fri Jun 17 12:19:58 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-
-
-	
-		
-			python
-			biopython
-			requests
-			
-		
-		
-		
-		
-	
-	
-		10.1371/journal.pcbi.1008214
-		@unpublished{galaxyTools,
-		author = {E. Mijalis, H. Rasche},
-		title = {CPT Galaxy Tools},
-		year = {2013-2017},
-		note = {https://github.com/tamu-cpt/galaxy-tools/}
-		}
-		
-	
-	
-		
-			10.1371/journal.pcbi.1008214
-			
-			@unpublished{galaxyTools,
-				author = {E. Mijalis, H. Rasche},
-				title = {CPT Galaxy Tools},
-				year = {2013-2017},
-				note = {https://github.com/tamu-cpt/galaxy-tools/}
-			}
-			 
-		
-		
-	
-    	
-		
-			10.1371/journal.pcbi.1008214
-			
-			@unpublished{galaxyTools,
-				author = {C. Ross},
-				title = {CPT Galaxy Tools},
-				year = {2020-},
-				note = {https://github.com/tamu-cpt/galaxy-tools/}
-			}
-			
-		
-		
-	
-        
-		
-			10.1371/journal.pcbi.1008214
-			
-			@unpublished{galaxyTools,
-				author = {E. Mijalis, H. Rasche},
-				title = {CPT Galaxy Tools},
-				year = {2013-2017},
-				note = {https://github.com/tamu-cpt/galaxy-tools/}
-			}
-			
-                        
-			@unpublished{galaxyTools,
-				author = {A. Criscione},
-				title = {CPT Galaxy Tools},
-				year = {2019-2021},
-				note = {https://github.com/tamu-cpt/galaxy-tools/}
-			}
-                        
-                        
-		
-	
-        
-		
-			10.1371/journal.pcbi.1008214
-                        
-			@unpublished{galaxyTools,
-				author = {A. Criscione},
-				title = {CPT Galaxy Tools},
-				year = {2019-2021},
-				note = {https://github.com/tamu-cpt/galaxy-tools/}
-			}
-                        
-                        
-		
-	
-        
-		
-			10.1371/journal.pcbi.1008214
-			
-			@unpublished{galaxyTools,
-				author = {C. Maughmer},
-				title = {CPT Galaxy Tools},
-				year = {2017-2020},
-				note = {https://github.com/tamu-cpt/galaxy-tools/}
-			}
-			
-                        
-		
-	
-        
-			
-			@unpublished{galaxyTools,
-				author = {C. Maughmer},
-				title = {CPT Galaxy Tools},
-				year = {2017-2020},
-				note = {https://github.com/tamu-cpt/galaxy-tools/}
-			}
-			
-                        
-	
-
diff -r 6a4d1bd8ac1d -r 32e011fa615c cpt_annotation_table/gff3.py
--- a/cpt_annotation_table/gff3.py	Fri Jun 17 12:19:58 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,346 +0,0 @@
-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
diff -r 6a4d1bd8ac1d -r 32e011fa615c cpt_annotation_table/macros.xml
--- a/cpt_annotation_table/macros.xml	Fri Jun 17 12:19:58 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-
-
-  
-    
-		python
-		biopython
-		cpt_gffparser  
-		
-    
-  
-  
-	    
-  
-  
-    
-  
-  
-		ln -s $genome_fasta genomeref.fa;
-	
-	
-		genomeref.fa
-	
-
diff -r 6a4d1bd8ac1d -r 32e011fa615c cpt_annotation_table/phage_annotation_table.py
--- a/cpt_annotation_table/phage_annotation_table.py	Fri Jun 17 12:19:58 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,608 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8
-import os
-import argparse
-from gff3 import genes, get_gff3_id, get_rbs_from, feature_test_true, feature_lambda, feature_test_type
-from CPT_GFFParser import gffParse, gffWrite
-from Bio import SeqIO
-from jinja2 import Environment, FileSystemLoader
-import logging
-from math import floor
-
-logging.basicConfig(level=logging.DEBUG)
-log = logging.getLogger(name="pat")
-
-# Path to script, required because of Galaxy.
-SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__))
-# Path to the HTML template for the report
-
-def genes_all(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, {"types": feature_type}, subfeatures=True
-        ):
-            yield x
-    else:
-        data = list(genes_all(feature_list, feature_type, sort=False))
-        data = sorted(data, key=lambda feature: feature.location.start)
-        for x in data:
-            yield x
-
-def checkSubs(feature, qualName):
-    subFeats = []
-    res = ""
-    subFeats = feature.sub_features
-    while (len(subFeats) > 0):
-      for feat in subFeats:
-        for i in feat.qualifiers.keys():
-          for j in qualName:
-            if i == j:
-              if res == "":
-                res = feat.qualifiers[i][0]
-              else:
-                res += "; " + feat.qualifiers[i][0]
-      if res != "":
-        return res 
-      tempFeats = []
-      for feat in subFeats: # Should be breadth-first results
-        for x in feat.sub_features:
-          tempFeats.append(x)
-      subFeats = tempFeats
-    return res  
-
-def annotation_table_report(record, types, wanted_cols, gaf_data, searchSubs):
-    getTypes = []
-    for x in [y.strip() for y in types.split(",")]:
-        getTypes.append(x)
-    getTypes.append("gene")
-    sorted_features = list(genes_all(record.features, getTypes, sort=True))
-    if wanted_cols is None or len(wanted_cols.strip()) == 0:
-        return [], []
-    useSubs = searchSubs
-
-    def rid(record, feature):
-        """Organism ID
-        """
-        return record.id
-
-    def id(record, feature):
-        """ID
-        """
-        return feature.id
-
-    def featureType(record, feature):
-        """Type
-        """
-        return feature.type
-
-    def name(record, feature):
-        """Name
-        """
-        for x in ["Name", "name"]:
-          for y in feature.qualifiers.keys():
-            if x == y:
-              return feature.qualifiers[x][0]
-        if useSubs:
-          res = checkSubs(feature, ["Name", "name"])
-          if res != "":
-            return res 
-        return "None"
-    def start(record, feature):
-        """Boundary
-        """
-        return str(feature.location.start + 1)
-
-    def end(record, feature):
-        """Boundary
-        """
-        return str(feature.location.end)
-
-    def location(record, feature):
-        """Location
-        """
-        return str(feature.location.start + 1) + "..{0.end}".format(feature.location)
-
-    def length(record, feature):
-        """CDS Length (AA)
-        """
-        
-        if feature.type == "CDS":
-          cdss = [feature]
-        else:
-          cdss = list(genes(feature.sub_features, feature_type="CDS", sort=True))
-        
-        if cdss == []:
-          return "None"
-        res = (sum([len(cds) for cds in cdss]) / 3) - 1
-        if floor(res) == res:
-          res = int(res)
-        return str(res)
-
-    def notes(record, feature):
-        """User entered Notes"""
-        for x in ["Note", "note", "Notes", "notes"]:
-          for y in feature.qualifiers.keys():
-            if x == y:
-              return feature.qualifiers[x][0]
-        if useSubs:
-          res = checkSubs(feature, ["Note", "note", "Notes", "notes"])
-          if res != "":
-            return res 
-        return "None"
-
-    def date_created(record, feature):
-        """Created"""
-        return feature.qualifiers.get("date_creation", ["None"])[0]
-
-    def date_last_modified(record, feature):
-        """Last Modified"""
-        res = feature.qualifiers.get("date_last_modified", ["None"])[0]
-        if res != "None":
-          return res
-        if useSubs:
-          res = checkSubs(feature, ["date_last_modified"])
-          if res != "":
-            return res
-        return "None"
-
-    def description(record, feature):
-        """Description"""
-        res = feature.qualifiers.get("description", ["None"])[0]
-        if res != "None":
-          return res
-        if useSubs:
-          res = checkSubs(feature, ["description"])
-          if res != "":
-            return res
-        return "None"
-
-    def owner(record, feature):
-        """Owner
-
-        User who created the feature. In a 464 scenario this may be one of
-        the TAs."""
-        for x in ["Owner", "owner"]:
-          for y in feature.qualifiers.keys():
-            if x == y:
-              return feature.qualifiers[x][0]
-        if useSubs:
-          res = checkSubs(feature, ["Owner", "owner"])
-          if res != "":
-            return res 
-        return "None"
-
-    def product(record, feature):
-        """Product
-
-        User entered product qualifier (collects "Product" and "product"
-        entries)"""
-        """User entered Notes"""
-        for x in ["product", "Product"]:
-          for y in feature.qualifiers.keys():
-            if x == y:
-              return feature.qualifiers[x][0]
-        if useSubs:
-          res = checkSubs(feature, ["product", "Product"])
-          if res != "":
-            return res 
-        return "None"
-
-    def note(record, feature):
-        """Note
-
-        User entered Note qualifier(s)"""
-        return feature.qualifiers.get("Note", [])
-
-    def strand(record, feature):
-        """Strand
-        """
-        return "+" if feature.location.strand > 0 else "-"
-
-    def sd_spacing(record, feature):
-        """Shine-Dalgarno spacing
-        """
-        rbss = get_rbs_from(gene)
-        if len(rbss) == 0:
-            return "None"
-        else:
-            resp = []
-            for rbs in rbss:
-                cdss = list(genes(feature.sub_features, feature_type="CDS", sort=True))
-                if len(cdss) == 0:
-                  return "No CDS"
-                if rbs.location.strand > 0:
-                    distance = min(
-                        cdss, key=lambda x: x.location.start - rbs.location.end
-                    )
-                    distance_val = str(distance.location.start - rbs.location.end)
-                    resp.append(distance_val)
-                else:
-                    distance = min(
-                        cdss, key=lambda x: x.location.end - rbs.location.start
-                    )
-                    distance_val = str(rbs.location.start - distance.location.end)
-                    resp.append(distance_val)
-
-            if len(resp) == 1:
-                return str(resp[0])
-            return resp
-
-    def sd_seq(record, feature):
-        """Shine-Dalgarno sequence
-        """
-        rbss = get_rbs_from(gene)
-        if len(rbss) == 0:
-            return "None"
-        else:
-            resp = []
-            for rbs in rbss:
-                resp.append(str(rbs.extract(record).seq))
-            if len(resp) == 1:
-                return str(resp[0])
-            else:
-                return resp
-
-    def start_codon(record, feature):
-        """Start Codon
-        """
-        if feature.type == "CDS":
-          cdss = [feature]
-        else:
-          cdss = list(genes(feature.sub_features, feature_type="CDS", sort=True))
-        
-        data = [x for x in cdss]
-        if len(data) == 1:
-            return str(data[0].extract(record).seq[0:3])
-        else:
-            return [
-                "{0} ({1.location.start}..{1.location.end}:{1.location.strand})".format(
-                    x.extract(record).seq[0:3], x
-                )
-                for x in data
-            ]
-
-    def stop_codon(record, feature):
-        """Stop Codon
-        """
-        return str(feature.extract(record).seq[-3:])
-
-    def dbxrefs(record, feature):
-        """DBxrefs
-        """
-        """User entered Notes"""
-        for x in ["Dbxref", "db_xref", "DB_xref", "DBxref", "DB_Xref", "DBXref"]:
-          for y in feature.qualifiers.keys():
-            if x == y:
-              return feature.qualifiers[x][0]
-        return "None"
-
-    def upstream_feature(record, feature):
-        """Next gene upstream"""
-        if feature.strand > 0:
-            upstream_features = [
-                x for x in sorted_features if (x.location.start < feature.location.start and x.type == "gene" and x.strand == feature.strand)
-            ]
-            if len(upstream_features) > 0:
-                foundSelf = False
-                featCheck = upstream_features[-1].sub_features
-                for x in featCheck:
-                  if x == feature:
-                    foundSelf = True
-                    break
-                  featCheck = featCheck + x.sub_features
-                if foundSelf:
-                  if len(upstream_features) > 1:
-                    return upstream_features[-2]
-                  return None
-                return upstream_features[-1]
-            else:
-                return None
-        else:
-            upstream_features = [
-                x for x in sorted_features if (x.location.end > feature.location.end and x.type == "gene" and x.strand == feature.strand)
-            ]
-
-            if len(upstream_features) > 0:
-                foundSelf = False
-                featCheck = upstream_features[0].sub_features
-                for x in featCheck:
-                  if x == feature:
-                    foundSelf = True
-                    break
-                  featCheck = featCheck + x.sub_features
-                if foundSelf:
-                  if len(upstream_features) > 1:
-                    return upstream_features[1]
-                  return None
-                return upstream_features[0]
-            else:
-                return None
-
-    def upstream_feature__name(record, feature):
-        """Next gene upstream"""
-        up = upstream_feature(record, feature)
-        if up:
-            return str(up.id)
-        return "None"
-
-    def ig_dist(record, feature):
-        """Distance to next upstream gene on same strand"""
-        up = upstream_feature(record, feature)
-        if up:
-            dist = None
-            if feature.strand > 0:
-                dist = feature.location.start - up.location.end
-            else:
-                dist = up.location.start - feature.location.end
-            return str(dist)
-        else:
-            return "None"
-
-    def _main_gaf_func(record, feature, gaf_data, attr):
-        if feature.id in gaf_data:
-            return [x[attr] for x in gaf_data[feature.id]]
-        return []
-
-    def gaf_annotation_extension(record, feature, gaf_data):
-        """GAF Annotation Extension
-
-        Contains cross references to other ontologies that can be used
-        to qualify or enhance the annotation. The cross-reference is
-        prefaced by an appropriate GO relationship; references to
-        multiple ontologies can be entered. For example, if a gene
-        product is localized to the mitochondria of lymphocytes, the GO
-        ID (column 5) would be mitochondrion ; GO:0005439, and the
-        annotation extension column would contain a cross-reference to
-        the term lymphocyte from the Cell Type Ontology.
-        """
-        return _main_gaf_func(record, feature, gaf_data, "annotation_extension")
-
-    def gaf_aspect(record, feature, gaf_data):
-        """GAF Aspect code
-
-        E.g. P (biological process), F (molecular function) or C (cellular component)
-        """
-        return _main_gaf_func(record, feature, gaf_data, "aspect")
-
-    def gaf_assigned_by(record, feature, gaf_data):
-        """GAF Creating Organisation
-        """
-        return _main_gaf_func(record, feature, gaf_data, "assigned_by")
-
-    def gaf_date(record, feature, gaf_data):
-        """GAF Creation Date
-        """
-        return _main_gaf_func(record, feature, gaf_data, "date")
-
-    def gaf_db(record, feature, gaf_data):
-        """GAF DB
-        """
-        return _main_gaf_func(record, feature, gaf_data, "db")
-
-    def gaf_db_reference(record, feature, gaf_data):
-        """GAF DB Reference
-        """
-        return _main_gaf_func(record, feature, gaf_data, "db_reference")
-
-    def gaf_evidence_code(record, feature, gaf_data):
-        """GAF Evidence Code
-        """
-        return _main_gaf_func(record, feature, gaf_data, "evidence_code")
-
-    def gaf_go_id(record, feature, gaf_data):
-        """GAF GO ID
-        """
-        return _main_gaf_func(record, feature, gaf_data, "go_id")
-
-    def gaf_go_term(record, feature, gaf_data):
-        """GAF GO Term
-        """
-        return _main_gaf_func(record, feature, gaf_data, "go_term")
-
-    def gaf_id(record, feature, gaf_data):
-        """GAF ID
-        """
-        return _main_gaf_func(record, feature, gaf_data, "id")
-
-    def gaf_notes(record, feature, gaf_data):
-        """GAF Notes
-        """
-        return _main_gaf_func(record, feature, gaf_data, "notes")
-
-    def gaf_owner(record, feature, gaf_data):
-        """GAF Creator
-        """
-        return _main_gaf_func(record, feature, gaf_data, "owner")
-
-    def gaf_with_or_from(record, feature, gaf_data):
-        """GAF With/From
-        """
-        return _main_gaf_func(record, feature, gaf_data, "with_or_from")
-
-    cols = []
-    data = []
-    funcs = []
-    lcl = locals()
-    for x in [y.strip().lower() for y in wanted_cols.split(",")]:
-        if not x:
-            continue
-        if x == "type":
-          x = "featureType"
-        if x in lcl:
-            funcs.append(lcl[x])
-            # Keep track of docs
-            func_doc = lcl[x].__doc__.strip().split("\n\n")
-            # If there's a double newline, assume following text is the
-            # "help" and the first part is the "name". Generate empty help
-            # if not provided
-            if len(func_doc) == 1:
-                func_doc += [""]
-            cols.append(func_doc)
-        elif "__" in x:
-            chosen_funcs = [lcl[y] for y in x.split("__")]
-            func_doc = [
-                " of ".join(
-                    [y.__doc__.strip().split("\n\n")[0] for y in chosen_funcs[::-1]]
-                )
-            ]
-            cols.append(func_doc)
-            funcs.append(chosen_funcs)
-
-    for gene in genes_all(record.features, getTypes, sort=True):
-        row = []
-        for func in funcs:
-            if isinstance(func, list):
-                # If we have a list of functions, repeatedly apply them
-                value = gene
-                for f in func:
-                    if value is None:
-                        value = "None"
-                        break
-
-                    value = f(record, value)
-            else:
-                # Otherwise just apply the lone function
-                if func.__name__.startswith("gaf_"):
-                    value = func(record, gene, gaf_data)
-                else:
-                    value = func(record, gene)
-
-            if isinstance(value, list):
-                collapsed_value = ", ".join(value)
-                value = [str(collapsed_value)]#.encode("unicode_escape")]
-            else:
-                value = str(value)#.encode("unicode_escape")
-
-            row.append(value)
-        # print row
-        data.append(row)
-    return data, cols
-
-
-def parseGafData(file):
-    cols = []
-    data = {}
-    # '10d04a01-5ed8-49c8-b724-d6aa4df5a98d': {
-    # 'annotation_extension': '',
-    # 'aspect': '',
-    # 'assigned_by': 'CPT',
-    # 'date': '2017-05-04T16:25:22.161916Z',
-    # 'db': 'UniProtKB',
-    # 'db_reference': 'GO_REF:0000100',
-    # 'evidence_code': 'ISA',
-    # 'gene': '0d307196-833d-46e8-90e9-d80f7a041d88',
-    # 'go_id': 'GO:0039660',
-    # 'go_term': 'structural constituent of virion',
-    # 'id': '10d04a01-5ed8-49c8-b724-d6aa4df5a98d',
-    # 'notes': 'hit was putative minor structural protein',
-    # 'owner': 'amarc1@tamu.edu',
-    # 'with_or_from': 'UNIREF90:B2ZYZ7'
-    # },
-    for row in file:
-        if row.startswith("#"):
-            # Header
-            cols = (
-                row.strip().replace("# ", "").replace("GO Term", "go_term").split("\t")
-            )
-        else:
-            line = row.strip().split("\t")
-            tmp = dict(zip(cols, line))
-            if "gene" not in tmp.keys():
-              continue
-            if tmp["gene"] not in data:
-                data[tmp["gene"]] = []
-
-            data[tmp["gene"]].append(tmp)
-    return data
-
-
-def evaluate_and_report(
-    annotations,
-    genome,
-    types="gene",
-    reportTemplateName="phage_annotation_validator.html",
-    annotationTableCols="",
-    gafData=None,
-    searchSubs = False,
-):
-    """
-    Generate our HTML evaluation of the genome
-    """
-    # Get features from GFF file
-    seq_dict = SeqIO.to_dict(SeqIO.parse(genome, "fasta"))
-    # Get the first GFF3 record
-    # TODO: support multiple GFF3 files.
-    at_table_data = []
-    gaf = {}
-    if gafData:
-        gaf = parseGafData(gafData)
-
-    for record in gffParse(annotations, base_dict=seq_dict):
-        if reportTemplateName.endswith(".html"):
-            record.id = record.id.replace(".", "-")
-        log.info("Producing an annotation table for %s" % record.id)
-        annotation_table_data, annotation_table_col_names = annotation_table_report(
-            record, types, annotationTableCols, gaf, searchSubs
-        )
-        at_table_data.append((record, annotation_table_data))
-        # break
-
-    # This is data that will go into our HTML template
-    kwargs = {
-        "annotation_table_data": at_table_data,
-        "annotation_table_col_names": annotation_table_col_names,
-    }
-
-    env = Environment(
-        loader=FileSystemLoader(SCRIPT_PATH), trim_blocks=True, lstrip_blocks=True
-    )
-    if reportTemplateName.endswith(".html"):
-        env.filters["nice_id"] = str(get_gff3_id).replace(".", "-")
-    else:
-        env.filters["nice_id"] = get_gff3_id
-
-    def join(listy):
-        return "\n".join(listy)
-
-    env.filters.update({"join": join})
-    tpl = env.get_template(reportTemplateName)
-    return tpl.render(**kwargs).encode("utf-8")
-
-
-if __name__ == "__main__":
-    parser = argparse.ArgumentParser(
-        description="rebase gff3 features against parent locations", epilog=""
-    )
-    parser.add_argument(
-        "annotations", type=argparse.FileType("r"), help="Parent GFF3 annotations"
-    )
-    parser.add_argument("genome", type=argparse.FileType("r"), help="Genome Sequence")
-
-    parser.add_argument(
-        "--types",
-        help="Select extra types to display in output (Will always include gene)",
-    )
-
-    parser.add_argument(
-        "--reportTemplateName",
-        help="Report template file name",
-        default="phageqc_report_full.html",
-    )
-    parser.add_argument(
-        "--annotationTableCols",
-        help="Select columns to report in the annotation table output format",
-    )
-    parser.add_argument(
-        "--gafData", help="CPT GAF-like table", type=argparse.FileType("r")
-    )
-    parser.add_argument(
-        "--searchSubs", help="Attempt to populate fields from sub-features if qualifier is empty", action="store_true"
-    )
-
-    args = parser.parse_args()
-
-    print(evaluate_and_report(**vars(args)).decode("utf-8"))
diff -r 6a4d1bd8ac1d -r 32e011fa615c cpt_annotation_table/phage_annotation_table.xml
--- a/cpt_annotation_table/phage_annotation_table.xml	Fri Jun 17 12:19:58 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-
-
-    from gff3 formatted datasets
-    
-      macros.xml
-        cpt-macros.xml
-    
-    
-	jinja2  
-    
-     $output]]>
-    
-        
-        
-        
-        
-            
-            
-            
-            
-
-            
-            
-            
-            
-            
-
-            
-            
-            
-            
-
-            
-            
-
-            
-            
-            
-
-            
-            
-            
-            
-            
-        
-
-        
-        
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
-        
-        
-        
-            
-            
-        
-    
-    
-      
-          
-            
-          
-      
-    
-     
-	
-		
-		
-		
-		
-		
-	
-	
-		
-		
-		
-		
-		
-	
-  
-    
-    
-
diff -r 6a4d1bd8ac1d -r 32e011fa615c cpt_annotation_table/phageqc_report_annotation_table.html
--- a/cpt_annotation_table/phageqc_report_annotation_table.html	Fri Jun 17 12:19:58 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-
-
-  
-    
-    
-    
-    
-    
-    
-    Annotation Table
-    
-	
-	
-	
-
-    
-    
-    
-    
-    
-  
-  
-
-    
-
-    
-      
-        
-            
-
-            
-            
-                
-                    Data on each organism will be accessible from the tabs above.
-                
-                {% for (record, data) in annotation_table_data %}
-                    
-                        
-                            
-                                
-                                {% for col in annotation_table_col_names %}
-                                    | {{ col[0] }}-                                {% endfor %}
- | 
-                            
-                            
-                                {% for row in data %}
-                                    
-                                    {% for col in row %}
-                                    | {% if col is not string %} -                                    {% endfor %}
-{% for val in col %}{% else %}{{ col }}{% endif %}{{ val }}{% endfor %} | 
-                                {% endfor %}
-                            
-                        
-                    
-                {% endfor %}
-            
-        
-      
-    
-      
-        
-            
-
-            
-            
-                
-                    Data on each organism will be accessible from the tabs above.
-                
-                    
-                        
-                            
-                                
-                                    | Organism ID- | ID- | Type- | Name- | Location- | Boundary- | Boundary- | Strand- | CDS Length (AA)- | Shine-Dalgarno sequence- | Shine-Dalgarno spacing- | Start Codon- | Stop Codon- | Distance to next upstream gene on same strand- | Next gene upstream- | Owner- | Created- | Last Modified- | User entered Notes- | Description- | Product- | DBxrefs- | 
-                            
-                            
-                                    
-                                    | NC_001416-1_phage_lambda- | 1185c0aa-14c4-45c3-ab0d-889bbfdbf137- | gene- | terminase small subunit- | 181..736- | 181- | 736- | +- | 181- | GGA- | 7- | ATG- | TAA- | None- | None- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 6d452f5a-9508-40c1-9d43-d98831ca8919- | gene- | terminase large subunit- | 701..2636- | 701- | 2636- | +- | 641- | GGGT- | 6- | GTG- | TGA- | -36- | 1185c0aa-14c4-45c3-ab0d-889bbfdbf137- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 38175e36-b9e9-48ea-9d1c-7f115fae7194- | gene- | head completion protein- | 2622..2839- | 2622- | 2839- | +- | 68- | GGAG- | 7- | ATG- | TGA- | -15- | 6d452f5a-9508-40c1-9d43-d98831ca8919- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-28- | InterPro domain IPR004174- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 0695da41-cce8-4f07-a27a-eb42ac82ae56- | gene- | portal protein B- | 2824..4437- | 2824- | 4437- | +- | 533- | AGGA- | 8- | ATG- | TAA- | -16- | 38175e36-b9e9-48ea-9d1c-7f115fae7194- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 422aab41-ac49-4818-b87e-9331023dcacf- | gene- | capsid assembly protein- | 4406..5737- | 4406- | 5737- | +- | 673- | - | - | -GTG (4417..5737:1), GTG (5035..5737:1)
 | TAA- | -32- | 0695da41-cce8-4f07-a27a-eb42ac82ae56- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 274304d3-079e-4e08-aa11-219235e1aacb- | gene- | capsid decoration protein- | 5739..6079- | 5739- | 6079- | +- | 110- | GGA- | 5- | ATG- | TAA- | 1- | 422aab41-ac49-4818-b87e-9331023dcacf- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-28- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 4f815f9e-5092-4db3-b722-0d912c116293- | gene- | major capsid protein- | 6099..7160- | 6099- | 7160- | +- | 350- | AGG- | 6- | GTG- | TAA- | 19- | 274304d3-079e-4e08-aa11-219235e1aacb- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 4da662d1-028a-43e2-9b50-f48ad03bdd64- | gene- | DNA packaging protein FI- | 7173..7600- | 7173- | 7600- | +- | 136- | GGGG- | 13- | GTG- | TAA- | 12- | 4f815f9e-5092-4db3-b722-0d912c116293- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 638d1ac5-aea4-4988-b46d-01cf79793dfb- | gene- | head-tail connector protein FII- | 7603..7965- | 7603- | 7965- | +- | 117- | GGAG- | 5- | GTG- | TGA- | 2- | 4da662d1-028a-43e2-9b50-f48ad03bdd64- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | b541056e-bf91-4113-bce7-86bab4d27f76- | gene- | tail completion protein Z- | 7968..8555- | 7968- | 8555- | +- | 192- | GGGG- | 5- | ATG- | TGA- | 2- | 638d1ac5-aea4-4988-b46d-01cf79793dfb- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | fca8745c-c433-4845-9430-c8a9dd4dc37b- | gene- | tail tube terminator protein U- | 8535..8947- | 8535- | 8947- | +- | 131- | AGGA- | 13- | ATG- | TGA- | -21- | b541056e-bf91-4113-bce7-86bab4d27f76- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | d9ee7b0e-b4a7-48cf-8c4b-aa95ca8863e0- | gene- | tail tube protein V- | 8946..9695- | 8946- | 9695- | +- | 246- | GAGG- | 5- | ATG- | TAA- | -2- | fca8745c-c433-4845-9430-c8a9dd4dc37b- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 0b5a859a-39f6-4c49-91b7-0b2def466374- | gene- | tape measure chaperone GT- | 9699..10133- | 9699- | 10133- | +- | 275- | - | - | -ATG (9710..10133:1), ATG (9710..10115:1)
 | TGA- | 3- | d9ee7b0e-b4a7-48cf-8c4b-aa95ca8863e0- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | c6a11d3b-7b9d-446f-ba16-3a642f3f6fbd- | gene- | tape measure chaperone GT- | 10115..10549- | 10115- | 10549- | +- | 144- | None- | None- | GTG- | TGA- | -19- | 0b5a859a-39f6-4c49-91b7-0b2def466374- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 7ef9ffad-d420-4a1c-9a8d-2312dc04b558- | gene- | tape measure protein H- | 10528..13103- | 10528- | 13103- | +- | 853- | AGGAGG- | 8- | ATG- | TGA- | -22- | c6a11d3b-7b9d-446f-ba16-3a642f3f6fbd- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 55fe46da-9e0e-4454-aff9-f9a12c0a2da4- | gene- | tail tip protein M- | 13089..13429- | 13089- | 13429- | +- | 109- | GGAGGT- | 5- | ATG- | TGA- | -15- | 7ef9ffad-d420-4a1c-9a8d-2312dc04b558- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 11a10b01-003c-4900-aae9-46139ae23652- | gene- | tail tip protein L- | 13416..14127- | 13416- | 14127- | +- | 232- | AGGT- | 9- | ATG- | TAA- | -14- | 55fe46da-9e0e-4454-aff9-f9a12c0a2da4- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | cdb58372-2440-4e07-bcc4-739e0aba461f- | gene- | tail tip assembly protein K- | 14261..14875- | 14261- | 14875- | +- | 199- | GGAGG- | 10- | ATG- | TGA- | 133- | 11a10b01-003c-4900-aae9-46139ae23652- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 8a865779-0ec1-43bd-a34a-ab74912cf03a- | gene- | tail tip assembly protein I- | 14758..15444- | 14758- | 15444- | +- | 223- | GAGGT- | 10- | ATG- | TGA- | -118- | cdb58372-2440-4e07-bcc4-739e0aba461f- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | af1a2402-fb19-4abe-9a0b-b3e9dc613524- | gene- | tip attachment protein J- | 15493..18903- | 15493- | 18903- | +- | 1132- | GGAG- | 8- | ATG- | TGA- | 48- | 8a865779-0ec1-43bd-a34a-ab74912cf03a- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 118de905-477c-4bf5-bb2d-1f5b336820bb- | gene- | outer membrane protein lom- | 18955..19585- | 18955- | 19585- | +- | 206- | GAGGT- | 5- | ATG- | TGA- | 51- | af1a2402-fb19-4abe-9a0b-b3e9dc613524- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | e7267f7d-4717-4e28-a1a0-564b10661248- | gene- | tail fiber protein stf- | 19641..20855- | 19641- | 20855- | +- | 401- | GGGG- | 5- | ATG- | TGA- | 55- | 118de905-477c-4bf5-bb2d-1f5b336820bb- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 9ffb2fcd-96b9-4606-8d3c-c1be0cf0fc5b- | gene- | tail fiber protein stf- | 20852..21973- | 20852- | 21973- | +- | 373- | None- | None- | CTG- | TAA- | -4- | e7267f7d-4717-4e28-a1a0-564b10661248- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 8f5752d0-2f43-4b81-94a6-e2bcf0119d63- | gene- | tail fiber assembly protein tfa- | 21961..22557- | 21961- | 22557- | +- | 194- | GAGG- | 8- | ATG- | TAA- | -13- | 9ffb2fcd-96b9-4606-8d3c-c1be0cf0fc5b- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 89aa3485-6819-4bee-a970-3661cfed1c7a- | gene- | protein ea47- | 22686..23928- | 22686- | 23928- | -- | 410- | GGAG- | 6- | ATG- | TGA- | 166- | f04bb9e0-6bb0-48d2-8ac8-8c5eb517d555- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | f04bb9e0-6bb0-48d2-8ac8-8c5eb517d555- | gene- | hypothetical protein- | 24095..24298- | 24095- | 24298- | -- | 63- | GGT- | 9- | GTG- | TAA- | 210- | a638e771-ca1f-4058-93a6-b9bddffd0bf8- | jolenerr@tamu.edu- | 2020-05-13- | 2020-10-08- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | a638e771-ca1f-4058-93a6-b9bddffd0bf8- | gene- | HNH endonuclease ea31- | 24509..25411- | 24509- | 25411- | -- | 296- | AGGT- | 8- | ATG- | TAG- | -16- | 27a0e836-ee65-4d75-9d88-2d63b4a28b93- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 27a0e836-ee65-4d75-9d88-2d63b4a28b93- | gene- | nuclease ea59- | 25396..26983- | 25396- | 26983- | -- | 525- | GGGT- | 6- | ATG- | TGA- | 460- | ae844fd4-9b05-485e-a49a-61b6ec9f291a- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | PMID 8052130- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | ae844fd4-9b05-485e-a49a-61b6ec9f291a- | gene- | CDS.0.4499_0.266127908605- | 27444..27569- | 27444- | 27569- | -- | 38- | AGGT- | 5- | TTG- | TAA- | 242- | e5536357-eca7-4860-9cc2-daa21051df98- | jolenerr@tamu.edu- | 2020-05-27- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | e5536357-eca7-4860-9cc2-daa21051df98- | gene- | integrase int- | 27812..28893- | 27812- | 28893- | -- | 356- | GAGG- | 7- | ATG- | TAA- | -34- | 016016bc-f3b9-4c48-982e-b463960d3a59- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 016016bc-f3b9-4c48-982e-b463960d3a59- | gene- | excisionase Xis- | 28860..29090- | 28860- | 29090- | -- | 72- | GGAG- | 8- | ATG- | TGA- | 27- | e15c9216-cdbd-4539-879b-9ab30db54d25- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | e15c9216-cdbd-4539-879b-9ab30db54d25- | gene- | hypothetical protein- | 29118..29296- | 29118- | 29296- | -- | 55- | GGAG- | 7- | ATG- | TGA- | 77- | 375742bf-c4c9-46e2-b49c-3db72351ae5d- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 375742bf-c4c9-46e2-b49c-3db72351ae5d- | gene- | protein ea8.5- | 29374..29667- | 29374- | 29667- | -- | 93- | AGGAG- | 7- | ATG- | TAA- | 179- | c3708fda-012f-40ac-91d0-96ce2b9bc845- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | Contains CATH G3DSA:1.10.10.1920 with putative hydrolase domain- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | c3708fda-012f-40ac-91d0-96ce2b9bc845- | gene- | protein ea22- | 29847..30405- | 29847- | 30405- | -- | 182- | GAGGT- | 5- | GTG- | TGA- | -14- | 4fba3f9c-cbc0-4454-b278-efe088695fef- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 4fba3f9c-cbc0-4454-b278-efe088695fef- | gene- | DksA/TraR C4-type zinc finger domain-containing protein- | 30392..30626- | 30392- | 30626- | -- | 73- | GGA- | 10- | ATG- | TGA- | 85- | 3302e865-ca96-48ab-a043-66d0b2d464a9- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | Contains InterPro domain IPR000962- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 3302e865-ca96-48ab-a043-66d0b2d464a9- | gene- | hypothetical membrane protein- | 30712..30894- | 30712- | 30894- | -- | 60- | None- | None- | TTG- | TGA- | -56- | 4a0ceaca-089f-42a3-9185-c5e89f11b935- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 4a0ceaca-089f-42a3-9185-c5e89f11b935- | gene- | hypothetical protein orf61- | 30839..31024- | 30839- | 31024- | -- | 51- | GGT- | 14- | ATG- | TAA- | -20- | 97f8a88b-c50d-4710-9ae1-a8dad5ccc83f- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 97f8a88b-c50d-4710-9ae1-a8dad5ccc83f- | gene- | hypothetical protein- | 31005..31206- | 31005- | 31206- | -- | 63- | GAGG- | 6- | ATG- | TGA- | -38- | 2cc7e0fe-b058-4773-ab3d-e94e32ff3c69- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | Contains InterPro domain IPR009814 with DUF1382- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 2cc7e0fe-b058-4773-ab3d-e94e32ff3c69- | gene- | hypothetical protein- | 31169..31365- | 31169- | 31365- | -- | 62- | GGG- | 5- | ATG- | TAA- | -18- | 645d965c-2694-421e-8b95-d800a857c890- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | Contains InterPro domain IPR009750 DUF1317- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 645d965c-2694-421e-8b95-d800a857c890- | gene- | exonuclease exo- | 31348..32038- | 31348- | 32038- | -- | 226- | AGGT- | 6- | ATG- | TGA- | -14- | cd896736-3fb2-4826-b8db-d3966b3b8606- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | cd896736-3fb2-4826-b8db-d3966b3b8606- | gene- | recombination protein bet- | 32025..32824- | 32025- | 32824- | -- | 261- | GAGGT- | 9- | ATG- | TGA- | -9- | 411ff345-0c28-4335-a864-560ee4fc66c6- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 411ff345-0c28-4335-a864-560ee4fc66c6- | gene- | host-nuclease inhibitor protein gam- | 32816..33124- | 32816- | 33124- | -- | 98- | AGGAG- | 7- | ATG- | TAA- | 62- | dedaa85a-5d65-4faf-a809-97c9a0ca52a8- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | dedaa85a-5d65-4faf-a809-97c9a0ca52a8- | gene- | host-killing protein kil- | 33187..33344- | 33187- | 33344- | -- | 47- | AGGAG- | 9- | ATG- | TAA- | -46- | 00bbe7b0-4092-4355-ba1e-7204fd13953f- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 00bbe7b0-4092-4355-ba1e-7204fd13953f- | gene- | protease inhibitor cIII- | 33299..33474- | 33299- | 33474- | -- | 54- | AGGAG- | 6- | ATG- | TAA- | 61- | ac07bd3f-9aff-48b0-a2ec-73ce870dbd62- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | ac07bd3f-9aff-48b0-a2ec-73ce870dbd62- | gene- | single-stranded DNA binding protein ea10- | 33536..33918- | 33536- | 33918- | -- | 122- | GAGG- | 10- | ATG- | TGA- | 168- | 2a518c27-1014-4987-8c6d-c77d9bd51018- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 2a518c27-1014-4987-8c6d-c77d9bd51018- | gene- | restriction alleviation protein ral- | 34087..34299- | 34087- | 34299- | -- | 66- | AGGA- | 8- | ATG- | TGA- | -29- | 819736c3-ac94-47f2-abdc-f6193a12b404- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 819736c3-ac94-47f2-abdc-f6193a12b404- | gene- | orf28- | 34271..34357- | 34271- | 34357- | -- | 28- | None- | None- | ATG- | TGA- | 679- | b8e42f64-15ef-4fb6-b491-5f68bc0bfecd- | jolenerr@tamu.edu- | 2020-05-27- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 3bd258c3-0580-4bbd-9cbe-4c847adc452e- | gene- | CDS.0.1464_0.0965447626014- | 34417..34534- | 34417- | 34534- | +- | 33- | AGG- | 13- | GTG- | TAA- | 11859- | 8f5752d0-2f43-4b81-94a6-e2bcf0119d63- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 8ce03ed0-ef00-4c52-a0a9-2b2a86bca875- | gene- | superinfection exclusion protein B- | 34487..35036- | 34487- | 35036- | +- | 160- | GGAG- | 6- | ATG- | TAA- | -48- | 3bd258c3-0580-4bbd-9cbe-4c847adc452e- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | b8e42f64-15ef-4fb6-b491-5f68bc0bfecd- | gene- | antitermination protein N- | 35037..35451- | 35037- | 35451- | -- | 133- | GGA- | 10- | ATG- | TAG- | 373- | 79c4329a-2551-40cf-85bc-ec2ee1425459- | jason.gill@tamu.edu- | 2019-02-07- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 79c4329a-2551-40cf-85bc-ec2ee1425459- | gene- | exclusion protein rexB- | 35825..36269- | 35825- | 36269- | -- | 144- | AGGAG- | 5- | ATG- | TAA- | 5- | 83e81e47-1e39-4cbf-a67d-57e808d97412- | jason.gill@tamu.edu- | 2019-02-07- | 2020-05-27- | added by JJG- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 83e81e47-1e39-4cbf-a67d-57e808d97412- | gene- | exclusion protein rexA- | 36275..37124- | 36275- | 37124- | -- | 279- | GGA- | 7- | ATG- | TAA- | 102- | a7d2cdab-7fda-4061-8472-1764694f0cd2- | jason.gill@tamu.edu- | 2019-02-07- | 2020-05-27- | added by JJG- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | a7d2cdab-7fda-4061-8472-1764694f0cd2- | gene- | repressor protein cI- | 37227..37957- | 37227- | 37957- | -- | 237- | GGT- | 14- | ATG- | TGA- | 8501- | 6eedd5c5-3c44-404a-af31-acee26522035- | jason.gill@tamu.edu- | 2019-02-07- | 2020-05-27- | added by JJG- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | d731b2bf-e9f9-484f-8851-814510c6a5ec- | gene- | regulatory protein cro- | 38031..38241- | 38031- | 38241- | +- | 66- | AGGAG- | 5- | ATG- | TAA- | 2994- | 8ce03ed0-ef00-4c52-a0a9-2b2a86bca875- | jason.gill@tamu.edu- | 2019-02-07- | 2020-05-27- | added by JJG- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 1b331cf3-0897-4489-aa55-b14669ea5998- | gene- | regulatory protein cII- | 38345..38653- | 38345- | 38653- | +- | 97- | AGGA- | 11- | ATG- | TGA- | 103- | d731b2bf-e9f9-484f-8851-814510c6a5ec- | jason.gill@tamu.edu- | 2019-02-07- | 2020-05-27- | added by JJG- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 3e912c73-4cba-4590-8d03-357bbef2da31- | gene- | DNA replication protein O- | 38676..39585- | 38676- | 39585- | +- | 299- | AGGAG- | 5- | ATG- | TGA- | 22- | 1b331cf3-0897-4489-aa55-b14669ea5998- | jason.gill@tamu.edu- | 2019-02-07- | 2020-05-27- | added by JJG- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 07f1dc2a-8b99-4403-b2a1-6f6b1a97a8bf- | gene- | DNA replication protein P- | 39572..40283- | 39572- | 40283- | +- | 233- | GGGT- | 6- | ATG- | TGA- | -14- | 3e912c73-4cba-4590-8d03-357bbef2da31- | jason.gill@tamu.edu- | 2019-02-07- | 2020-05-27- | added by JJG- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | a15b44d2-c0d8-4c0b-9837-2c3c986b6ff4- | gene- | ren exclusion protein- | 40268..40570- | 40268- | 40570- | +- | 96- | AGGAG- | 7- | ATG- | TGA- | -16- | 07f1dc2a-8b99-4403-b2a1-6f6b1a97a8bf- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | ef111958-2be7-4828-8442-c2c376692e6b- | gene- | NC_001416.1_phage_lambda.gene_49- | 40628..41084- | 40628- | 41084- | +- | 146- | GGGGG- | 11- | ATG- | TGA- | 57- | a15b44d2-c0d8-4c0b-9837-2c3c986b6ff4- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | ccb0da66-e8f2-46c6-b6ce-f3d2fcbdea5e- | gene- | NC_001416.1_phage_lambda.orf00086- | 41048..41953- | 41048- | 41953- | +- | 296- | GGAG- | 11- | ATG- | TGA- | -37- | ef111958-2be7-4828-8442-c2c376692e6b- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | c402b694-7971-451b-aa24-4e70550eef2d- | gene- | NinD- | 41950..42123- | 41950- | 42123- | +- | 57- | None- | None- | ATG- | TAA- | -4- | ccb0da66-e8f2-46c6-b6ce-f3d2fcbdea5e- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 61a0d8bd-5b58-4077-bc04-2bcf4dee8939- | gene- | CDS.0.2486_0.0832002363577- | 42080..42272- | 42080- | 42272- | +- | 60- | AGGAG- | 5- | GTG- | TGA- | -44- | c402b694-7971-451b-aa24-4e70550eef2d- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 49135134-fa86-4df5-a0d7-b629ff152305- | gene- | CDS.0.1596_0.0419290277112- | 42230..42439- | 42230- | 42439- | +- | 66- | GGA- | 6- | GTG- | TAA- | -43- | 61a0d8bd-5b58-4077-bc04-2bcf4dee8939- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | a8c3d9d2-cc66-4394-a821-ec0db2e411de- | gene- | NC_001416.1_phage_lambda.gene_51- | 42419..43043- | 42419- | 43043- | +- | 204- | GAGG- | 6- | ATG- | TGA- | -21- | 49135134-fa86-4df5-a0d7-b629ff152305- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 0cea2875-2757-4c9b-97f5-7b0ec545394a- | gene- | NC_001416.1_phage_lambda.gene_52- | 43032..43246- | 43032- | 43246- | +- | 68- | GAG- | 5- | ATG- | TGA- | -12- | a8c3d9d2-cc66-4394-a821-ec0db2e411de- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 8ce6427a-594a-4320-955b-be6dd71ab223- | gene- | NC_001416.1_phage_lambda.gene_53- | 43135..43889- | 43135- | 43889- | +- | 221- | GGAG- | 8- | ATG- | TGA- | -112- | 0cea2875-2757-4c9b-97f5-7b0ec545394a- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 1653554c-4be1-453b-a377-86e20759321a- | gene- | late gene regulator- | 43875..44509- | 43875- | 44509- | +- | 207- | GGAG- | 7- | ATG- | TAG- | -15- | 8ce6427a-594a-4320-955b-be6dd71ab223- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-27- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 6c3ab9c5-a407-47b8-89df-fa997262a409- | gene- | CDS.0.1630_0.132755174165- | 44612..44815- | 44612- | 44815- | +- | 64- | GGT- | 6- | ATG- | TAA- | 102- | 1653554c-4be1-453b-a377-86e20759321a- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 94064736-88a6-4e82-8c89-8226f57526e8- | gene- | antiholin S107- | 45175..45509- | 45175- | 45509- | +- | 213- | - | - | -ATG (45185..45509:1), ATG (45191..45509:1)
 | TAA- | 359- | 6c3ab9c5-a407-47b8-89df-fa997262a409- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | f8ba23df-ca21-4307-8f5a-ef8243f01acc- | gene- | endolysin R- | 45483..45969- | 45483- | 45969- | +- | 158- | GGAG- | 6- | ATG- | TGA- | -27- | 94064736-88a6-4e82-8c89-8226f57526e8- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 4795342c-7959-44d9-925a-781f17371e7a- | gene- | i-spanin Rz- | 45953..46427- | 45953- | 46427- | +- | 153- | GAG- | 10- | ATG- | TAG- | -17- | f8ba23df-ca21-4307-8f5a-ef8243f01acc- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 18e578e1-38cb-4846-96e8-0190a5a26369- | gene- | o-spanin Rz1- | 46174..46368- | 46174- | 46368- | +- | 60- | AGGAG- | 7- | ATG- | TGA- | -254- | 4795342c-7959-44d9-925a-781f17371e7a- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 6eedd5c5-3c44-404a-af31-acee26522035- | gene- | bor- | 46459..46763- | 46459- | 46763- | -- | 97- | GGA- | 8- | ATG- | TAA- | 132- | 2da1b434-7877-4aa2-b88b-24922f70988b- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 2da1b434-7877-4aa2-b88b-24922f70988b- | gene- | CDS.0.3497_0.36888415839- | 46896..47029- | 46896- | 47029- | -- | 32- | GGGG- | 10- | ATG- | TAA- | 12- | 5d4e2403-4389-497c-a220-9740cd9935cc- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 5d4e2403-4389-497c-a220-9740cd9935cc- | gene- | CDS.0.2625_0.768191840841- | 47042..47463- | 47042- | 47463- | -- | 136- | AGGT- | 7- | ATG- | TAA- | 645- | e0b009e4-729e-4d97-b818-ec0cbebcb1f4- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | 752f31a0-018a-4223-a7f9-72685604b7a3- | gene- | CDS.0.864_0.667986446525- | 47518..47652- | 47518- | 47652- | +- | 40- | GGT- | 9- | TTG- | TAA- | 1149- | 18e578e1-38cb-4846-96e8-0190a5a26369- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | e3d29177-18a8-4bc0-8d91-15e5760f3bd3- | gene- | NC_001416.1_phage_lambda.gene_60- | 47727..47944- | 47727- | 47944- | +- | 68- | GGAG- | 7- | ATG- | TGA- | 74- | 752f31a0-018a-4223-a7f9-72685604b7a3- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                                    
-                                    | NC_001416-1_phage_lambda- | e0b009e4-729e-4d97-b818-ec0cbebcb1f4- | gene- | NC_001416.1_phage_lambda.orf00102- | 48109..48314- | 48109- | 48314- | -- | 64- | GGGG- | 7- | ATG- | TGA- | None- | None- | jolenerr@tamu.edu- | 2020-05-13- | 2020-05-13- | None- | None- | None- | None- | 
-                            
-                        
-                    
-            
-        
-      
-    
+      
+        
+            
+
+            
+            
+                
+                    Data on each organism will be accessible from the tabs above.
+                
+                {% for (record, data) in annotation_table_data %}
+                    
+                        
+                            
+                                
+                                {% for col in annotation_table_col_names %}
+                                    | {{ col[0] }}+                                {% endfor %}
+ | 
+                            
+                            
+                                {% for row in data %}
+                                    
+                                    {% for col in row %}
+                                    | {% if col is not string %} +                                    {% endfor %}
+{% for val in col %}{% else %}{{ col }}{% endif %}{{ val }}{% endfor %} | 
+                                {% endfor %}
+                            
+                        
+                    
+                {% endfor %}
+            
+        
+      
+    
+      
+        
+            
+
+            
+            
+                
+                    Data on each organism will be accessible from the tabs above.
+                
+                    
+                        
+                            
+                                
+                                    | Organism ID+ | ID+ | Type+ | Name+ | Location+ | Boundary+ | Boundary+ | Strand+ | CDS Length (AA)+ | Shine-Dalgarno sequence+ | Shine-Dalgarno spacing+ | Start Codon+ | Stop Codon+ | Distance to next upstream gene on same strand+ | Next gene upstream+ | Owner+ | Created+ | Last Modified+ | User entered Notes+ | Description+ | Product+ | DBxrefs+ | 
+                            
+                            
+                                    
+                                    | NC_001416-1_phage_lambda+ | 1185c0aa-14c4-45c3-ab0d-889bbfdbf137+ | gene+ | terminase small subunit+ | 181..736+ | 181+ | 736+ | ++ | 181+ | GGA+ | 7+ | ATG+ | TAA+ | None+ | None+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 6d452f5a-9508-40c1-9d43-d98831ca8919+ | gene+ | terminase large subunit+ | 701..2636+ | 701+ | 2636+ | ++ | 641+ | GGGT+ | 6+ | GTG+ | TGA+ | -36+ | 1185c0aa-14c4-45c3-ab0d-889bbfdbf137+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 38175e36-b9e9-48ea-9d1c-7f115fae7194+ | gene+ | head completion protein+ | 2622..2839+ | 2622+ | 2839+ | ++ | 68+ | GGAG+ | 7+ | ATG+ | TGA+ | -15+ | 6d452f5a-9508-40c1-9d43-d98831ca8919+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-28+ | InterPro domain IPR004174+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 0695da41-cce8-4f07-a27a-eb42ac82ae56+ | gene+ | portal protein B+ | 2824..4437+ | 2824+ | 4437+ | ++ | 533+ | AGGA+ | 8+ | ATG+ | TAA+ | -16+ | 38175e36-b9e9-48ea-9d1c-7f115fae7194+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 422aab41-ac49-4818-b87e-9331023dcacf+ | gene+ | capsid assembly protein+ | 4406..5737+ | 4406+ | 5737+ | ++ | 673+ | + | + | +GTG (4417..5737:1), GTG (5035..5737:1)
 | TAA+ | -32+ | 0695da41-cce8-4f07-a27a-eb42ac82ae56+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 274304d3-079e-4e08-aa11-219235e1aacb+ | gene+ | capsid decoration protein+ | 5739..6079+ | 5739+ | 6079+ | ++ | 110+ | GGA+ | 5+ | ATG+ | TAA+ | 1+ | 422aab41-ac49-4818-b87e-9331023dcacf+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-28+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 4f815f9e-5092-4db3-b722-0d912c116293+ | gene+ | major capsid protein+ | 6099..7160+ | 6099+ | 7160+ | ++ | 350+ | AGG+ | 6+ | GTG+ | TAA+ | 19+ | 274304d3-079e-4e08-aa11-219235e1aacb+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 4da662d1-028a-43e2-9b50-f48ad03bdd64+ | gene+ | DNA packaging protein FI+ | 7173..7600+ | 7173+ | 7600+ | ++ | 136+ | GGGG+ | 13+ | GTG+ | TAA+ | 12+ | 4f815f9e-5092-4db3-b722-0d912c116293+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 638d1ac5-aea4-4988-b46d-01cf79793dfb+ | gene+ | head-tail connector protein FII+ | 7603..7965+ | 7603+ | 7965+ | ++ | 117+ | GGAG+ | 5+ | GTG+ | TGA+ | 2+ | 4da662d1-028a-43e2-9b50-f48ad03bdd64+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | b541056e-bf91-4113-bce7-86bab4d27f76+ | gene+ | tail completion protein Z+ | 7968..8555+ | 7968+ | 8555+ | ++ | 192+ | GGGG+ | 5+ | ATG+ | TGA+ | 2+ | 638d1ac5-aea4-4988-b46d-01cf79793dfb+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | fca8745c-c433-4845-9430-c8a9dd4dc37b+ | gene+ | tail tube terminator protein U+ | 8535..8947+ | 8535+ | 8947+ | ++ | 131+ | AGGA+ | 13+ | ATG+ | TGA+ | -21+ | b541056e-bf91-4113-bce7-86bab4d27f76+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | d9ee7b0e-b4a7-48cf-8c4b-aa95ca8863e0+ | gene+ | tail tube protein V+ | 8946..9695+ | 8946+ | 9695+ | ++ | 246+ | GAGG+ | 5+ | ATG+ | TAA+ | -2+ | fca8745c-c433-4845-9430-c8a9dd4dc37b+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 0b5a859a-39f6-4c49-91b7-0b2def466374+ | gene+ | tape measure chaperone GT+ | 9699..10133+ | 9699+ | 10133+ | ++ | 275+ | + | + | +ATG (9710..10133:1), ATG (9710..10115:1)
 | TGA+ | 3+ | d9ee7b0e-b4a7-48cf-8c4b-aa95ca8863e0+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | c6a11d3b-7b9d-446f-ba16-3a642f3f6fbd+ | gene+ | tape measure chaperone GT+ | 10115..10549+ | 10115+ | 10549+ | ++ | 144+ | None+ | None+ | GTG+ | TGA+ | -19+ | 0b5a859a-39f6-4c49-91b7-0b2def466374+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 7ef9ffad-d420-4a1c-9a8d-2312dc04b558+ | gene+ | tape measure protein H+ | 10528..13103+ | 10528+ | 13103+ | ++ | 853+ | AGGAGG+ | 8+ | ATG+ | TGA+ | -22+ | c6a11d3b-7b9d-446f-ba16-3a642f3f6fbd+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 55fe46da-9e0e-4454-aff9-f9a12c0a2da4+ | gene+ | tail tip protein M+ | 13089..13429+ | 13089+ | 13429+ | ++ | 109+ | GGAGGT+ | 5+ | ATG+ | TGA+ | -15+ | 7ef9ffad-d420-4a1c-9a8d-2312dc04b558+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 11a10b01-003c-4900-aae9-46139ae23652+ | gene+ | tail tip protein L+ | 13416..14127+ | 13416+ | 14127+ | ++ | 232+ | AGGT+ | 9+ | ATG+ | TAA+ | -14+ | 55fe46da-9e0e-4454-aff9-f9a12c0a2da4+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | cdb58372-2440-4e07-bcc4-739e0aba461f+ | gene+ | tail tip assembly protein K+ | 14261..14875+ | 14261+ | 14875+ | ++ | 199+ | GGAGG+ | 10+ | ATG+ | TGA+ | 133+ | 11a10b01-003c-4900-aae9-46139ae23652+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 8a865779-0ec1-43bd-a34a-ab74912cf03a+ | gene+ | tail tip assembly protein I+ | 14758..15444+ | 14758+ | 15444+ | ++ | 223+ | GAGGT+ | 10+ | ATG+ | TGA+ | -118+ | cdb58372-2440-4e07-bcc4-739e0aba461f+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | af1a2402-fb19-4abe-9a0b-b3e9dc613524+ | gene+ | tip attachment protein J+ | 15493..18903+ | 15493+ | 18903+ | ++ | 1132+ | GGAG+ | 8+ | ATG+ | TGA+ | 48+ | 8a865779-0ec1-43bd-a34a-ab74912cf03a+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 118de905-477c-4bf5-bb2d-1f5b336820bb+ | gene+ | outer membrane protein lom+ | 18955..19585+ | 18955+ | 19585+ | ++ | 206+ | GAGGT+ | 5+ | ATG+ | TGA+ | 51+ | af1a2402-fb19-4abe-9a0b-b3e9dc613524+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | e7267f7d-4717-4e28-a1a0-564b10661248+ | gene+ | tail fiber protein stf+ | 19641..20855+ | 19641+ | 20855+ | ++ | 401+ | GGGG+ | 5+ | ATG+ | TGA+ | 55+ | 118de905-477c-4bf5-bb2d-1f5b336820bb+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 9ffb2fcd-96b9-4606-8d3c-c1be0cf0fc5b+ | gene+ | tail fiber protein stf+ | 20852..21973+ | 20852+ | 21973+ | ++ | 373+ | None+ | None+ | CTG+ | TAA+ | -4+ | e7267f7d-4717-4e28-a1a0-564b10661248+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 8f5752d0-2f43-4b81-94a6-e2bcf0119d63+ | gene+ | tail fiber assembly protein tfa+ | 21961..22557+ | 21961+ | 22557+ | ++ | 194+ | GAGG+ | 8+ | ATG+ | TAA+ | -13+ | 9ffb2fcd-96b9-4606-8d3c-c1be0cf0fc5b+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 89aa3485-6819-4bee-a970-3661cfed1c7a+ | gene+ | protein ea47+ | 22686..23928+ | 22686+ | 23928+ | -+ | 410+ | GGAG+ | 6+ | ATG+ | TGA+ | 166+ | f04bb9e0-6bb0-48d2-8ac8-8c5eb517d555+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | f04bb9e0-6bb0-48d2-8ac8-8c5eb517d555+ | gene+ | hypothetical protein+ | 24095..24298+ | 24095+ | 24298+ | -+ | 63+ | GGT+ | 9+ | GTG+ | TAA+ | 210+ | a638e771-ca1f-4058-93a6-b9bddffd0bf8+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-10-08+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | a638e771-ca1f-4058-93a6-b9bddffd0bf8+ | gene+ | HNH endonuclease ea31+ | 24509..25411+ | 24509+ | 25411+ | -+ | 296+ | AGGT+ | 8+ | ATG+ | TAG+ | -16+ | 27a0e836-ee65-4d75-9d88-2d63b4a28b93+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 27a0e836-ee65-4d75-9d88-2d63b4a28b93+ | gene+ | nuclease ea59+ | 25396..26983+ | 25396+ | 26983+ | -+ | 525+ | GGGT+ | 6+ | ATG+ | TGA+ | 460+ | ae844fd4-9b05-485e-a49a-61b6ec9f291a+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | PMID 8052130+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | ae844fd4-9b05-485e-a49a-61b6ec9f291a+ | gene+ | CDS.0.4499_0.266127908605+ | 27444..27569+ | 27444+ | 27569+ | -+ | 38+ | AGGT+ | 5+ | TTG+ | TAA+ | 242+ | e5536357-eca7-4860-9cc2-daa21051df98+ | jolenerr@tamu.edu+ | 2020-05-27+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | e5536357-eca7-4860-9cc2-daa21051df98+ | gene+ | integrase int+ | 27812..28893+ | 27812+ | 28893+ | -+ | 356+ | GAGG+ | 7+ | ATG+ | TAA+ | -34+ | 016016bc-f3b9-4c48-982e-b463960d3a59+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 016016bc-f3b9-4c48-982e-b463960d3a59+ | gene+ | excisionase Xis+ | 28860..29090+ | 28860+ | 29090+ | -+ | 72+ | GGAG+ | 8+ | ATG+ | TGA+ | 27+ | e15c9216-cdbd-4539-879b-9ab30db54d25+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | e15c9216-cdbd-4539-879b-9ab30db54d25+ | gene+ | hypothetical protein+ | 29118..29296+ | 29118+ | 29296+ | -+ | 55+ | GGAG+ | 7+ | ATG+ | TGA+ | 77+ | 375742bf-c4c9-46e2-b49c-3db72351ae5d+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 375742bf-c4c9-46e2-b49c-3db72351ae5d+ | gene+ | protein ea8.5+ | 29374..29667+ | 29374+ | 29667+ | -+ | 93+ | AGGAG+ | 7+ | ATG+ | TAA+ | 179+ | c3708fda-012f-40ac-91d0-96ce2b9bc845+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | Contains CATH G3DSA:1.10.10.1920 with putative hydrolase domain+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | c3708fda-012f-40ac-91d0-96ce2b9bc845+ | gene+ | protein ea22+ | 29847..30405+ | 29847+ | 30405+ | -+ | 182+ | GAGGT+ | 5+ | GTG+ | TGA+ | -14+ | 4fba3f9c-cbc0-4454-b278-efe088695fef+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 4fba3f9c-cbc0-4454-b278-efe088695fef+ | gene+ | DksA/TraR C4-type zinc finger domain-containing protein+ | 30392..30626+ | 30392+ | 30626+ | -+ | 73+ | GGA+ | 10+ | ATG+ | TGA+ | 85+ | 3302e865-ca96-48ab-a043-66d0b2d464a9+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | Contains InterPro domain IPR000962+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 3302e865-ca96-48ab-a043-66d0b2d464a9+ | gene+ | hypothetical membrane protein+ | 30712..30894+ | 30712+ | 30894+ | -+ | 60+ | None+ | None+ | TTG+ | TGA+ | -56+ | 4a0ceaca-089f-42a3-9185-c5e89f11b935+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 4a0ceaca-089f-42a3-9185-c5e89f11b935+ | gene+ | hypothetical protein orf61+ | 30839..31024+ | 30839+ | 31024+ | -+ | 51+ | GGT+ | 14+ | ATG+ | TAA+ | -20+ | 97f8a88b-c50d-4710-9ae1-a8dad5ccc83f+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 97f8a88b-c50d-4710-9ae1-a8dad5ccc83f+ | gene+ | hypothetical protein+ | 31005..31206+ | 31005+ | 31206+ | -+ | 63+ | GAGG+ | 6+ | ATG+ | TGA+ | -38+ | 2cc7e0fe-b058-4773-ab3d-e94e32ff3c69+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | Contains InterPro domain IPR009814 with DUF1382+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 2cc7e0fe-b058-4773-ab3d-e94e32ff3c69+ | gene+ | hypothetical protein+ | 31169..31365+ | 31169+ | 31365+ | -+ | 62+ | GGG+ | 5+ | ATG+ | TAA+ | -18+ | 645d965c-2694-421e-8b95-d800a857c890+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | Contains InterPro domain IPR009750 DUF1317+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 645d965c-2694-421e-8b95-d800a857c890+ | gene+ | exonuclease exo+ | 31348..32038+ | 31348+ | 32038+ | -+ | 226+ | AGGT+ | 6+ | ATG+ | TGA+ | -14+ | cd896736-3fb2-4826-b8db-d3966b3b8606+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | cd896736-3fb2-4826-b8db-d3966b3b8606+ | gene+ | recombination protein bet+ | 32025..32824+ | 32025+ | 32824+ | -+ | 261+ | GAGGT+ | 9+ | ATG+ | TGA+ | -9+ | 411ff345-0c28-4335-a864-560ee4fc66c6+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 411ff345-0c28-4335-a864-560ee4fc66c6+ | gene+ | host-nuclease inhibitor protein gam+ | 32816..33124+ | 32816+ | 33124+ | -+ | 98+ | AGGAG+ | 7+ | ATG+ | TAA+ | 62+ | dedaa85a-5d65-4faf-a809-97c9a0ca52a8+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | dedaa85a-5d65-4faf-a809-97c9a0ca52a8+ | gene+ | host-killing protein kil+ | 33187..33344+ | 33187+ | 33344+ | -+ | 47+ | AGGAG+ | 9+ | ATG+ | TAA+ | -46+ | 00bbe7b0-4092-4355-ba1e-7204fd13953f+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 00bbe7b0-4092-4355-ba1e-7204fd13953f+ | gene+ | protease inhibitor cIII+ | 33299..33474+ | 33299+ | 33474+ | -+ | 54+ | AGGAG+ | 6+ | ATG+ | TAA+ | 61+ | ac07bd3f-9aff-48b0-a2ec-73ce870dbd62+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | ac07bd3f-9aff-48b0-a2ec-73ce870dbd62+ | gene+ | single-stranded DNA binding protein ea10+ | 33536..33918+ | 33536+ | 33918+ | -+ | 122+ | GAGG+ | 10+ | ATG+ | TGA+ | 168+ | 2a518c27-1014-4987-8c6d-c77d9bd51018+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 2a518c27-1014-4987-8c6d-c77d9bd51018+ | gene+ | restriction alleviation protein ral+ | 34087..34299+ | 34087+ | 34299+ | -+ | 66+ | AGGA+ | 8+ | ATG+ | TGA+ | -29+ | 819736c3-ac94-47f2-abdc-f6193a12b404+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 819736c3-ac94-47f2-abdc-f6193a12b404+ | gene+ | orf28+ | 34271..34357+ | 34271+ | 34357+ | -+ | 28+ | None+ | None+ | ATG+ | TGA+ | 679+ | b8e42f64-15ef-4fb6-b491-5f68bc0bfecd+ | jolenerr@tamu.edu+ | 2020-05-27+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 3bd258c3-0580-4bbd-9cbe-4c847adc452e+ | gene+ | CDS.0.1464_0.0965447626014+ | 34417..34534+ | 34417+ | 34534+ | ++ | 33+ | AGG+ | 13+ | GTG+ | TAA+ | 11859+ | 8f5752d0-2f43-4b81-94a6-e2bcf0119d63+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 8ce03ed0-ef00-4c52-a0a9-2b2a86bca875+ | gene+ | superinfection exclusion protein B+ | 34487..35036+ | 34487+ | 35036+ | ++ | 160+ | GGAG+ | 6+ | ATG+ | TAA+ | -48+ | 3bd258c3-0580-4bbd-9cbe-4c847adc452e+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | b8e42f64-15ef-4fb6-b491-5f68bc0bfecd+ | gene+ | antitermination protein N+ | 35037..35451+ | 35037+ | 35451+ | -+ | 133+ | GGA+ | 10+ | ATG+ | TAG+ | 373+ | 79c4329a-2551-40cf-85bc-ec2ee1425459+ | jason.gill@tamu.edu+ | 2019-02-07+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 79c4329a-2551-40cf-85bc-ec2ee1425459+ | gene+ | exclusion protein rexB+ | 35825..36269+ | 35825+ | 36269+ | -+ | 144+ | AGGAG+ | 5+ | ATG+ | TAA+ | 5+ | 83e81e47-1e39-4cbf-a67d-57e808d97412+ | jason.gill@tamu.edu+ | 2019-02-07+ | 2020-05-27+ | added by JJG+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 83e81e47-1e39-4cbf-a67d-57e808d97412+ | gene+ | exclusion protein rexA+ | 36275..37124+ | 36275+ | 37124+ | -+ | 279+ | GGA+ | 7+ | ATG+ | TAA+ | 102+ | a7d2cdab-7fda-4061-8472-1764694f0cd2+ | jason.gill@tamu.edu+ | 2019-02-07+ | 2020-05-27+ | added by JJG+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | a7d2cdab-7fda-4061-8472-1764694f0cd2+ | gene+ | repressor protein cI+ | 37227..37957+ | 37227+ | 37957+ | -+ | 237+ | GGT+ | 14+ | ATG+ | TGA+ | 8501+ | 6eedd5c5-3c44-404a-af31-acee26522035+ | jason.gill@tamu.edu+ | 2019-02-07+ | 2020-05-27+ | added by JJG+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | d731b2bf-e9f9-484f-8851-814510c6a5ec+ | gene+ | regulatory protein cro+ | 38031..38241+ | 38031+ | 38241+ | ++ | 66+ | AGGAG+ | 5+ | ATG+ | TAA+ | 2994+ | 8ce03ed0-ef00-4c52-a0a9-2b2a86bca875+ | jason.gill@tamu.edu+ | 2019-02-07+ | 2020-05-27+ | added by JJG+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 1b331cf3-0897-4489-aa55-b14669ea5998+ | gene+ | regulatory protein cII+ | 38345..38653+ | 38345+ | 38653+ | ++ | 97+ | AGGA+ | 11+ | ATG+ | TGA+ | 103+ | d731b2bf-e9f9-484f-8851-814510c6a5ec+ | jason.gill@tamu.edu+ | 2019-02-07+ | 2020-05-27+ | added by JJG+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 3e912c73-4cba-4590-8d03-357bbef2da31+ | gene+ | DNA replication protein O+ | 38676..39585+ | 38676+ | 39585+ | ++ | 299+ | AGGAG+ | 5+ | ATG+ | TGA+ | 22+ | 1b331cf3-0897-4489-aa55-b14669ea5998+ | jason.gill@tamu.edu+ | 2019-02-07+ | 2020-05-27+ | added by JJG+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 07f1dc2a-8b99-4403-b2a1-6f6b1a97a8bf+ | gene+ | DNA replication protein P+ | 39572..40283+ | 39572+ | 40283+ | ++ | 233+ | GGGT+ | 6+ | ATG+ | TGA+ | -14+ | 3e912c73-4cba-4590-8d03-357bbef2da31+ | jason.gill@tamu.edu+ | 2019-02-07+ | 2020-05-27+ | added by JJG+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | a15b44d2-c0d8-4c0b-9837-2c3c986b6ff4+ | gene+ | ren exclusion protein+ | 40268..40570+ | 40268+ | 40570+ | ++ | 96+ | AGGAG+ | 7+ | ATG+ | TGA+ | -16+ | 07f1dc2a-8b99-4403-b2a1-6f6b1a97a8bf+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | ef111958-2be7-4828-8442-c2c376692e6b+ | gene+ | NC_001416.1_phage_lambda.gene_49+ | 40628..41084+ | 40628+ | 41084+ | ++ | 146+ | GGGGG+ | 11+ | ATG+ | TGA+ | 57+ | a15b44d2-c0d8-4c0b-9837-2c3c986b6ff4+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | ccb0da66-e8f2-46c6-b6ce-f3d2fcbdea5e+ | gene+ | NC_001416.1_phage_lambda.orf00086+ | 41048..41953+ | 41048+ | 41953+ | ++ | 296+ | GGAG+ | 11+ | ATG+ | TGA+ | -37+ | ef111958-2be7-4828-8442-c2c376692e6b+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | c402b694-7971-451b-aa24-4e70550eef2d+ | gene+ | NinD+ | 41950..42123+ | 41950+ | 42123+ | ++ | 57+ | None+ | None+ | ATG+ | TAA+ | -4+ | ccb0da66-e8f2-46c6-b6ce-f3d2fcbdea5e+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 61a0d8bd-5b58-4077-bc04-2bcf4dee8939+ | gene+ | CDS.0.2486_0.0832002363577+ | 42080..42272+ | 42080+ | 42272+ | ++ | 60+ | AGGAG+ | 5+ | GTG+ | TGA+ | -44+ | c402b694-7971-451b-aa24-4e70550eef2d+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 49135134-fa86-4df5-a0d7-b629ff152305+ | gene+ | CDS.0.1596_0.0419290277112+ | 42230..42439+ | 42230+ | 42439+ | ++ | 66+ | GGA+ | 6+ | GTG+ | TAA+ | -43+ | 61a0d8bd-5b58-4077-bc04-2bcf4dee8939+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | a8c3d9d2-cc66-4394-a821-ec0db2e411de+ | gene+ | NC_001416.1_phage_lambda.gene_51+ | 42419..43043+ | 42419+ | 43043+ | ++ | 204+ | GAGG+ | 6+ | ATG+ | TGA+ | -21+ | 49135134-fa86-4df5-a0d7-b629ff152305+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 0cea2875-2757-4c9b-97f5-7b0ec545394a+ | gene+ | NC_001416.1_phage_lambda.gene_52+ | 43032..43246+ | 43032+ | 43246+ | ++ | 68+ | GAG+ | 5+ | ATG+ | TGA+ | -12+ | a8c3d9d2-cc66-4394-a821-ec0db2e411de+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 8ce6427a-594a-4320-955b-be6dd71ab223+ | gene+ | NC_001416.1_phage_lambda.gene_53+ | 43135..43889+ | 43135+ | 43889+ | ++ | 221+ | GGAG+ | 8+ | ATG+ | TGA+ | -112+ | 0cea2875-2757-4c9b-97f5-7b0ec545394a+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 1653554c-4be1-453b-a377-86e20759321a+ | gene+ | late gene regulator+ | 43875..44509+ | 43875+ | 44509+ | ++ | 207+ | GGAG+ | 7+ | ATG+ | TAG+ | -15+ | 8ce6427a-594a-4320-955b-be6dd71ab223+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-27+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 6c3ab9c5-a407-47b8-89df-fa997262a409+ | gene+ | CDS.0.1630_0.132755174165+ | 44612..44815+ | 44612+ | 44815+ | ++ | 64+ | GGT+ | 6+ | ATG+ | TAA+ | 102+ | 1653554c-4be1-453b-a377-86e20759321a+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 94064736-88a6-4e82-8c89-8226f57526e8+ | gene+ | antiholin S107+ | 45175..45509+ | 45175+ | 45509+ | ++ | 213+ | + | + | +ATG (45185..45509:1), ATG (45191..45509:1)
 | TAA+ | 359+ | 6c3ab9c5-a407-47b8-89df-fa997262a409+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | f8ba23df-ca21-4307-8f5a-ef8243f01acc+ | gene+ | endolysin R+ | 45483..45969+ | 45483+ | 45969+ | ++ | 158+ | GGAG+ | 6+ | ATG+ | TGA+ | -27+ | 94064736-88a6-4e82-8c89-8226f57526e8+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 4795342c-7959-44d9-925a-781f17371e7a+ | gene+ | i-spanin Rz+ | 45953..46427+ | 45953+ | 46427+ | ++ | 153+ | GAG+ | 10+ | ATG+ | TAG+ | -17+ | f8ba23df-ca21-4307-8f5a-ef8243f01acc+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 18e578e1-38cb-4846-96e8-0190a5a26369+ | gene+ | o-spanin Rz1+ | 46174..46368+ | 46174+ | 46368+ | ++ | 60+ | AGGAG+ | 7+ | ATG+ | TGA+ | -254+ | 4795342c-7959-44d9-925a-781f17371e7a+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 6eedd5c5-3c44-404a-af31-acee26522035+ | gene+ | bor+ | 46459..46763+ | 46459+ | 46763+ | -+ | 97+ | GGA+ | 8+ | ATG+ | TAA+ | 132+ | 2da1b434-7877-4aa2-b88b-24922f70988b+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 2da1b434-7877-4aa2-b88b-24922f70988b+ | gene+ | CDS.0.3497_0.36888415839+ | 46896..47029+ | 46896+ | 47029+ | -+ | 32+ | GGGG+ | 10+ | ATG+ | TAA+ | 12+ | 5d4e2403-4389-497c-a220-9740cd9935cc+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 5d4e2403-4389-497c-a220-9740cd9935cc+ | gene+ | CDS.0.2625_0.768191840841+ | 47042..47463+ | 47042+ | 47463+ | -+ | 136+ | AGGT+ | 7+ | ATG+ | TAA+ | 645+ | e0b009e4-729e-4d97-b818-ec0cbebcb1f4+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | 752f31a0-018a-4223-a7f9-72685604b7a3+ | gene+ | CDS.0.864_0.667986446525+ | 47518..47652+ | 47518+ | 47652+ | ++ | 40+ | GGT+ | 9+ | TTG+ | TAA+ | 1149+ | 18e578e1-38cb-4846-96e8-0190a5a26369+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | e3d29177-18a8-4bc0-8d91-15e5760f3bd3+ | gene+ | NC_001416.1_phage_lambda.gene_60+ | 47727..47944+ | 47727+ | 47944+ | ++ | 68+ | GGAG+ | 7+ | ATG+ | TGA+ | 74+ | 752f31a0-018a-4223-a7f9-72685604b7a3+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                                    
+                                    | NC_001416-1_phage_lambda+ | e0b009e4-729e-4d97-b818-ec0cbebcb1f4+ | gene+ | NC_001416.1_phage_lambda.orf00102+ | 48109..48314+ | 48109+ | 48314+ | -+ | 64+ | GGGG+ | 7+ | ATG+ | TGA+ | None+ | None+ | jolenerr@tamu.edu+ | 2020-05-13+ | 2020-05-13+ | None+ | None+ | None+ | None+ | 
+                            
+                        
+                    
+            
+        
+      
+