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 + -
显示快捷键?