📄 seq_id_tree.hpp
字号:
class CSeq_id_GB_Tree : public CSeq_id_Textseq_Tree{protected: virtual bool x_Check(const CSeq_id& id) const; virtual const CTextseq_id& x_Get(const CSeq_id& id) const;};////////////////////////////////////////////////////////////////////// Pir treeclass CSeq_id_Pir_Tree : public CSeq_id_Textseq_Tree{protected: virtual bool x_Check(const CSeq_id& id) const; virtual const CTextseq_id& x_Get(const CSeq_id& id) const;};////////////////////////////////////////////////////////////////////// Swissprotclass CSeq_id_Swissprot_Tree : public CSeq_id_Textseq_Tree{protected: virtual bool x_Check(const CSeq_id& id) const; virtual const CTextseq_id& x_Get(const CSeq_id& id) const;};////////////////////////////////////////////////////////////////////// Prf treeclass CSeq_id_Prf_Tree : public CSeq_id_Textseq_Tree{protected: virtual bool x_Check(const CSeq_id& id) const; virtual const CTextseq_id& x_Get(const CSeq_id& id) const;};////////////////////////////////////////////////////////////////////// Tpg treeclass CSeq_id_Tpg_Tree : public CSeq_id_Textseq_Tree{protected: virtual bool x_Check(const CSeq_id& id) const; virtual const CTextseq_id& x_Get(const CSeq_id& id) const;};////////////////////////////////////////////////////////////////////// Tpe treeclass CSeq_id_Tpe_Tree : public CSeq_id_Textseq_Tree{protected: virtual bool x_Check(const CSeq_id& id) const; virtual const CTextseq_id& x_Get(const CSeq_id& id) const;};////////////////////////////////////////////////////////////////////// Tpd treeclass CSeq_id_Tpd_Tree : public CSeq_id_Textseq_Tree{protected: virtual bool x_Check(const CSeq_id& id) const; virtual const CTextseq_id& x_Get(const CSeq_id& id) const;};////////////////////////////////////////////////////////////////////// Other treeclass CSeq_id_Other_Tree : public CSeq_id_Textseq_Tree{protected: virtual bool x_Check(const CSeq_id& id) const; virtual const CTextseq_id& x_Get(const CSeq_id& id) const;};////////////////////////////////////////////////////////////////////// e_Local treeclass CSeq_id_Local_Tree : public CSeq_id_Which_Tree{public: CSeq_id_Local_Tree(void); ~CSeq_id_Local_Tree(void); virtual bool Empty(void) const; virtual CSeq_id_Handle FindInfo(const CSeq_id& id) const; virtual CSeq_id_Handle FindOrCreate(const CSeq_id& id); virtual bool HaveMatch(const CSeq_id_Handle& id) const; virtual void FindMatch(const CSeq_id_Handle& id, TSeq_id_MatchList& id_list) const; virtual void FindMatchStr(string sid, TSeq_id_MatchList& id_list) const;private: virtual void x_Unindex(const CSeq_id_Info* info); CSeq_id_Info* x_FindInfo(const CObject_id& oid) const; typedef map<string, CSeq_id_Info*, PNocase> TByStr; typedef map<int, CSeq_id_Info*> TById; TByStr m_ByStr; TById m_ById;};////////////////////////////////////////////////////////////////////// e_General treeclass CSeq_id_General_Tree : public CSeq_id_Which_Tree{public: CSeq_id_General_Tree(void); ~CSeq_id_General_Tree(void); virtual bool Empty(void) const; virtual CSeq_id_Handle FindInfo(const CSeq_id& id) const; virtual CSeq_id_Handle FindOrCreate(const CSeq_id& id); virtual bool HaveMatch(const CSeq_id_Handle& id) const; virtual void FindMatch(const CSeq_id_Handle& id, TSeq_id_MatchList& id_list) const; virtual void FindMatchStr(string sid, TSeq_id_MatchList& id_list) const;private: virtual void x_Unindex(const CSeq_id_Info* info); CSeq_id_Info* x_FindInfo(const CDbtag& dbid) const; struct STagMap { public: typedef map<string, CSeq_id_Info*, PNocase> TByStr; typedef map<int, CSeq_id_Info*> TById; TByStr m_ByStr; TById m_ById; }; typedef map<string, STagMap, PNocase> TDbMap; TDbMap m_DbMap;};////////////////////////////////////////////////////////////////////// e_Giim treeclass CSeq_id_Giim_Tree : public CSeq_id_Which_Tree{public: CSeq_id_Giim_Tree(void); ~CSeq_id_Giim_Tree(void); virtual bool Empty(void) const; virtual CSeq_id_Handle FindInfo(const CSeq_id& id) const; virtual CSeq_id_Handle FindOrCreate(const CSeq_id& id); virtual bool HaveMatch(const CSeq_id_Handle& ) const; virtual void FindMatch(const CSeq_id_Handle& id, TSeq_id_MatchList& id_list) const; virtual void FindMatchStr(string sid, TSeq_id_MatchList& id_list) const;private: virtual void x_Unindex(const CSeq_id_Info* info); CSeq_id_Info* x_FindInfo(const CGiimport_id& gid) const; // 2-level indexing: first by Id, second by Db+Release typedef vector<CSeq_id_Info*> TGiimList; typedef map<int, TGiimList> TIdMap; TIdMap m_IdMap;};////////////////////////////////////////////////////////////////////// e_Patent treeclass CSeq_id_Patent_Tree : public CSeq_id_Which_Tree{public: CSeq_id_Patent_Tree(void); ~CSeq_id_Patent_Tree(void); virtual bool Empty(void) const; virtual CSeq_id_Handle FindInfo(const CSeq_id& id) const; virtual CSeq_id_Handle FindOrCreate(const CSeq_id& id); virtual bool HaveMatch(const CSeq_id_Handle& ) const; virtual void FindMatch(const CSeq_id_Handle& id, TSeq_id_MatchList& id_list) const; virtual void FindMatchStr(string sid, TSeq_id_MatchList& id_list) const;private: virtual void x_Unindex(const CSeq_id_Info* info); CSeq_id_Info* x_FindInfo(const CPatent_seq_id& pid) const; // 3-level indexing: country, (number|app_number), seqid. // Ignoring patent doc-type in indexing. struct SPat_idMap { typedef map<int, CSeq_id_Info*> TBySeqid; typedef map<string, TBySeqid, PNocase> TByNumber; // or by App_number TByNumber m_ByNumber; TByNumber m_ByApp_number; }; typedef map<string, SPat_idMap, PNocase> TByCountry; TByCountry m_CountryMap;};////////////////////////////////////////////////////////////////////// e_PDB treeclass CSeq_id_PDB_Tree : public CSeq_id_Which_Tree{public: CSeq_id_PDB_Tree(void); ~CSeq_id_PDB_Tree(void); virtual bool Empty(void) const; virtual CSeq_id_Handle FindInfo(const CSeq_id& id) const; virtual CSeq_id_Handle FindOrCreate(const CSeq_id& id); virtual void FindMatch(const CSeq_id_Handle& id, TSeq_id_MatchList& id_list) const; virtual void FindMatchStr(string sid, TSeq_id_MatchList& id_list) const;private: virtual void x_Unindex(const CSeq_id_Info* info); CSeq_id_Info* x_FindInfo(const CPDB_seq_id& pid) const; string x_IdToStrKey(const CPDB_seq_id& id) const; // Index by mol+chain, no date - too complicated typedef vector<CSeq_id_Info*> TSubMolList; typedef map<string, TSubMolList, PNocase> TMolMap; TMolMap m_MolMap;};///////////////////////////////////////////////////////////////////////////////// Inline methods///////////////////////////////////////////////////////////////////////////////END_SCOPE(objects)END_NCBI_SCOPE/** ---------------------------------------------------------------------------* $Log: seq_id_tree.hpp,v $* Revision 1000.1 2004/04/12 17:28:34 gouriano* PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.5** Revision 1.5 2004/02/19 17:25:34 vasilche* Use CRef<> to safely hold pointer to CSeq_id_Info.* CSeq_id_Info holds pointer to owner CSeq_id_Which_Tree.* Reduce number of calls to CSeq_id_Handle.GetSeqId().** Revision 1.4 2004/02/10 21:15:15 grichenk* Added reverse ID matching.** Revision 1.3 2004/01/08 02:49:11 ucko* Make m_TreeLock a recursive mutex, as CSeq_id_Textseq_Tree can no* longer safely use a fast mutex.** Revision 1.2 2003/09/30 16:22:01 vasilche* Updated internal object manager classes to be able to load ID2 data.* SNP blobs are loaded as ID2 split blobs - readers convert them automatically.* Scope caches results of requests for data to data loaders.* Optimized CSeq_id_Handle for gis.* Optimized bioseq lookup in scope.* Reduced object allocations in annotation iterators.* CScope is allowed to be destroyed before other objects using this scope are* deleted (feature iterators, bioseq handles etc).* Optimized lookup for matching Seq-ids in CSeq_id_Mapper.* Added 'adaptive' option to objmgr_demo application.** Revision 1.1 2003/06/10 19:06:35 vasilche* Simplified CSeq_id_Mapper and CSeq_id_Handle.*** ===========================================================================*/#endif /* OBJECTS_OBJMGR___SEQ_ID_TREE__HPP */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -