SeqFeatData.cpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:49k
- /*
- * ===========================================================================
- * PRODUCTION $Log: SeqFeatData.cpp,v $
- * PRODUCTION Revision 1000.2 2004/06/01 19:34:09 gouriano
- * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R6.13
- * PRODUCTION
- * ===========================================================================
- */
- /* $Id: SeqFeatData.cpp,v 1000.2 2004/06/01 19:34:09 gouriano Exp $
- * ===========================================================================
- *
- * PUBLIC DOMAIN NOTICE
- * National Center for Biotechnology Information
- *
- * This software/database is a "United States Government Work" under the
- * terms of the United States Copyright Act. It was written as part of
- * the author's official duties as a United States Government employee and
- * thus cannot be copyrighted. This software/database is freely available
- * to the public for use. The National Library of Medicine and the U.S.
- * Government have not placed any restriction on its use or reproduction.
- *
- * Although all reasonable efforts have been taken to ensure the accuracy
- * and reliability of the software and data, the NLM and the U.S.
- * Government do not and cannot warrant the performance or results that
- * may be obtained by using this software or data. The NLM and the U.S.
- * Government disclaim all warranties, express or implied, including
- * warranties of performance, merchantability or fitness for any particular
- * purpose.
- *
- * Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- * Author: .......
- *
- * File Description:
- * .......
- *
- * Remark:
- * This code was originally generated by application DATATOOL
- * using specifications from the ASN data definition file
- * 'seqfeat.asn'.
- */
- // standard includes
- // generated includes
- #include <ncbi_pch.hpp>
- #include <objects/seqfeat/SeqFeatData.hpp>
- #include <objects/seqfeat/RNA_ref.hpp>
- #include <objects/seqfeat/Imp_feat.hpp>
- #include <algorithm>
- #include <util/static_map.hpp>
- // generated classes
- BEGIN_NCBI_SCOPE
- BEGIN_objects_SCOPE // namespace ncbi::objects::
- // destructor
- CSeqFeatData::~CSeqFeatData(void)
- {
- }
- // ASCII representation of subtype (GenBank feature key, e.g.)
- string CSeqFeatData::GetKey(EVocabulary vocab) const
- {
- bool genbank = (vocab == eVocabulary_genbank);
- if (genbank) {
- switch (Which()) {
- case e_Gene:
- return "gene";
- case e_Org:
- case e_Biosrc:
- return "source";
- case e_Prot:
- switch (GetProt().GetProcessed()) {
- case CProt_ref::eProcessed_preprotein:
- return "proprotein";
- case CProt_ref::eProcessed_mature:
- return "mat_peptide";
- case CProt_ref::eProcessed_signal_peptide:
- return "sig_peptide";
- case CProt_ref::eProcessed_transit_peptide:
- return "transit_peptide";
- default:
- return "Protein";
- }
- case e_Site: // Is this correct, or are these encoded as Imp?
- switch (GetSite()) {
- case CSeqFeatData::eSite_binding:
- case CSeqFeatData::eSite_metal_binding:
- case CSeqFeatData::eSite_lipid_binding:
- return "misc_binding";
- case CSeqFeatData::eSite_np_binding:
- return "protein_bind";
- case CSeqFeatData::eSite_dna_binding:
- return "primer_bind"; // ?
- case CSeqFeatData::eSite_signal_peptide:
- return "sig_peptide";
- case CSeqFeatData::eSite_transit_peptide:
- return "transit_peptide";
- default:
- return "misc_feature";
- }
- case e_Txinit:
- return "promoter"; // ?
- case e_Het:
- return "misc_binding"; // ?
- case e_Cdregion:
- case e_Rna:
- case e_Imp:
- break;
- default:
- return "misc_feature"; // ???
- }
- }
- switch (Which()) {
- case e_Gene: return "Gene";
- case e_Org: return "Org";
- case e_Cdregion: return "CDS";
- case e_Prot: return "Prot";
- case e_Rna:
- switch (GetRna().GetType()) {
- case CRNA_ref::eType_premsg: return "precursor_RNA";
- case CRNA_ref::eType_mRNA: return "mRNA";
- case CRNA_ref::eType_tRNA: return "tRNA";
- case CRNA_ref::eType_rRNA: return "rRNA";
- case CRNA_ref::eType_snRNA: return "snRNA";
- case CRNA_ref::eType_scRNA: return "scRNA";
- case CRNA_ref::eType_snoRNA: return "snoRNA"; // ok for GenBank?
- case CRNA_ref::eType_other:
- // return GetRna().GetExt().GetName();
- return genbank ? "misc_RNA" : "RNA";
- default: return "misc_RNA";
- }
- case e_Imp: return GetImp().GetKey(); // "Imp"?
- case e_Region: return "Region";
- case e_Comment: return "Comment";
- case e_Bond: return "Bond";
- case e_Site: return "Site";
- case e_Rsite: return "Rsite";
- case e_User: return "User";
- case e_Txinit: return "TxInit";
- case e_Num: return "Num";
- case e_Psec_str: return "SecStr";
- case e_Non_std_residue: return "NonStdRes";
- case e_Het: return "Het";
- case e_Biosrc: return "Src";
- default: return "???";
- }
- }
- struct SImportEntry {
- const char* m_Name;
- CSeqFeatData::ESubtype m_Subtype;
- bool operator<(const SImportEntry& e) const {
- return strcmp(m_Name, e.m_Name) < 0;
- }
- };
- // NOTE: these must stay in ASCIIbetical order!
- static const SImportEntry kImportTable[] = {
- { "-10_signal", CSeqFeatData::eSubtype_10_signal },
- { "-35_signal", CSeqFeatData::eSubtype_35_signal },
- { "3'UTR", CSeqFeatData::eSubtype_3UTR },
- { "3'clip", CSeqFeatData::eSubtype_3clip },
- { "5'UTR", CSeqFeatData::eSubtype_5UTR },
- { "5'clip", CSeqFeatData::eSubtype_5clip },
- { "CAAT_signal", CSeqFeatData::eSubtype_CAAT_signal },
- { "C_region", CSeqFeatData::eSubtype_C_region },
- { "D_loop", CSeqFeatData::eSubtype_D_loop },
- { "D_segment", CSeqFeatData::eSubtype_D_segment },
- { "GC_signal", CSeqFeatData::eSubtype_GC_signal },
- { "Imp_CDS", CSeqFeatData::eSubtype_Imp_CDS },
- { "J_segment", CSeqFeatData::eSubtype_J_segment },
- { "LTR", CSeqFeatData::eSubtype_LTR },
- { "N_region", CSeqFeatData::eSubtype_N_region },
- { "RBS", CSeqFeatData::eSubtype_RBS },
- { "STS", CSeqFeatData::eSubtype_STS },
- { "S_region", CSeqFeatData::eSubtype_S_region },
- { "TATA_signal", CSeqFeatData::eSubtype_TATA_signal },
- { "V_region", CSeqFeatData::eSubtype_V_region },
- { "V_segment", CSeqFeatData::eSubtype_V_segment },
- { "allele", CSeqFeatData::eSubtype_allele },
- { "attenuator", CSeqFeatData::eSubtype_attenuator },
- { "conflict", CSeqFeatData::eSubtype_conflict },
- { "enhancer", CSeqFeatData::eSubtype_enhancer },
- { "exon", CSeqFeatData::eSubtype_exon },
- { "gap", CSeqFeatData::eSubtype_gap },
- { "iDNA", CSeqFeatData::eSubtype_iDNA },
- { "intron", CSeqFeatData::eSubtype_intron },
- { "mat_peptide", CSeqFeatData::eSubtype_mat_peptide },
- { "misc_RNA", CSeqFeatData::eSubtype_misc_RNA },
- { "misc_binding", CSeqFeatData::eSubtype_misc_binding },
- { "misc_difference", CSeqFeatData::eSubtype_misc_difference },
- { "misc_feature", CSeqFeatData::eSubtype_misc_feature },
- { "misc_recomb", CSeqFeatData::eSubtype_misc_recomb },
- { "misc_signal", CSeqFeatData::eSubtype_misc_signal },
- { "misc_structure", CSeqFeatData::eSubtype_misc_structure },
- { "modified_base", CSeqFeatData::eSubtype_modified_base },
- { "mutation", CSeqFeatData::eSubtype_mutation },
- { "old_sequence", CSeqFeatData::eSubtype_old_sequence },
- { "operon", CSeqFeatData::eSubtype_operon },
- { "oriT", CSeqFeatData::eSubtype_oriT },
- { "polyA_signal", CSeqFeatData::eSubtype_polyA_signal },
- { "polyA_site", CSeqFeatData::eSubtype_polyA_site },
- { "precursor_RNA", CSeqFeatData::eSubtype_precursor_RNA },
- { "prim_transcript", CSeqFeatData::eSubtype_prim_transcript },
- { "primer_bind", CSeqFeatData::eSubtype_primer_bind },
- { "promoter", CSeqFeatData::eSubtype_promoter },
- { "protein_bind", CSeqFeatData::eSubtype_protein_bind },
- { "rep_origin", CSeqFeatData::eSubtype_rep_origin },
- { "repeat_region", CSeqFeatData::eSubtype_repeat_region },
- { "repeat_unit", CSeqFeatData::eSubtype_repeat_unit },
- { "satellite", CSeqFeatData::eSubtype_satellite },
- { "sig_peptide", CSeqFeatData::eSubtype_sig_peptide },
- { "site_ref", CSeqFeatData::eSubtype_site_ref },
- { "source", CSeqFeatData::eSubtype_source },
- { "stem_loop", CSeqFeatData::eSubtype_stem_loop },
- { "terminator", CSeqFeatData::eSubtype_terminator },
- { "transit_peptide", CSeqFeatData::eSubtype_transit_peptide },
- { "unsure", CSeqFeatData::eSubtype_unsure },
- { "variation", CSeqFeatData::eSubtype_variation },
- { "virion", CSeqFeatData::eSubtype_virion }
- };
- static const SImportEntry* kImportTableEnd
- = kImportTable + sizeof(kImportTable)/sizeof(SImportEntry);
- CSeqFeatData::ESubtype CSeqFeatData::GetSubtype(void) const
- {
- if (m_Subtype == eSubtype_any) { // unknown
- switch (Which()) {
- case e_Gene: m_Subtype = eSubtype_gene; break;
- case e_Org: m_Subtype = eSubtype_org; break;
- case e_Cdregion: m_Subtype = eSubtype_cdregion; break;
- case e_Prot:
- switch (GetProt().GetProcessed()) {
- case CProt_ref::eProcessed_preprotein:
- m_Subtype = eSubtype_preprotein;
- break;
- case CProt_ref::eProcessed_mature:
- m_Subtype = eSubtype_mat_peptide_aa;
- break;
- case CProt_ref::eProcessed_signal_peptide:
- m_Subtype = eSubtype_sig_peptide_aa;
- break;
- case CProt_ref::eProcessed_transit_peptide:
- m_Subtype = eSubtype_transit_peptide_aa;
- break;
- default:
- m_Subtype = eSubtype_prot;
- break;
- }
- break;
- case e_Rna:
- switch (GetRna().GetType()) {
- case CRNA_ref::eType_premsg: m_Subtype = eSubtype_preRNA; break;
- case CRNA_ref::eType_mRNA: m_Subtype = eSubtype_mRNA; break;
- case CRNA_ref::eType_tRNA: m_Subtype = eSubtype_tRNA; break;
- case CRNA_ref::eType_rRNA: m_Subtype = eSubtype_rRNA; break;
- case CRNA_ref::eType_snRNA: m_Subtype = eSubtype_snRNA; break;
- case CRNA_ref::eType_scRNA: m_Subtype = eSubtype_scRNA; break;
- default: m_Subtype = eSubtype_otherRNA; break;
- }
- break;
- case e_Pub: m_Subtype = eSubtype_pub; break;
- case e_Seq: m_Subtype = eSubtype_seq; break;
- case e_Imp:
- {
- const string& key = GetImp().GetKey();
- SImportEntry key2 = { key.c_str(), eSubtype_imp };
- const SImportEntry* result = lower_bound(kImportTable,
- kImportTableEnd,
- key2);
- if (strcmp(key2.m_Name, result->m_Name)) {
- m_Subtype = eSubtype_imp;
- } else {
- m_Subtype = result->m_Subtype;
- }
- break;
- }
- case e_Region: m_Subtype = eSubtype_region; break;
- case e_Comment: m_Subtype = eSubtype_comment; break;
- case e_Bond: m_Subtype = eSubtype_bond; break;
- case e_Site: m_Subtype = eSubtype_site; break;
- case e_Rsite: m_Subtype = eSubtype_rsite; break;
- case e_User: m_Subtype = eSubtype_user; break;
- case e_Txinit: m_Subtype = eSubtype_txinit; break;
- case e_Num: m_Subtype = eSubtype_num; break;
- case e_Psec_str: m_Subtype = eSubtype_psec_str; break;
- case e_Non_std_residue: m_Subtype = eSubtype_non_std_residue; break;
- case e_Het: m_Subtype = eSubtype_het; break;
- case e_Biosrc: m_Subtype = eSubtype_biosrc; break;
- default: m_Subtype = eSubtype_bad; break;
- }
- }
- return m_Subtype;
- }
- CSeqFeatData::E_Choice CSeqFeatData::GetTypeFromSubtype (ESubtype subtype)
- {
- switch (subtype) {
- case eSubtype_gene:
- return e_Gene;
- case eSubtype_org:
- return e_Org;
- case eSubtype_cdregion:
- return e_Cdregion;
- case eSubtype_pub:
- return e_Pub;
- case eSubtype_seq:
- return e_Seq;
- case eSubtype_region:
- return e_Region;
- case eSubtype_comment:
- return e_Comment;
- case eSubtype_bond:
- return e_Bond;
- case eSubtype_site:
- return e_Site;
- case eSubtype_rsite:
- return e_Rsite;
- case eSubtype_user:
- return e_User;
- case eSubtype_txinit:
- return e_Txinit;
- case eSubtype_num:
- return e_Num;
- case eSubtype_psec_str:
- return e_Psec_str;
- case eSubtype_non_std_residue:
- return e_Non_std_residue;
- case eSubtype_het:
- return e_Het;
- case eSubtype_biosrc:
- return e_Biosrc;
- default:
- if (subtype >= eSubtype_prot &&
- subtype <= eSubtype_transit_peptide_aa) {
- return e_Prot;
- }
- if (subtype >= eSubtype_preRNA && subtype <= eSubtype_otherRNA) {
- return e_Rna;
- }
- if (subtype >= eSubtype_imp && subtype <= eSubtype_site_ref) {
- return e_Imp;
- }
- break;
- }
- return e_not_set;
- }
- map<CSeqFeatData::ESubtype, CSeqFeatData::TQualifiers> CSeqFeatData::sm_LegalQuals;
- map<CSeqFeatData::ESubtype, CSeqFeatData::TQualifiers> CSeqFeatData::sm_MandatoryQuals;
- bool CSeqFeatData::IsLegalQualifier(ESubtype subtype, EQualifier qual)
- {
- x_InitQuals(); // does nothing if already intialized
- const TQualifiers& legal = sm_LegalQuals[subtype];
- return (find(legal.begin(), legal.end(), qual) != legal.end());
- }
- const CSeqFeatData::TQualifiers& CSeqFeatData::GetLegalQualifiers(ESubtype subtype)
- {
- x_InitQuals(); // does nothing if already intialized
- return sm_LegalQuals[subtype];
- }
- const CSeqFeatData::TQualifiers& CSeqFeatData::GetMandatoryQualifiers(ESubtype subtype)
- {
- static const TQualifiers empty_vec;
- x_InitQuals(); // does nothing if already intialized
- if ( sm_MandatoryQuals.find(subtype) != sm_MandatoryQuals.end() ) {
- return sm_MandatoryQuals[subtype];
- }
- return empty_vec;
- }
- void CSeqFeatData::x_InitLegalQuals(void)
- {
- #define START_SUBTYPE(x) {
- TQualifiers& quals = sm_LegalQuals[eSubtype_##x];
- #define ADD_QUAL(y) quals.push_back(eQual_##y)
- #define END_SUBTYPE }
- START_SUBTYPE(gene)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(phenotype);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- //START_SUBTYPE(org)
- //END_SUBTYPE
- START_SUBTYPE(cdregion)
- ADD_QUAL(EC_number);
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(codon);
- ADD_QUAL(codon_start);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(exception);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(number);
- ADD_QUAL(operon);
- ADD_QUAL(product);
- ADD_QUAL(protein_id);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(transl_except);
- ADD_QUAL(transl_table);
- ADD_QUAL(translation);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(prot)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(protein_id);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(preprotein)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(protein_id);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(mat_peptide_aa)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(protein_id);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(sig_peptide_aa)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(protein_id);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(transit_peptide_aa)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(protein_id);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(preRNA)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(mRNA)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(exception);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(tRNA)
- ADD_QUAL(allele);
- ADD_QUAL(anticodon);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(rRNA)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(snRNA)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(scRNA)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(snoRNA)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- //START_SUBTYPE(otherRNA)
- //END_SUBTYPE
- //START_SUBTYPE(pub)
- //END_SUBTYPE
- //START_SUBTYPE(seq)
- //END_SUBTYPE
- //START_SUBTYPE(imp)
- //END_SUBTYPE
- //START_SUBTYPE(allele)
- //END_SUBTYPE
- START_SUBTYPE(attenuator)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(phenotype);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(C_region)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(CAAT_signal)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(Imp_CDS)
- ADD_QUAL(EC_number);
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(codon);
- ADD_QUAL(codon_start);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(exception);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(number);
- ADD_QUAL(operon);
- ADD_QUAL(product);
- ADD_QUAL(protein_id);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(transl_except);
- ADD_QUAL(transl_table);
- ADD_QUAL(translation);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(conflict)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(replace);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(D_loop)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(D_segment)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(enhancer)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(exon)
- ADD_QUAL(EC_number);
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(number);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(GC_signal)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(iDNA)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(number);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(intron)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(cons_splice);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(number);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(J_segment)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(LTR)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(mat_peptide)
- ADD_QUAL(EC_number);
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(protein_id);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(misc_binding)
- ADD_QUAL(allele);
- ADD_QUAL(bound_moiety);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(misc_difference)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(clone);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(phenotype);
- ADD_QUAL(replace);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(misc_feature)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(number);
- ADD_QUAL(phenotype);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(misc_recomb)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(organism);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(misc_RNA)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(product);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(misc_signal)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(phenotype);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(misc_structure)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(modified_base)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(frequency);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(mod_base);
- ADD_QUAL(note);
- ADD_QUAL(usedin);
- END_SUBTYPE
- //START_SUBTYPE(mutation)
- //END_SUBTYPE
- START_SUBTYPE(N_region)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(old_sequence)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(replace);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(polyA_signal)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(polyA_site)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(precursor_RNA)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(product);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(prim_transcript)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(primer_bind)
- ADD_QUAL(PCR_conditions);
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(promoter)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(phenotype);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(protein_bind)
- ADD_QUAL(allele);
- ADD_QUAL(bound_moiety);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(RBS)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(repeat_region)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(insertion_seq);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(rpt_family);
- ADD_QUAL(rpt_type);
- ADD_QUAL(rpt_unit);
- ADD_QUAL(standard_name);
- ADD_QUAL(transposon);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(repeat_unit)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(rpt_family);
- ADD_QUAL(rpt_type);
- ADD_QUAL(rpt_unit);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(rep_origin)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(direction);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(S_region)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(satellite)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(rpt_family);
- ADD_QUAL(rpt_type);
- ADD_QUAL(rpt_unit);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(sig_peptide)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(protein_id);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(source)
- ADD_QUAL(cell_line);
- ADD_QUAL(cell_type);
- ADD_QUAL(chromosome);
- ADD_QUAL(citation);
- ADD_QUAL(clone);
- ADD_QUAL(clone_lib);
- ADD_QUAL(country);
- ADD_QUAL(cultivar);
- ADD_QUAL(db_xref);
- ADD_QUAL(dev_stage);
- ADD_QUAL(ecotype);
- ADD_QUAL(environmental_sample);
- ADD_QUAL(focus);
- ADD_QUAL(frequency);
- ADD_QUAL(germline);
- ADD_QUAL(haplotype);
- ADD_QUAL(isolate);
- ADD_QUAL(isolation_source);
- ADD_QUAL(lab_host);
- ADD_QUAL(label);
- ADD_QUAL(macronuclear);
- ADD_QUAL(map);
- ADD_QUAL(mol_type);
- ADD_QUAL(note);
- ADD_QUAL(organelle);
- ADD_QUAL(organism);
- ADD_QUAL(plasmid);
- ADD_QUAL(pop_variant);
- ADD_QUAL(proviral);
- ADD_QUAL(rearranged);
- ADD_QUAL(segment);
- ADD_QUAL(serotype);
- ADD_QUAL(serovar);
- ADD_QUAL(sex);
- ADD_QUAL(specific_host);
- ADD_QUAL(specimen_voucher);
- ADD_QUAL(strain);
- ADD_QUAL(sub_clone);
- ADD_QUAL(sub_species);
- ADD_QUAL(sub_strain);
- ADD_QUAL(tissue_lib);
- ADD_QUAL(tissue_type);
- ADD_QUAL(transgenic);
- ADD_QUAL(usedin);
- ADD_QUAL(variety);
- ADD_QUAL(virion);
- END_SUBTYPE
- START_SUBTYPE(stem_loop)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(STS)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(TATA_signal)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(terminator)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(transit_peptide)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(unsure)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(replace);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(V_region)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(V_segment)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(variation)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(frequency);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(phenotype);
- ADD_QUAL(product);
- ADD_QUAL(replace);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- //START_SUBTYPE(virion)
- START_SUBTYPE(3clip)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(3UTR)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(5clip)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(5UTR)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(10_signal)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(35_signal)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(gap)
- ADD_QUAL(estimated_length);
- END_SUBTYPE
- START_SUBTYPE(operon)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(function);
- ADD_QUAL(label);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(operon);
- ADD_QUAL(phenotype);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- START_SUBTYPE(oriT)
- ADD_QUAL(allele);
- ADD_QUAL(bound_moiety);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(direction);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(rpt_family);
- ADD_QUAL(rpt_type);
- ADD_QUAL(rpt_unit);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- //START_SUBTYPE(site_ref)
- //END_SUBTYPE
- START_SUBTYPE(region)
- ADD_QUAL(allele);
- ADD_QUAL(citation);
- ADD_QUAL(db_xref);
- ADD_QUAL(evidence);
- ADD_QUAL(gene);
- ADD_QUAL(label);
- ADD_QUAL(locus_tag);
- ADD_QUAL(map);
- ADD_QUAL(note);
- ADD_QUAL(product);
- ADD_QUAL(pseudo);
- ADD_QUAL(standard_name);
- ADD_QUAL(usedin);
- END_SUBTYPE
- //START_SUBTYPE(comment)
- //END_SUBTYPE
- //START_SUBTYPE(bond)
- //END_SUBTYPE
- //START_SUBTYPE(site)
- //END_SUBTYPE
- //START_SUBTYPE(rsite)
- //END_SUBTYPE
- //START_SUBTYPE(user)
- //END_SUBTYPE
- //START_SUBTYPE(txinit)
- //END_SUBTYPE
- //START_SUBTYPE(num)
- //END_SUBTYPE
- //START_SUBTYPE(psec_str)
- //END_SUBTYPE
- //START_SUBTYPE(non_std_residue)
- //END_SUBTYPE
- //START_SUBTYPE(het)
- //END_SUBTYPE
- //START_SUBTYPE(biosrc)
- //END_SUBTYPE
- #undef START_SUBTYPE
- #undef ADD_QUAL
- #undef END_SYBTYPE
- }
- void CSeqFeatData::x_InitMandatoryQuals(void)
- {
- sm_MandatoryQuals[eSubtype_conflict].push_back(eQual_citation);
- sm_MandatoryQuals[eSubtype_gap].push_back(eQual_estimated_length);
- sm_MandatoryQuals[eSubtype_misc_binding].push_back(eQual_bound_moiety);
- sm_MandatoryQuals[eSubtype_protein_bind].push_back(eQual_bound_moiety);
- sm_MandatoryQuals[eSubtype_modified_base].push_back(eQual_mod_base);
- sm_MandatoryQuals[eSubtype_old_sequence].push_back(eQual_citation);
- sm_MandatoryQuals[eSubtype_operon].push_back(eQual_operon);
- }
- void CSeqFeatData::x_InitQuals(void)
- {
- static bool initialized = false;
-
- if ( initialized ) {
- return;
- }
- x_InitLegalQuals();
- x_InitMandatoryQuals();
- initialized = true;
- }
- typedef pair<CSeqFeatData::EQualifier, string> TQualPair;
- static const TQualPair kQualPairs[] = {
- TQualPair(CSeqFeatData::eQual_bad, "bad"),
- TQualPair(CSeqFeatData::eQual_allele, "allele"),
- TQualPair(CSeqFeatData::eQual_anticodon, "anticodon"),
- TQualPair(CSeqFeatData::eQual_bound_moiety, "bound_moiety"),
- TQualPair(CSeqFeatData::eQual_cell_line, "cell_line"),
- TQualPair(CSeqFeatData::eQual_cell_type, "cell_type"),
- TQualPair(CSeqFeatData::eQual_chromosome, "chromosome"),
- TQualPair(CSeqFeatData::eQual_citation, "citation"),
- TQualPair(CSeqFeatData::eQual_clone, "clone"),
- TQualPair(CSeqFeatData::eQual_clone_lib, "clone_lib"),
- TQualPair(CSeqFeatData::eQual_codon, "codon"),
- TQualPair(CSeqFeatData::eQual_codon_start, "cons_splice"),
- TQualPair(CSeqFeatData::eQual_cons_splice, "cons_splice"),
- TQualPair(CSeqFeatData::eQual_country, "country"),
- TQualPair(CSeqFeatData::eQual_cultivar, "cultivar"),
- TQualPair(CSeqFeatData::eQual_db_xref, "db_xref"),
- TQualPair(CSeqFeatData::eQual_dev_stage, "dev_stage"),
- TQualPair(CSeqFeatData::eQual_direction, "direction"),
- TQualPair(CSeqFeatData::eQual_EC_number, "EC_number"),
- TQualPair(CSeqFeatData::eQual_ecotype, "ecotype"),
- TQualPair(CSeqFeatData::eQual_environmental_sample, "environmental_sample"),
- TQualPair(CSeqFeatData::eQual_estimated_length, "estimated_length"),
- TQualPair(CSeqFeatData::eQual_evidence, "evidence"),
- TQualPair(CSeqFeatData::eQual_exception, "exception"),
- TQualPair(CSeqFeatData::eQual_focus, "focus"),
- TQualPair(CSeqFeatData::eQual_frequency, "frequency"),
- TQualPair(CSeqFeatData::eQual_function, "function"),
- TQualPair(CSeqFeatData::eQual_gene, "gene"),
- TQualPair(CSeqFeatData::eQual_germline, "germline"),
- TQualPair(CSeqFeatData::eQual_haplotype, "haplotype"),
- TQualPair(CSeqFeatData::eQual_insertion_seq, "insertion_seq"),
- TQualPair(CSeqFeatData::eQual_isolate, "isolate"),
- TQualPair(CSeqFeatData::eQual_isolation_source, "isolation_source"),
- TQualPair(CSeqFeatData::eQual_label, "label"),
- TQualPair(CSeqFeatData::eQual_lab_host, "lab_host"),
- TQualPair(CSeqFeatData::eQual_locus_tag, "locus_tag"),
- TQualPair(CSeqFeatData::eQual_map, "map"),
- TQualPair(CSeqFeatData::eQual_macronuclear, "macronuclear"),
- TQualPair(CSeqFeatData::eQual_mod_base, "mod_base"),
- TQualPair(CSeqFeatData::eQual_mol_type, "mol_type"),
- TQualPair(CSeqFeatData::eQual_note, "note"),
- TQualPair(CSeqFeatData::eQual_number, "number"),
- TQualPair(CSeqFeatData::eQual_operon, "operon"),
- TQualPair(CSeqFeatData::eQual_organelle, "organelle"),
- TQualPair(CSeqFeatData::eQual_organism, "organism"),
- TQualPair(CSeqFeatData::eQual_partial, "partial"),
- TQualPair(CSeqFeatData::eQual_PCR_conditions, "PCR_conditions"),
- TQualPair(CSeqFeatData::eQual_phenotype, "phenotype"),
- TQualPair(CSeqFeatData::eQual_pop_variant, "pop_variant"),
- TQualPair(CSeqFeatData::eQual_plasmid, "plasmid"),
- TQualPair(CSeqFeatData::eQual_product, "product"),
- TQualPair(CSeqFeatData::eQual_protein_id, "protein_id"),
- TQualPair(CSeqFeatData::eQual_proviral, "proviral"),
- TQualPair(CSeqFeatData::eQual_pseudo, "pseudo"),
- TQualPair(CSeqFeatData::eQual_rearranged, "rearranged"),
- TQualPair(CSeqFeatData::eQual_replace, "replace"),
- TQualPair(CSeqFeatData::eQual_rpt_family, "rpt_family"),
- TQualPair(CSeqFeatData::eQual_rpt_type, "rpt_type"),
- TQualPair(CSeqFeatData::eQual_rpt_unit, "rpt_unit"),
- TQualPair(CSeqFeatData::eQual_segment, "segment"),
- TQualPair(CSeqFeatData::eQual_sequence_mol, "sequence_mol"),
- TQualPair(CSeqFeatData::eQual_serotype, "serotype"),
- TQualPair(CSeqFeatData::eQual_serovar, "serovar"),
- TQualPair(CSeqFeatData::eQual_sex, "sex"),
- TQualPair(CSeqFeatData::eQual_specific_host, "specific_host"),
- TQualPair(CSeqFeatData::eQual_specimen_voucher, "specimen_voucher"),
- TQualPair(CSeqFeatData::eQual_standard_name, "standard_name"),
- TQualPair(CSeqFeatData::eQual_strain, "strain"),
- TQualPair(CSeqFeatData::eQual_sub_clone, "sub_clone"),
- TQualPair(CSeqFeatData::eQual_sub_species, "sub_species"),
- TQualPair(CSeqFeatData::eQual_sub_strain, "sub_strain"),
- TQualPair(CSeqFeatData::eQual_tissue_lib, "tissue_lib"),
- TQualPair(CSeqFeatData::eQual_tissue_type, "tissue_type"),
- TQualPair(CSeqFeatData::eQual_transgenic, "transgenic"),
- TQualPair(CSeqFeatData::eQual_translation, "translation"),
- TQualPair(CSeqFeatData::eQual_transl_except, "transl_except"),
- TQualPair(CSeqFeatData::eQual_transl_table, "transl_table"),
- TQualPair(CSeqFeatData::eQual_transposon, "transposon"),
- TQualPair(CSeqFeatData::eQual_usedin, "usedin"),
- TQualPair(CSeqFeatData::eQual_variety, "variety"),
- TQualPair(CSeqFeatData::eQual_virion, "virion"),
- };
- typedef CStaticArrayMap<CSeqFeatData::EQualifier, string> TQualsMap;
- static const TQualsMap sc_QualPairs(kQualPairs, sizeof(kQualPairs));
- const string& CSeqFeatData::GetQulifierAsString(EQualifier qual)
- {
- TQualsMap::const_iterator iter = sc_QualPairs.find(qual);
- return (iter != sc_QualPairs.end()) ? iter->second : kEmptyStr;
- }
- END_objects_SCOPE // namespace ncbi::objects::
- END_NCBI_SCOPE
- /*
- * ===========================================================================
- *
- * $Log: SeqFeatData.cpp,v $
- * Revision 1000.2 2004/06/01 19:34:09 gouriano
- * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R6.13
- *
- * Revision 6.13 2004/05/19 17:26:04 gorelenk
- * Added include of PCH - ncbi_pch.hpp
- *
- * Revision 6.12 2004/05/19 14:41:02 shomrat
- * Added list of qualifiers
- *
- * Revision 6.11 2004/03/10 21:33:43 shomrat
- * Fixed key for genbank vocabulary
- *
- * Revision 6.10 2003/10/24 17:14:28 shomrat
- * added gap, operaon and oriT subtypes
- *
- * Revision 6.9 2003/06/02 18:06:10 ucko
- * GetSubtype: handle imported features more efficiently.
- *
- * Revision 6.8 2003/05/20 01:29:39 ucko
- * Added missing punctuation in imported keys' names.
- *
- * Revision 6.7 2003/05/19 18:21:32 ucko
- * Add "break" statement accidentally dropped in last change.
- *
- * Revision 6.6 2003/05/19 17:35:56 ucko
- * GetSubtype: properly honor Prot-ref.processed, and ignore bogus
- * imports with corresponding names.
- *
- * Revision 6.5 2003/04/19 16:38:45 dicuccio
- * Remove compiler warning about nested comments
- *
- * Revision 6.4 2003/04/18 21:21:25 kans
- * added GetTypeFromSubtype, moved log to end of file
- *
- * Revision 6.3 2002/03/22 16:13:42 ucko
- * CSeqFeatData::GetKey: return "Prot" rather than "Protein" in default
- * vocabulary. (Keep "Protein" for Genbank).
- *
- * Revision 6.2 2002/03/06 21:59:48 ucko
- * CSeqFeatData::GetKey: return (misc_)RNA rather than extended name for
- * RNA of type "other."
- *
- * Revision 6.1 2001/10/30 20:25:58 ucko
- * Implement feature labels/keys, subtypes, and sorting
- *
- *
- * ===========================================================================
- */
- /* Original file checksum: lines: 61, chars: 1894, CRC32: 86fb976 */