SeqFeatData.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:11k
- /*
- * ===========================================================================
- * PRODUCTION $Log: SeqFeatData.hpp,v $
- * PRODUCTION Revision 1000.1 2004/06/01 19:30:46 gouriano
- * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.6
- * PRODUCTION
- * ===========================================================================
- */
- /* $Id: SeqFeatData.hpp,v 1000.1 2004/06/01 19:30:46 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'.
- */
- #ifndef OBJECTS_SEQFEAT_SEQFEATDATA_HPP
- #define OBJECTS_SEQFEAT_SEQFEATDATA_HPP
- // generated includes
- #include <objects/seqfeat/SeqFeatData_.hpp>
- // generated classes
- BEGIN_NCBI_SCOPE
- BEGIN_objects_SCOPE // namespace ncbi::objects::
- class NCBI_SEQFEAT_EXPORT CSeqFeatData : public CSeqFeatData_Base
- {
- typedef CSeqFeatData_Base Tparent;
- public:
- // constructor
- CSeqFeatData(void);
- // destructor
- ~CSeqFeatData(void);
- // ASCII representation of subtype (GenBank feature key, e.g.)
- enum EVocabulary {
- eVocabulary_full,
- eVocabulary_genbank
- };
- string GetKey(EVocabulary vocab = eVocabulary_full) const;
- enum ESubtype {
- // These no longer need to match the FEATDEF values in the
- // C toolkit's objfdef.h
- eSubtype_bad = 0,
- eSubtype_gene,
- eSubtype_org,
- eSubtype_cdregion,
- eSubtype_prot,
- eSubtype_preprotein,
- eSubtype_mat_peptide_aa,
- eSubtype_sig_peptide_aa,
- eSubtype_transit_peptide_aa,
- eSubtype_preRNA,
- eSubtype_mRNA,
- eSubtype_tRNA,
- eSubtype_rRNA,
- eSubtype_snRNA,
- eSubtype_scRNA,
- eSubtype_snoRNA,
- eSubtype_otherRNA,
- eSubtype_pub,
- eSubtype_seq,
- eSubtype_imp,
- eSubtype_allele,
- eSubtype_attenuator,
- eSubtype_C_region,
- eSubtype_CAAT_signal,
- eSubtype_Imp_CDS,
- eSubtype_conflict,
- eSubtype_D_loop,
- eSubtype_D_segment,
- eSubtype_enhancer,
- eSubtype_exon,
- eSubtype_GC_signal,
- eSubtype_iDNA,
- eSubtype_intron,
- eSubtype_J_segment,
- eSubtype_LTR,
- eSubtype_mat_peptide,
- eSubtype_misc_binding,
- eSubtype_misc_difference,
- eSubtype_misc_feature,
- eSubtype_misc_recomb,
- eSubtype_misc_RNA,
- eSubtype_misc_signal,
- eSubtype_misc_structure,
- eSubtype_modified_base,
- eSubtype_mutation,
- eSubtype_N_region,
- eSubtype_old_sequence,
- eSubtype_polyA_signal,
- eSubtype_polyA_site,
- eSubtype_precursor_RNA,
- eSubtype_prim_transcript,
- eSubtype_primer_bind,
- eSubtype_promoter,
- eSubtype_protein_bind,
- eSubtype_RBS,
- eSubtype_repeat_region,
- eSubtype_repeat_unit,
- eSubtype_rep_origin,
- eSubtype_S_region,
- eSubtype_satellite,
- eSubtype_sig_peptide,
- eSubtype_source,
- eSubtype_stem_loop,
- eSubtype_STS,
- eSubtype_TATA_signal,
- eSubtype_terminator,
- eSubtype_transit_peptide,
- eSubtype_unsure,
- eSubtype_V_region,
- eSubtype_V_segment,
- eSubtype_variation,
- eSubtype_virion,
- eSubtype_3clip,
- eSubtype_3UTR,
- eSubtype_5clip,
- eSubtype_5UTR,
- eSubtype_10_signal,
- eSubtype_35_signal,
- eSubtype_gap,
- eSubtype_operon,
- eSubtype_oriT,
- eSubtype_site_ref,
- eSubtype_region,
- eSubtype_comment,
- eSubtype_bond,
- eSubtype_site,
- eSubtype_rsite,
- eSubtype_user,
- eSubtype_txinit,
- eSubtype_num,
- eSubtype_psec_str,
- eSubtype_non_std_residue,
- eSubtype_het,
- eSubtype_biosrc,
- eSubtype_max,
- eSubtype_any = 255
- };
- ESubtype GetSubtype(void) const;
-
- // Call after changes that could affect the subtype
- void InvalidateSubtype(void);
- static E_Choice GetTypeFromSubtype (ESubtype subtype);
- // List of available qualifiers for feature keys.
- // For more information see:
- // The DDBJ/EMBL/GenBank Feature Table: Definition
- // (http://www.ncbi.nlm.nih.gov/projects/collab/FT/index.html)
- enum EQualifier
- {
- eQual_bad = 0,
- eQual_allele,
- eQual_anticodon,
- eQual_bound_moiety,
- eQual_cell_line,
- eQual_cell_type,
- eQual_chromosome,
- eQual_citation,
- eQual_clone,
- eQual_clone_lib,
- eQual_codon,
- eQual_codon_start,
- eQual_cons_splice,
- eQual_country,
- eQual_cultivar,
- eQual_db_xref,
- eQual_dev_stage,
- eQual_direction,
- eQual_EC_number,
- eQual_ecotype,
- eQual_environmental_sample,
- eQual_estimated_length,
- eQual_evidence,
- eQual_exception,
- eQual_focus,
- eQual_frequency,
- eQual_function,
- eQual_gene,
- eQual_germline,
- eQual_haplotype,
- eQual_insertion_seq,
- eQual_isolate,
- eQual_isolation_source,
- eQual_label,
- eQual_lab_host,
- eQual_locus_tag,
- eQual_map,
- eQual_macronuclear,
- eQual_mod_base,
- eQual_mol_type,
- eQual_note,
- eQual_number,
- eQual_operon,
- eQual_organelle,
- eQual_organism,
- eQual_partial,
- eQual_PCR_conditions,
- eQual_phenotype,
- eQual_pop_variant,
- eQual_plasmid,
- eQual_product,
- eQual_protein_id,
- eQual_proviral,
- eQual_pseudo,
- eQual_rearranged,
- eQual_replace,
- eQual_rpt_family,
- eQual_rpt_type,
- eQual_rpt_unit,
- eQual_segment,
- eQual_sequence_mol,
- eQual_serotype,
- eQual_serovar,
- eQual_sex,
- eQual_specific_host,
- eQual_specimen_voucher,
- eQual_standard_name,
- eQual_strain,
- eQual_sub_clone,
- eQual_sub_species,
- eQual_sub_strain,
- eQual_tissue_lib,
- eQual_tissue_type,
- eQual_transgenic,
- eQual_translation,
- eQual_transl_except,
- eQual_transl_table,
- eQual_transposon,
- eQual_usedin,
- eQual_variety,
- eQual_virion
- };
- typedef vector<EQualifier> TQualifiers;
- // Test wheather a certain qualifier is legal for the feature
- bool IsLegalQualifier(EQualifier qual) const;
- static bool IsLegalQualifier(ESubtype subtype, EQualifier qual);
- // Get a list of all the legal qualifiers for the feature.
- const TQualifiers& GetLegalQualifiers(void) const;
- static const TQualifiers& GetLegalQualifiers(ESubtype subtype);
- // Get the list of all mandatory qualifiers for the feature.
- const TQualifiers& GetMandatoryQualifiers(void) const;
- static const TQualifiers& GetMandatoryQualifiers(ESubtype subtype);
-
- // Convert a qualifier from an enumerated value to a string representation.
- static const string& GetQulifierAsString(EQualifier qual);
- private:
- mutable ESubtype m_Subtype; // cached
- // Prohibit copy constructor and assignment operator
- CSeqFeatData(const CSeqFeatData& value);
- CSeqFeatData& operator=(const CSeqFeatData& value);
- typedef map<ESubtype, TQualifiers> TFeatQuals;
- static void x_InitQuals(void);
- static void x_InitLegalQuals(void);
- static void x_InitMandatoryQuals(void);
- static TFeatQuals sm_LegalQuals;
- static TFeatQuals sm_MandatoryQuals;
- };
- /////////////////// CSeqFeatData inline methods
- // constructor
- inline
- CSeqFeatData::CSeqFeatData(void) : m_Subtype(eSubtype_any)
- {
- }
- inline
- void CSeqFeatData::InvalidateSubtype(void)
- {
- m_Subtype = eSubtype_any;
- }
- inline
- bool CSeqFeatData::IsLegalQualifier(EQualifier qual) const
- {
- x_InitQuals(); // does nothing if already intialized
- return IsLegalQualifier(GetSubtype(), qual);
- }
- inline
- const CSeqFeatData::TQualifiers& CSeqFeatData::GetLegalQualifiers(void) const
- {
- x_InitQuals(); // does nothing if already intialized
- return GetLegalQualifiers(GetSubtype());
- }
- inline
- const CSeqFeatData::TQualifiers& CSeqFeatData::GetMandatoryQualifiers(void) const
- {
- x_InitQuals(); // does nothing if already intialized
- return GetMandatoryQualifiers(GetSubtype());
- }
- /////////////////// end of CSeqFeatData inline methods
- END_objects_SCOPE // namespace ncbi::objects::
- END_NCBI_SCOPE
- #endif // OBJECTS_SEQFEAT_SEQFEATDATA_HPP
- /*
- * ===========================================================================
- *
- * $Log: SeqFeatData.hpp,v $
- * Revision 1000.1 2004/06/01 19:30:46 gouriano
- * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.6
- *
- * Revision 1.6 2004/05/19 14:39:42 shomrat
- * Added list of qualifiers
- *
- * Revision 1.5 2003/10/24 17:13:49 shomrat
- * added gap, operaon and oriT subtypes
- *
- * Revision 1.4 2003/04/19 16:38:06 dicuccio
- * Remove compiler warning about nested c-style comments
- *
- * Revision 1.3 2003/04/18 21:20:44 kans
- * regrouped ESubtype, removing most explicit numbers, added GetTypeFromSubtype, moved log to end of file
- *
- * Revision 1.2 2002/12/26 12:43:27 dicuccio
- * Added Win32 export specifiers
- *
- * Revision 1.1 2001/10/30 20:25:56 ucko
- * Implement feature labels/keys, subtypes, and sorting
- *
- *
- * ===========================================================================
- */
- /* Original file checksum: lines: 90, chars: 2439, CRC32: 742431cc */