001package com.hfg.bio.seq.format.feature.genbank;
002
003
004
005import com.hfg.bio.seq.format.GenBank;
006import com.hfg.util.StringUtil;
007
008import java.util.Collection;
009import java.util.HashMap;
010import java.util.Map;
011
012//------------------------------------------------------------------------------
013/**
014 DDBJ/EMBL/GenBank feature table qualifiers for flat-file records.
015 <p>
016 See <a href='http://www.insdc.org/documents/feature-table'>http://www.insdc.org/documents/feature-table</a>
017 </p>
018 @author J. Alex Taylor, hairyfatguy.com
019 */
020//------------------------------------------------------------------------------
021// com.hfg Library
022//
023// This library is free software; you can redistribute it and/or
024// modify it under the terms of the GNU Lesser General Public
025// License as published by the Free Software Foundation; either
026// version 2.1 of the License, or (at your option) any later version.
027//
028// This library is distributed in the hope that it will be useful,
029// but WITHOUT ANY WARRANTY; without even the implied warranty of
030// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
031// Lesser General Public License for more details.
032//
033// You should have received a copy of the GNU Lesser General Public
034// License along with this library; if not, write to the Free Software
035// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
036//
037// J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com
038// jataylor@hairyfatguy.com
039//------------------------------------------------------------------------------
040
041
042public class GenBankFeatureQualifierName
043{
044   private String mName;
045
046   private static Map<String, GenBankFeatureQualifierName> sUniqueMap = new HashMap<>();
047   
048   public static final GenBankFeatureQualifierName allele           = new GenBankFeatureQualifierName("allele");
049   public static final GenBankFeatureQualifierName altitude         = new GenBankFeatureQualifierName("altitude");
050   public static final GenBankFeatureQualifierName anticodon        = new GenBankFeatureQualifierName("anticodon");
051   public static final GenBankFeatureQualifierName artificial       = new GenBankFeatureQualifierName("artificial");
052   public static final GenBankFeatureQualifierName artificial_location = new GenBankFeatureQualifierName("artificial_location");
053   public static final GenBankFeatureQualifierName bio_material     = new GenBankFeatureQualifierName("bio_material");
054   public static final GenBankFeatureQualifierName bound_moiety     = new GenBankFeatureQualifierName("bound_moiety");
055   public static final GenBankFeatureQualifierName breed            = new GenBankFeatureQualifierName("breed"); // Observed. Not in docs.
056   public static final GenBankFeatureQualifierName cell_line        = new GenBankFeatureQualifierName("cell_line");
057   public static final GenBankFeatureQualifierName cell_type        = new GenBankFeatureQualifierName("cell_type");
058   public static final GenBankFeatureQualifierName chromosome       = new GenBankFeatureQualifierName("chromosome");
059   public static final GenBankFeatureQualifierName citation         = new GenBankFeatureQualifierName("citation");
060   public static final GenBankFeatureQualifierName clone            = new GenBankFeatureQualifierName("clone");
061   public static final GenBankFeatureQualifierName clone_lib        = new GenBankFeatureQualifierName("clone_lib");
062   public static final GenBankFeatureQualifierName codon_start      = new GenBankFeatureQualifierName("codon_start");
063   public static final GenBankFeatureQualifierName collected_by     = new GenBankFeatureQualifierName("collected_by");
064   public static final GenBankFeatureQualifierName collection_date  = new GenBankFeatureQualifierName("collection_date");
065   public static final GenBankFeatureQualifierName compare          = new GenBankFeatureQualifierName("compare");
066   public static final GenBankFeatureQualifierName country          = new GenBankFeatureQualifierName("country");
067   public static final GenBankFeatureQualifierName cultivar         = new GenBankFeatureQualifierName("cultivar");
068   public static final GenBankFeatureQualifierName culture_collection = new GenBankFeatureQualifierName("culture_collection");
069   public static final GenBankFeatureQualifierName db_xref          = new GenBankFeatureQualifierName("db_xref");
070   public static final GenBankFeatureQualifierName dev_stage        = new GenBankFeatureQualifierName("dev_stage");
071   public static final GenBankFeatureQualifierName direction        = new GenBankFeatureQualifierName("direction");
072   public static final GenBankFeatureQualifierName EC_number        = new GenBankFeatureQualifierName("EC_number");
073   public static final GenBankFeatureQualifierName ecotype          = new GenBankFeatureQualifierName("ecotype");
074   public static final GenBankFeatureQualifierName environmental_sample = new GenBankFeatureQualifierName("environmental_sample");
075   public static final GenBankFeatureQualifierName estimated_length = new GenBankFeatureQualifierName("estimated_length");
076   public static final GenBankFeatureQualifierName exception        = new GenBankFeatureQualifierName("exception");
077   public static final GenBankFeatureQualifierName experiment       = new GenBankFeatureQualifierName("experiment");
078   public static final GenBankFeatureQualifierName focus            = new GenBankFeatureQualifierName("focus");
079   public static final GenBankFeatureQualifierName frequency        = new GenBankFeatureQualifierName("frequency");
080   public static final GenBankFeatureQualifierName function         = new GenBankFeatureQualifierName("function");
081   public static final GenBankFeatureQualifierName gap_type         = new GenBankFeatureQualifierName("gap_type");
082   public static final GenBankFeatureQualifierName gene             = new GenBankFeatureQualifierName("gene");
083   public static final GenBankFeatureQualifierName gene_synonym     = new GenBankFeatureQualifierName("gene_synonym");
084   public static final GenBankFeatureQualifierName germline         = new GenBankFeatureQualifierName("germline");
085   public static final GenBankFeatureQualifierName haplogroup       = new GenBankFeatureQualifierName("haplogroup");
086   public static final GenBankFeatureQualifierName haplotype        = new GenBankFeatureQualifierName("haplotype");
087   public static final GenBankFeatureQualifierName host             = new GenBankFeatureQualifierName("host");
088   public static final GenBankFeatureQualifierName identified_by    = new GenBankFeatureQualifierName("identified_by");
089   public static final GenBankFeatureQualifierName inference        = new GenBankFeatureQualifierName("inference");
090   public static final GenBankFeatureQualifierName isolate          = new GenBankFeatureQualifierName("isolate");
091   public static final GenBankFeatureQualifierName isolation_source = new GenBankFeatureQualifierName("isolation_source");
092   public static final GenBankFeatureQualifierName lab_host         = new GenBankFeatureQualifierName("lab_host");
093   public static final GenBankFeatureQualifierName lat_lon          = new GenBankFeatureQualifierName("lat_lon");
094   public static final GenBankFeatureQualifierName linkage_evidence = new GenBankFeatureQualifierName("linkage_evidence");
095   public static final GenBankFeatureQualifierName locus_tag        = new GenBankFeatureQualifierName("locus_tag");
096   public static final GenBankFeatureQualifierName macronuclear     = new GenBankFeatureQualifierName("macronuclear");
097   public static final GenBankFeatureQualifierName map              = new GenBankFeatureQualifierName("map");
098   public static final GenBankFeatureQualifierName mating_type      = new GenBankFeatureQualifierName("mating_type");
099   public static final GenBankFeatureQualifierName mobile_element_type = new GenBankFeatureQualifierName("mobile_element_type");
100   public static final GenBankFeatureQualifierName mod_base            = new GenBankFeatureQualifierName("mod_base");
101   public static final GenBankFeatureQualifierName mol_type            = new GenBankFeatureQualifierName("mol_type");
102   public static final GenBankFeatureQualifierName ncRNA_class         = new GenBankFeatureQualifierName("ncRNA_class");
103   public static final GenBankFeatureQualifierName note             = new GenBankFeatureQualifierName("note");
104   public static final GenBankFeatureQualifierName number           = new GenBankFeatureQualifierName("number");
105   public static final GenBankFeatureQualifierName old_locus_tag    = new GenBankFeatureQualifierName("old_locus_tag");
106   public static final GenBankFeatureQualifierName operon           = new GenBankFeatureQualifierName("operon");
107   public static final GenBankFeatureQualifierName organelle        = new GenBankFeatureQualifierName("organelle");
108   public static final GenBankFeatureQualifierName organism         = new GenBankFeatureQualifierName("organism");
109   public static final GenBankFeatureQualifierName PCR_conditions   = new GenBankFeatureQualifierName("PCR_conditions");
110   public static final GenBankFeatureQualifierName PCR_primers      = new GenBankFeatureQualifierName("PCR_primers");
111   public static final GenBankFeatureQualifierName phenotype        = new GenBankFeatureQualifierName("phenotype");
112   public static final GenBankFeatureQualifierName plasmid          = new GenBankFeatureQualifierName("plasmid");
113   public static final GenBankFeatureQualifierName pop_variant      = new GenBankFeatureQualifierName("pop_variant");
114   public static final GenBankFeatureQualifierName product          = new GenBankFeatureQualifierName("product");
115   public static final GenBankFeatureQualifierName protein_id       = new GenBankFeatureQualifierName("protein_id");
116   public static final GenBankFeatureQualifierName proviral         = new GenBankFeatureQualifierName("proviral");
117   public static final GenBankFeatureQualifierName pseudo           = new GenBankFeatureQualifierName("pseudo");
118   public static final GenBankFeatureQualifierName pseudogene       = new GenBankFeatureQualifierName("pseudogene");
119   public static final GenBankFeatureQualifierName rearranged         = new GenBankFeatureQualifierName("rearranged");
120   public static final GenBankFeatureQualifierName regulatory_class   = new GenBankFeatureQualifierName("regulatory_class");
121   public static final GenBankFeatureQualifierName replace            = new GenBankFeatureQualifierName("replace");
122   public static final GenBankFeatureQualifierName ribosomal_slippage = new GenBankFeatureQualifierName("ribosomal_slippage");
123   public static final GenBankFeatureQualifierName rpt_family         = new GenBankFeatureQualifierName("rpt_family");
124   public static final GenBankFeatureQualifierName rpt_type           = new GenBankFeatureQualifierName("rpt_type");
125   public static final GenBankFeatureQualifierName rpt_unit_range     = new GenBankFeatureQualifierName("rpt_unit_range");
126   public static final GenBankFeatureQualifierName rpt_unit_seq       = new GenBankFeatureQualifierName("rpt_unit_seq");
127   public static final GenBankFeatureQualifierName satellite          = new GenBankFeatureQualifierName("satellite");
128   public static final GenBankFeatureQualifierName segment            = new GenBankFeatureQualifierName("segment");
129   public static final GenBankFeatureQualifierName serotype           = new GenBankFeatureQualifierName("serotype");
130   public static final GenBankFeatureQualifierName serovar            = new GenBankFeatureQualifierName("serovar");
131   public static final GenBankFeatureQualifierName sex                = new GenBankFeatureQualifierName("sex");
132   public static final GenBankFeatureQualifierName specimen_voucher   = new GenBankFeatureQualifierName("specimen_voucher");
133   public static final GenBankFeatureQualifierName standard_name      = new GenBankFeatureQualifierName("standard_name");
134   public static final GenBankFeatureQualifierName strain             = new GenBankFeatureQualifierName("strain");
135   public static final GenBankFeatureQualifierName sub_clone          = new GenBankFeatureQualifierName("sub_clone");
136   public static final GenBankFeatureQualifierName sub_species        = new GenBankFeatureQualifierName("sub_species");
137   public static final GenBankFeatureQualifierName sub_strain         = new GenBankFeatureQualifierName("sub_strain");
138   public static final GenBankFeatureQualifierName tag_peptide        = new GenBankFeatureQualifierName("tag_peptide");
139   public static final GenBankFeatureQualifierName tissue_lib         = new GenBankFeatureQualifierName("tissue_lib");
140   public static final GenBankFeatureQualifierName tissue_type        = new GenBankFeatureQualifierName("tissue_type");
141   public static final GenBankFeatureQualifierName transcript_id      = new GenBankFeatureQualifierName("transcript_id");
142   public static final GenBankFeatureQualifierName transgenic         = new GenBankFeatureQualifierName("transgenic");
143   public static final GenBankFeatureQualifierName translation        = new GenBankFeatureQualifierName("translation");
144   public static final GenBankFeatureQualifierName transl_except      = new GenBankFeatureQualifierName("transl_except");
145   public static final GenBankFeatureQualifierName transl_table       = new GenBankFeatureQualifierName("transl_table");
146   public static final GenBankFeatureQualifierName trans_splicing     = new GenBankFeatureQualifierName("trans_splicing");
147   public static final GenBankFeatureQualifierName type_material      = new GenBankFeatureQualifierName("type_material");
148   public static final GenBankFeatureQualifierName variety            = new GenBankFeatureQualifierName("variety");
149
150   //###########################################################################
151   // CONSTRUCTORS
152   //###########################################################################
153
154   //---------------------------------------------------------------------------
155   private GenBankFeatureQualifierName(String inName)
156   {
157      mName = inName;
158      sUniqueMap.put(mName, this);
159   }
160
161   //###########################################################################
162   // PUBLIC METHODS
163   //###########################################################################
164
165   //---------------------------------------------------------------------------
166   public static GenBankFeatureQualifierName valueOf(String inValue)
167   {
168      GenBankFeatureQualifierName qualifierName = sUniqueMap.get(inValue);
169      if (null == qualifierName)
170      {
171         qualifierName = new GenBankFeatureQualifierName(inValue);
172         GenBank.getLogger().warning(StringUtil.singleQuote(inValue) + " is not a recognized GenBank feature qualifier!");
173      }
174
175      return qualifierName;
176   }
177
178   //---------------------------------------------------------------------------
179   public static Collection<GenBankFeatureQualifierName> values()
180   {
181      return sUniqueMap.values();
182   }
183
184   //---------------------------------------------------------------------------
185   public String name()
186   {
187      return mName;
188   }
189
190   //---------------------------------------------------------------------------
191   @Override
192   public String toString()
193   {
194      return name();
195   }
196
197}