public override string ToString()
        {
            if ((ReferenceAlleleString == null || ReferenceAlleleString == "") && (SecondAlleleString == null || SecondAlleleString == ""))
            {
                return(ChromosomeID + ":" + OneBasedStart.ToString() + "-" + OneBasedEnd.ToString() + "[" + VarType.ToString() + "]");
            }

            return(ChromosomeID                     //
                   + ":" + OneBasedStart.ToString() //
                   + "_" + ReferenceAlleleString    //
                   + "/" + SecondAlleleString
                   + "_" + Genotype.Type.ToString());
        }
        public MetadataListItem <List <string> > GetGtfFeatureMetadata()
        {
            var feature = new MetadataListItem <List <string> >(FeatureType, GetGtfAttributes());

            feature.SubItems["source"] = new List <string> {
                Source.ToString()
            };
            feature.SubItems["start"] = new List <string> {
                OneBasedStart.ToString()
            };
            feature.SubItems["end"] = new List <string> {
                OneBasedEnd.ToString()
            };
            if (Strand != ".")
            {
                feature.SubItems["strand"] = new List <string> {
                    Strand.ToString()
                };
            }                                                                                           // might take in features without strand later on
            return(feature);
        }