context.cpp
来自「ncbi源码」· C++ 代码 · 共 601 行 · 第 1/2 页
CPP
601 行
(len == 13 && NStr::EndsWith(acc, "0000000")); if ( m_IsWGSMaster ) { m_WGSMasterAccn = acc; m_WGSMasterName = tsip->CanGetName() ? tsip->GetName() : kEmptyStr; } } // GBB source m_ShowGBBSource = m_ShowGBBSource || ((acc_type & CSeq_id::eAcc_gsdb_dirsub) != 0); }}CSeq_inst::TRepr CBioseqContext::x_GetRepr(void) const{ return m_Handle.IsSetInst_Repr() ? m_Handle.GetInst_Repr() : CSeq_inst::eRepr_not_set;}const CMolInfo* CBioseqContext::x_GetMolInfo(void) const{ CSeqdesc_CI desc(m_Handle, CSeqdesc::e_Molinfo); return desc ? &desc->GetMolinfo() : 0;}bool CBioseqContext::x_IsPart() const{ if ( m_Repr == CSeq_inst::eRepr_raw || m_Repr == CSeq_inst::eRepr_const || m_Repr == CSeq_inst::eRepr_delta || m_Repr == CSeq_inst::eRepr_virtual ) { CSeq_entry_Handle eh = m_Handle.GetParentEntry(); _ASSERT(eh && eh.IsSeq()); eh = eh.GetParentEntry(); if ( eh && eh.IsSet() ) { CBioseq_set_Handle bsst = eh.GetSet(); if ( bsst.IsSetClass() && bsst.GetClass() == CBioseq_set::eClass_parts ) { return true; } } } return false;}bool CBioseqContext::x_HasParts(void) const{ _ASSERT(IsSegmented()); CSeq_entry_Handle h = m_Handle.GetExactComplexityLevel(CBioseq_set::eClass_segset); if ( !h ) { return false; } // make sure the segmented set contains our bioseq {{ bool has_seq = false; for ( CSeq_entry_CI it(h); it; ++it ) { if ( it->IsSeq() && it->GetSeq() == m_Handle ) { has_seq = true; break; } } if ( !has_seq ) { return false; } }} // find the parts set {{ for ( CSeq_entry_CI it(h); it; ++it ) { if ( it->IsSet() && it->GetSet().IsSetClass() && it->GetSet().GetClass() == CBioseq_set::eClass_parts ) { return true; } } }} return false;}bool CBioseqContext::x_IsDeltaLitOnly(void) const{ _ASSERT(IsDelta()); if ( m_Handle.IsSetInst_Ext() ) { const CBioseq_Handle::TInst_Ext& ext = m_Handle.GetInst_Ext(); if ( ext.IsDelta() ) { ITERATE (CDelta_ext::Tdata, it, ext.GetDelta().Get()) { if ( (*it)->IsLoc() ) { return false; } } } } return true;}SIZE_TYPE CBioseqContext::x_GetPartNumber(void){ return m_Master ? m_Master->GetPartNumber(m_Handle) : 0;}bool CBioseqContext::x_IsInGPS(void) const{ CSeq_entry_Handle e = m_Handle.GetExactComplexityLevel(CBioseq_set::eClass_gen_prod_set); return e;}bool CBioseqContext::x_IsInNucProt(void) const{ CSeq_entry_Handle e = m_Handle.GetExactComplexityLevel(CBioseq_set::eClass_nuc_prot); return e;}bool CBioseqContext::DoContigStyle(void) const{ const CFlatFileConfig& cfg = Config(); if ( cfg.IsStyleContig() ) { return true; } else if ( cfg.IsStyleNormal() ) { if ( (IsSegmented() && !HasParts()) || (IsDelta() && !IsDeltaLitOnly()) ) { return true; } } return false;}///////////////////////////////////////////////////////////////////////////////// CMasterContextCMasterContext::CMasterContext(const CBioseq_Handle& seq) : m_Handle(seq){ _ASSERT(seq); _ASSERT(seq.GetInst_Ext().IsSeg()); x_SetNumParts(); x_SetBaseName();}CMasterContext::~CMasterContext(void){}SIZE_TYPE CMasterContext::GetPartNumber(const CBioseq_Handle& part){ if ( !part ) { return 0; } CScope& scope = m_Handle.GetScope(); SIZE_TYPE serial = 1; ITERATE (CSeg_ext::Tdata, it, m_Handle.GetInst_Ext().GetSeg().Get()) { if ( (*it)->IsNull() ) { continue; } const CSeq_id& id = GetId(**it); CBioseq_Handle bsh = scope.GetBioseqHandleFromTSE(id, m_Handle); if ( bsh && bsh == part ) { return serial; } ++serial; } return 0;}void CMasterContext::x_SetNumParts(void){ SIZE_TYPE count = 0; // count only non-gap parts ITERATE (CSeg_ext::Tdata, it, m_Handle.GetInst_Ext().GetSeg().Get()) { if ( (*it)->IsNull() ) { continue; } ++count; } m_NumParts = count;}void CMasterContext::x_SetBaseName(void){ // !!!}END_SCOPE(objects)END_NCBI_SCOPE/** ===========================================================================** $Log: context.cpp,v $* Revision 1000.1 2004/06/01 19:43:52 gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.18** Revision 1.18 2004/05/21 21:42:54 gorelenk* Added PCH ncbi_pch.hpp** Revision 1.17 2004/05/08 12:11:39 dicuccio* Use CSeq_id::GetLabel() instead of GetSeqIdString()** Revision 1.16 2004/05/06 17:48:49 shomrat* + IsEMBL and IsInNucProt** Revision 1.15 2004/04/27 15:12:24 shomrat* Added logic for partial range formatting** Revision 1.14 2004/04/22 15:52:00 shomrat* Refactring of context** Revision 1.13 2004/03/31 17:15:09 shomrat* name changes** Revision 1.12 2004/03/26 17:23:38 shomrat* fixed initialization of m_IsWGS** Revision 1.11 2004/03/25 20:36:02 shomrat* Use handles** Revision 1.10 2004/03/24 18:57:04 vasilche* CBioseq_Handle::GetComplexityLevel() now returns CSeq_entry_Handle.** Revision 1.9 2004/03/18 15:36:26 shomrat* + new flag ShowFtableRefs** Revision 1.8 2004/03/10 21:25:42 shomrat* Fix m_RefseqInfo initialization** Revision 1.7 2004/03/05 18:46:26 shomrat* Added customization flags** Revision 1.6 2004/02/19 18:03:29 shomrat* changed implementation of GetPreferredSynonym** Revision 1.5 2004/02/11 22:49:04 shomrat* using types in flag file** Revision 1.4 2004/02/11 16:49:16 shomrat* added user customization flags** Revision 1.3 2004/01/14 16:09:04 shomrat* multiple changes (work in progress)** Revision 1.2 2003/12/18 17:43:31 shomrat* context.hpp moved** Revision 1.1 2003/12/17 20:18:44 shomrat* Initial Revision (adapted from flat lib)** Revision 1.4 2003/06/02 16:06:42 dicuccio* Rearranged src/objects/ subtree. This includes the following shifts:* - src/objects/asn2asn --> arc/app/asn2asn* - src/objects/testmedline --> src/objects/ncbimime/test* - src/objects/objmgr --> src/objmgr* - src/objects/util --> src/objmgr/util* - src/objects/alnmgr --> src/objtools/alnmgr* - src/objects/flat --> src/objtools/flat* - src/objects/validator --> src/objtools/validator* - src/objects/cddalignview --> src/objtools/cddalignview* In addition, libseq now includes six of the objects/seq... libs, and libmmdb* replaces the three libmmdb? libs.** Revision 1.3 2003/03/21 18:49:17 ucko* Turn most structs into (accessor-requiring) classes; replace some* formerly copied fields with pointers to the original data.** Revision 1.2 2003/03/11 15:37:51 kuznets* iterate -> ITERATE** Revision 1.1 2003/03/10 16:39:09 ucko* Initial check-in of new flat-file generator*** ===========================================================================*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?