validatorp.hpp

来自「ncbi源码」· HPP 代码 · 共 1,149 行 · 第 1/3 页

HPP
1,149
字号
/* * =========================================================================== * PRODUCTION $Log: validatorp.hpp,v $ * PRODUCTION Revision 1000.3  2004/06/01 19:47:42  gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.64 * PRODUCTION * =========================================================================== *//*  $Id: validatorp.hpp,v 1000.3 2004/06/01 19:47:42 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:  Jonathan Kans, Clifford Clausen, Aaron Ucko...... * * File Description: *   Privae classes and definition for the validator *   ....... * */#ifndef VALIDATOR___VALIDATORP__HPP#define VALIDATOR___VALIDATORP__HPP#include <corelib/ncbistd.hpp>#include <objmgr/scope.hpp>#include <objmgr/feat_ci.hpp>  // for CMappedFeat#include <objects/seqset/Bioseq_set.hpp>#include <objects/seq/GIBB_mol.hpp>#include <util/strsearch.hpp>#include <objects/seqfeat/Seq_feat.hpp>#include <objects/seqalign/Seq_align.hpp>#include <objects/seqalign/Std_seg.hpp>#include <objects/seqalign/Packed_seg.hpp>#include <objtools/validator/validator.hpp>BEGIN_NCBI_SCOPEBEGIN_SCOPE(objects)class CSeq_entry;class CCit_sub;class CCit_art;class CCit_gen;class CSeq_feat;class CBioseq;class CSeqdesc;class CSeq_annot;class CTrna_ext;class CProt_ref;class CSeq_loc;class CFeat_CI;class CPub_set;class CAuthor;class CTitle;class CDesc_CI;class CMolInfo;class CUser_object;class CSeqdesc_CI;class CSeq_graph;class CMappedGraph;class CDense_diag;class CDense_seg;class CSeq_align_set;class CPubdesc;class CBioSource;class COrg_ref;class CByte_graph;class CDelta_seq;class CSeqFeatData;class CGene_ref;class CCdregion;class CRNA_ref;class CImp_feat;class CSeq_literal;class CBioseq_Handle;BEGIN_SCOPE(validator)// ===========================  Internal error types  ==========================enum EErrType {    eErr_ALL = 0,    eErr_SEQ_INST_ExtNotAllowed,    eErr_SEQ_INST_ExtBadOrMissing,    eErr_SEQ_INST_SeqDataNotFound,    eErr_SEQ_INST_SeqDataNotAllowed,    eErr_SEQ_INST_ReprInvalid,    eErr_SEQ_INST_CircularProtein,    eErr_SEQ_INST_DSProtein,    eErr_SEQ_INST_MolNotSet,    eErr_SEQ_INST_MolOther,    eErr_SEQ_INST_FuzzyLen,    eErr_SEQ_INST_InvalidLen,    eErr_SEQ_INST_InvalidAlphabet,    eErr_SEQ_INST_SeqDataLenWrong,    eErr_SEQ_INST_SeqPortFail,    eErr_SEQ_INST_InvalidResidue,    eErr_SEQ_INST_StopInProtein,    eErr_SEQ_INST_PartialInconsistent,    eErr_SEQ_INST_ShortSeq,    eErr_SEQ_INST_NoIdOnBioseq,    eErr_SEQ_INST_BadDeltaSeq,    eErr_SEQ_INST_LongHtgsSequence,    eErr_SEQ_INST_LongLiteralSequence,    eErr_SEQ_INST_SequenceExceeds350kbp,    eErr_SEQ_INST_ConflictingIdsOnBioseq,    eErr_SEQ_INST_MolNuclAcid,    eErr_SEQ_INST_ConflictingBiomolTech,    eErr_SEQ_INST_SeqIdNameHasSpace,    eErr_SEQ_INST_IdOnMultipleBioseqs,    eErr_SEQ_INST_DuplicateSegmentReferences,    eErr_SEQ_INST_TrailingX,    eErr_SEQ_INST_BadSeqIdFormat,    eErr_SEQ_INST_PartsOutOfOrder,    eErr_SEQ_INST_BadSecondaryAccn,    eErr_SEQ_INST_ZeroGiNumber,    eErr_SEQ_INST_RnaDnaConflict,    eErr_SEQ_INST_HistoryGiCollision,    eErr_SEQ_INST_GiWithoutAccession,    eErr_SEQ_INST_MultipleAccessions,    eErr_SEQ_INST_HistAssemblyMissing,    eErr_SEQ_INST_TerminalNs,    eErr_SEQ_INST_UnexpectedIdentifierChange,    eErr_SEQ_INST_InternalNsInSeqLit,    eErr_SEQ_INST_SeqLitGapLength0,    eErr_SEQ_INST_TpaAssmeblyProblem,    eErr_SEQ_INST_SeqLocLength,    eErr_SEQ_DESCR_BioSourceMissing,    eErr_SEQ_DESCR_InvalidForType,    eErr_SEQ_DESCR_FileOpenCollision,    eErr_SEQ_DESCR_Unknown,    eErr_SEQ_DESCR_NoPubFound,    eErr_SEQ_DESCR_NoOrgFound,    eErr_SEQ_DESCR_MultipleBioSources,    eErr_SEQ_DESCR_NoMolInfoFound,    eErr_SEQ_DESCR_BadCountryCode,    eErr_SEQ_DESCR_NoTaxonID,    eErr_SEQ_DESCR_InconsistentBioSources,    eErr_SEQ_DESCR_MissingLineage,    eErr_SEQ_DESCR_SerialInComment,    eErr_SEQ_DESCR_BioSourceNeedsFocus,    eErr_SEQ_DESCR_BadOrganelle,    eErr_SEQ_DESCR_MultipleChromosomes,    eErr_SEQ_DESCR_BadSubSource,    eErr_SEQ_DESCR_BadOrgMod,    eErr_SEQ_DESCR_InconsistentProteinTitle,    eErr_SEQ_DESCR_Inconsistent,    eErr_SEQ_DESCR_ObsoleteSourceLocation,    eErr_SEQ_DESCR_ObsoleteSourceQual,    eErr_SEQ_DESCR_StructuredSourceNote,    eErr_SEQ_DESCR_MultipleTitles,    eErr_SEQ_DESCR_Obsolete,    eErr_SEQ_DESCR_UnnecessaryBioSourceFocus,    eErr_SEQ_DESCR_RefGeneTrackingWithoutStatus,    eErr_SEQ_DESCR_UnwantedCompleteFlag,    eErr_GENERIC_NonAsciiAsn,    eErr_GENERIC_Spell,    eErr_GENERIC_AuthorListHasEtAl,    eErr_GENERIC_MissingPubInfo,    eErr_GENERIC_UnnecessaryPubEquiv,    eErr_GENERIC_BadPageNumbering,    eErr_SEQ_PKG_NoCdRegionPtr,    eErr_SEQ_PKG_NucProtProblem,    eErr_SEQ_PKG_SegSetProblem,    eErr_SEQ_PKG_EmptySet,    eErr_SEQ_PKG_NucProtNotSegSet,    eErr_SEQ_PKG_SegSetNotParts,    eErr_SEQ_PKG_SegSetMixedBioseqs,    eErr_SEQ_PKG_PartsSetMixedBioseqs,    eErr_SEQ_PKG_PartsSetHasSets,    eErr_SEQ_PKG_FeaturePackagingProblem,    eErr_SEQ_PKG_GenomicProductPackagingProblem,    eErr_SEQ_PKG_InconsistentMolInfoBiomols,    eErr_SEQ_PKG_GraphPackagingProblem,    eErr_SEQ_FEAT_InvalidForType,    eErr_SEQ_FEAT_PartialProblem,    eErr_SEQ_FEAT_PartialsInconsistent,    eErr_SEQ_FEAT_InvalidType,    eErr_SEQ_FEAT_Range,    eErr_SEQ_FEAT_MixedStrand,    eErr_SEQ_FEAT_SeqLocOrder,    eErr_SEQ_FEAT_CdTransFail,    eErr_SEQ_FEAT_StartCodon,    eErr_SEQ_FEAT_InternalStop,    eErr_SEQ_FEAT_NoProtein,    eErr_SEQ_FEAT_MisMatchAA,    eErr_SEQ_FEAT_TransLen,    eErr_SEQ_FEAT_NoStop,    eErr_SEQ_FEAT_TranslExcept,    eErr_SEQ_FEAT_NoProtRefFound,    eErr_SEQ_FEAT_NotSpliceConsensus,    eErr_SEQ_FEAT_OrfCdsHasProduct,    eErr_SEQ_FEAT_GeneRefHasNoData,    eErr_SEQ_FEAT_ExceptInconsistent,    eErr_SEQ_FEAT_ProtRefHasNoData,    eErr_SEQ_FEAT_GenCodeMismatch,    eErr_SEQ_FEAT_RNAtype0,    eErr_SEQ_FEAT_UnknownImpFeatKey,    eErr_SEQ_FEAT_UnknownImpFeatQual,    eErr_SEQ_FEAT_WrongQualOnImpFeat,    eErr_SEQ_FEAT_MissingQualOnImpFeat,    eErr_SEQ_FEAT_PsuedoCdsHasProduct,    eErr_SEQ_FEAT_IllegalDbXref,    eErr_SEQ_FEAT_FarLocation,    eErr_SEQ_FEAT_DuplicateFeat,    eErr_SEQ_FEAT_UnnecessaryGeneXref,    eErr_SEQ_FEAT_TranslExceptPhase,    eErr_SEQ_FEAT_TrnaCodonWrong,    eErr_SEQ_FEAT_BadTrnaAA,    eErr_SEQ_FEAT_BothStrands,    eErr_SEQ_FEAT_CDSgeneRange,    eErr_SEQ_FEAT_CDSmRNArange,    eErr_SEQ_FEAT_OverlappingPeptideFeat,    eErr_SEQ_FEAT_SerialInComment,    eErr_SEQ_FEAT_MultipleCDSproducts,    eErr_SEQ_FEAT_FocusOnBioSourceFeature,    eErr_SEQ_FEAT_PeptideFeatOutOfFrame,    eErr_SEQ_FEAT_InvalidQualifierValue,    eErr_SEQ_FEAT_MultipleMRNAproducts,    eErr_SEQ_FEAT_mRNAgeneRange,    eErr_SEQ_FEAT_TranscriptLen,    eErr_SEQ_FEAT_TranscriptMismatches,    eErr_SEQ_FEAT_CDSproductPackagingProblem,    eErr_SEQ_FEAT_DuplicateInterval,    eErr_SEQ_FEAT_PolyAsiteNotPoint,    eErr_SEQ_FEAT_ImpFeatBadLoc,    eErr_SEQ_FEAT_LocOnSegmentedBioseq,    eErr_SEQ_FEAT_UnnecessaryCitPubEquiv,    eErr_SEQ_FEAT_ImpCDShasTranslation,    eErr_SEQ_FEAT_ImpCDSnotPseudo,    eErr_SEQ_FEAT_MissingMRNAproduct,    eErr_SEQ_FEAT_AbuttingIntervals,    eErr_SEQ_FEAT_CollidingGeneNames,    eErr_SEQ_FEAT_CollidingLocusTags,    eErr_SEQ_FEAT_MultiIntervalGene,    eErr_SEQ_FEAT_FeatContentDup,    eErr_SEQ_FEAT_BadProductSeqId,    eErr_SEQ_FEAT_RnaProductMismatch,    eErr_SEQ_FEAT_DifferntIdTypesInSeqLoc,    eErr_SEQ_FEAT_MissingCDSproduct,    eErr_SEQ_FEAT_MissingLocation,    eErr_SEQ_FEAT_OnlyGeneXrefs,    eErr_SEQ_FEAT_UTRdoesNotAbutCDS,    eErr_SEQ_FEAT_MultipleCdsOnMrna,    eErr_SEQ_FEAT_BadConflictFlag,    eErr_SEQ_FEAT_ConflictFlagSet,    eErr_SEQ_FEAT_LocusTagProblem,    eErr_SEQ_FEAT_AltStartCodon,    eErr_SEQ_FEAT_GenesInconsistent,    eErr_SEQ_ALIGN_SeqIdProblem,    eErr_SEQ_ALIGN_StrandRev,    eErr_SEQ_ALIGN_DensegLenStart,    eErr_SEQ_ALIGN_StartMorethanBiolen,    eErr_SEQ_ALIGN_EndMorethanBiolen,    eErr_SEQ_ALIGN_LenMorethanBiolen,    eErr_SEQ_ALIGN_SumLenStart,    eErr_SEQ_ALIGN_SegsDimMismatch,    eErr_SEQ_ALIGN_SegsNumsegMismatch,    eErr_SEQ_ALIGN_SegsStartsMismatch,    eErr_SEQ_ALIGN_SegsPresentMismatch,    eErr_SEQ_ALIGN_SegsPresentStartsMismatch,    eErr_SEQ_ALIGN_SegsPresentStrandsMismatch,    eErr_SEQ_ALIGN_FastaLike,    eErr_SEQ_ALIGN_SegmentGap,    eErr_SEQ_ALIGN_SegsInvalidDim,    eErr_SEQ_ALIGN_Segtype,    eErr_SEQ_ALIGN_BlastAligns,    eErr_SEQ_GRAPH_GraphMin,    eErr_SEQ_GRAPH_GraphMax,    eErr_SEQ_GRAPH_GraphBelow,    eErr_SEQ_GRAPH_GraphAbove,    eErr_SEQ_GRAPH_GraphByteLen,    eErr_SEQ_GRAPH_GraphOutOfOrder,    eErr_SEQ_GRAPH_GraphBioseqLen,    eErr_SEQ_GRAPH_GraphSeqLitLen,    eErr_SEQ_GRAPH_GraphSeqLocLen,    eErr_SEQ_GRAPH_GraphStartPhase,    eErr_SEQ_GRAPH_GraphStopPhase,    eErr_SEQ_GRAPH_GraphDiffNumber,    eErr_SEQ_GRAPH_GraphACGTScore,    eErr_SEQ_GRAPH_GraphNScore,    eErr_SEQ_GRAPH_GraphGapScore,    eErr_SEQ_GRAPH_GraphOverlap,    eErr_Internal_Exception,    eErr_UNKNOWN};// =============================================================================//                            Validation classes                          // =============================================================================// ===========================  Central Validation  ==========================// CValidError_imp provides the entry point to the validation process.// It calls upon the various validation classes to perform validation of// each part.// The class holds all the data for the validation process. class CValidError_imp{public:    // Interface to be used by the CValidError class    // Constructor & Destructor    CValidError_imp(CObjectManager& objmgr, CValidError* errors,         Uint4 options = 0);    virtual ~CValidError_imp(void);    // Validation methods    bool Validate(const CSeq_entry& se, const CCit_sub* cs = 0,        CScope* scope = 0);    void Validate(const CSeq_submit& ss, CScope* scope = 0);    void Validate(const CSeq_annot& sa, CScope* scope = 0);    void SetProgressCallback(CValidator::TProgressCallback callback,        void* user_data);public:    // interface to be used by the various validation classes    // typedefs:    typedef const CSeq_feat& TFeat;    typedef const CBioseq& TBioseq;    typedef const CBioseq_set& TSet;    typedef const CSeqdesc& TDesc;    typedef const CSeq_annot& TAnnot;    typedef const CSeq_graph& TGraph;    typedef const CSeq_align& TAlign;    typedef const CSeq_entry& TEntry;    typedef const CSeq_feat::TDbxref TDbtags;    typedef map < const CSeq_feat*, const CSeq_annot* >& TFeatAnnotMap;    // Posts errors.    void PostErr(EDiagSev sv, EErrType et, const string& msg,        const CSerialObject& obj);    void PostErr(EDiagSev sv, EErrType et, const string& msg, TDesc ds);    void PostErr(EDiagSev sv, EErrType et, const string& msg, TFeat ft);    void PostErr(EDiagSev sv, EErrType et, const string& msg, TBioseq sq);    void PostErr(EDiagSev sv, EErrType et, const string& msg, TBioseq sq,        TDesc ds);    void PostErr(EDiagSev sv, EErrType et, const string& msg, TSet set);    void PostErr(EDiagSev sv, EErrType et, const string& msg, TSet set,         TDesc ds);    void PostErr(EDiagSev sv, EErrType et, const string& msg, TAnnot annot);    void PostErr(EDiagSev sv, EErrType et, const string& msg, TGraph graph);    void PostErr(EDiagSev sv, EErrType et, const string& msg, TBioseq sq,        TGraph graph);    void PostErr(EDiagSev sv, EErrType et, const string& msg, TAlign align);    void PostErr(EDiagSev sv, EErrType et, const string& msg, TEntry entry);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?