Column 9: attributes; A list of ;-separated feature attributes in key=value form
Column 9 attributes may also include a comma-sep list of tags: (key:tag)={t1,t2,t3,...}
Provides map key lookup semantics for column 9 attributes
Returns a string with the canonical "chr:start-end" representation
Column 1: seqid (aka contig); basis for the coordinate system
Genomic coordinate at beginning of feature, taking strandedness into account
Genomic coordinate at end of feature, taking strandedness into account
Genomic coordinate at offset into feature, taking strandedness into account
Columns 4 & 5: returns Coordinate set: Obc format
Column 5: end; closed coordinate integer ending nucleotide position of the feature
TODO: Not implemented; (almost) always true
Computed feature length
Column 8: phase; For features of type "CDS", the phase indicates where the feature begins with reference to the reading frame. The phase is one of the integers 0, 1, or 2, indicating the number of bases that should be removed from the beginning of this feature to reach the first base of the next codon. In other words, a phase of "0" indicates that the next codon begins at the first base of the region described by the current line, a phase of "1" indicates that the next codon begins at the second base of this region, and a phase of "2" indicates that the codon begins at the third base of this region. This is NOT to be confused with the frame, which is simply start modulo 3.
Relative start === the feature length
Relative start === 1
Column 6: score; float. From the standard: "the semantics of the score are ill-defined." Tragically, score can be either a float, or not present (".") Totally arbitrarily, we will represent absent as -1
Return the seqURI representation
Column 1: seqid (aka contig); basis for the coordinate system
Column 2: source; software, procedure, or database originating the record
Columns 4: start; 1-based integer start position of the feature
Column 7: strand; '+', '-', or '.' (or '?' for relevant but unknown)
Column 3: feature type; sequence ontology (SO) defined type, or SO accession number
GFF3 Record
Format Documentation: http://gmod.org/wiki/GFF3
https://useast.ensembl.org/info/website/upload/gff3.html
https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md
http://www.sequenceontology.org/gff3.shtml
TODO: make sortable TODO: Make record builder (i.e. start with blank record and add attrs) to prep for writing