genbank_formatter.cpp
来自「ncbi源码」· C++ 代码 · 共 757 行 · 第 1/2 页
CPP
757 行
Wrap(l, "AUTHORS", auth, eSubp);}void CGenbankFormatter::x_Consortium(list<string>& l, const CReferenceItem& ref, CBioseqContext& ctx) const{ Wrap(l, "CONSRTM", ref.GetConsortium(), eSubp);}void CGenbankFormatter::x_Title(list<string>& l, const CReferenceItem& ref, CBioseqContext& ctx) const{ string title = ref.GetTitle(); if ( NStr::EndsWith(title, ".") ) { title.erase(title.length() - 1); } Wrap(l, "TITLE", title, eSubp);}void CGenbankFormatter::x_Journal(list<string>& l, const CReferenceItem& ref, CBioseqContext& ctx) const{ string journal; x_FormatRefJournal(journal, ref); Wrap(l, "JOURNAL", journal, eSubp);}void CGenbankFormatter::x_Medline(list<string>& l, const CReferenceItem& ref, CBioseqContext& ctx) const{ if ( ref.GetMUID() != 0 ) { Wrap(l, GetWidth(), "MEDLINE", NStr::IntToString(ref.GetMUID()), eSubp); }}void CGenbankFormatter::x_Pubmed(list<string>& l, const CReferenceItem& ref, CBioseqContext& ctx) const{ if ( ref.GetPMID() != 0 ) { Wrap(l, " PUBMED", NStr::IntToString(ref.GetPMID()), eSubp); }}void CGenbankFormatter::x_Remark(list<string>& l, const CReferenceItem& ref, CBioseqContext& ctx) const{ Wrap(l, "REMARK", ref.GetRemark(), eSubp);}/////////////////////////////////////////////////////////////////////////////// COMMENTvoid CGenbankFormatter::FormatComment(const CCommentItem& comment, IFlatTextOStream& text_os){ list<string> l; if ( !comment.IsFirst() ) { Wrap(l, kEmptyStr, comment.GetComment(), eSubp); } else { Wrap(l, "COMMENT", comment.GetComment()); } text_os.AddParagraph(l);}/////////////////////////////////////////////////////////////////////////////// FEATURES// Fetures Headervoid CGenbankFormatter::FormatFeatHeader(const CFeatHeaderItem& fh, IFlatTextOStream& text_os){ list<string> l; Wrap(l, "FEATURES", "Location/Qualifiers", eFeatHead); text_os.AddParagraph(l);}void CGenbankFormatter::FormatFeature(const CFeatureItemBase& f, IFlatTextOStream& text_os){ CConstRef<CFlatFeature> feat = f.Format(); list<string> l; Wrap(l, feat->GetKey(), feat->GetLoc().GetString(), eFeat); ITERATE (vector<CRef<CFormatQual> >, it, feat->GetQuals()) { string qual = '/' + (*it)->GetName(), value = (*it)->GetValue(); switch ((*it)->GetStyle()) { case CFormatQual::eEmpty: value = qual; qual.erase(); break; case CFormatQual::eQuoted: qual += "=\""; value += '"'; break; case CFormatQual::eUnquoted: qual += '='; break; } // Call NStr::Wrap directly to avoid unwanted line breaks right // before the start of the value (in /translation, e.g.) NStr::Wrap(value, GetWidth(), l, /*DoHTML() ? NStr::fWrap_HTMLPre : */0, GetFeatIndent(), GetFeatIndent() + qual); } text_os.AddParagraph(l);}/////////////////////////////////////////////////////////////////////////////// BASE COUNTvoid CGenbankFormatter::FormatBasecount(const CBaseCountItem& bc, IFlatTextOStream& text_os){ list<string> l; CNcbiOstrstream bc_line; bc_line.setf(IOS_BASE::right, IOS_BASE::adjustfield); bc_line << setw(7) << bc.GetA() << " a" << setw(7) << bc.GetC() << " c" << setw(7) << bc.GetG() << " g" << setw(7) << bc.GetT() << " t"; if ( bc.GetOther() > 0 ) { bc_line << setw(7) << bc.GetOther() << " others"; } Wrap(l, "BASE COUNT", CNcbiOstrstreamToString(bc_line)); text_os.AddParagraph(l);}/////////////////////////////////////////////////////////////////////////////// SEQUENCEvoid CGenbankFormatter::FormatSequence(const CSequenceItem& seq, IFlatTextOStream& text_os){ list<string> l; CNcbiOstrstream seq_line; const CSeqVector& vec = seq.GetSequence(); TSeqPos base_count = seq.GetFrom(); CSeqVector::const_iterator iter = vec.begin(); while ( iter ) { seq_line.setf(IOS_BASE::right, IOS_BASE::adjustfield); seq_line << setw(9) << base_count; for ( TSeqPos count = 0; count < 60 && iter; ++count, ++iter, ++base_count ) { if ( count % 10 == 0 ) { seq_line << ' '; } seq_line << (char)tolower(*iter); } seq_line << '\n'; } NStr::Split(CNcbiOstrstreamToString(seq_line), "\n", l); text_os.AddParagraph(l);}/////////////////////////////////////////////////////////////////////////////// DBSOURCEvoid CGenbankFormatter::FormatDBSource(const CDBSourceItem& dbs, IFlatTextOStream& text_os){ list<string> l; if ( !dbs.GetDBSource().empty() ) { string tag = "DBSOURCE"; ITERATE (list<string>, it, dbs.GetDBSource()) { Wrap(l, tag, *it); tag.erase(); } if ( !l.empty() ) { text_os.AddParagraph(l); } } }/////////////////////////////////////////////////////////////////////////////// WGSvoid CGenbankFormatter::FormatWGS(const CWGSItem& wgs, IFlatTextOStream& text_os){ string tag; switch ( wgs.GetType() ) { case CWGSItem::eWGS_Projects: tag = "WGS"; break; case CWGSItem::eWGS_ScaffoldList: tag = "WGS_SCAFLD"; break; case CWGSItem::eWGS_ContigList: tag = "WGS_CONTIG"; break; default: return; } list<string> l; if ( wgs.GetFirstID() == wgs.GetLastID() ) { Wrap(l, tag, wgs.GetFirstID()); } else { Wrap(l, tag, wgs.GetFirstID() + "-" + wgs.GetLastID()); } text_os.AddParagraph(l);}/////////////////////////////////////////////////////////////////////////////// PRIMARYvoid CGenbankFormatter::FormatPrimary(const CPrimaryItem& primary, IFlatTextOStream& text_os){ list<string> l; Wrap(l, "PRIMARY", primary.GetString()); text_os.AddParagraph(l);}/////////////////////////////////////////////////////////////////////////////// GENOMEvoid CGenbankFormatter::FormatGenome(const CGenomeItem& genome, IFlatTextOStream& text_os){ // !!!}/////////////////////////////////////////////////////////////////////////////// CONTIGvoid CGenbankFormatter::FormatContig(const CContigItem& contig, IFlatTextOStream& text_os){ list<string> l; string assembly = CFlatSeqLoc(contig.GetLoc(), *contig.GetContext(), CFlatSeqLoc::eType_assembly).GetString(); Wrap(l, "CONTIG", assembly); text_os.AddParagraph(l);}/////////////////////////////////////////////////////////////////////////////// ORIGINvoid CGenbankFormatter::FormatOrigin(const COriginItem& origin, IFlatTextOStream& text_os){ list<string> l; if ( origin.GetOrigin().empty() ) { l.push_back("ORIGIN "); } else { Wrap(l, "ORIGIN", origin.GetOrigin()); } text_os.AddParagraph(l);}END_SCOPE(objects)END_NCBI_SCOPE/** ===========================================================================** $Log: genbank_formatter.cpp,v $* Revision 1000.2 2004/06/01 19:44:37 gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.14** Revision 1.14 2004/05/21 21:42:54 gorelenk* Added PCH ncbi_pch.hpp** Revision 1.13 2004/05/06 17:53:12 shomrat* CFlatQual -> CFormatQual** Revision 1.12 2004/04/22 15:59:59 shomrat* Changes in context** Revision 1.11 2004/04/13 16:47:53 shomrat* Journal formatting moved to base class** Revision 1.10 2004/03/26 17:25:36 shomrat* fixes to reference formatting** Revision 1.9 2004/03/18 15:40:28 shomrat* Fixes to COMMENT formatting** Revision 1.8 2004/03/10 21:29:01 shomrat* Fix VERSION formatting when empty** Revision 1.7 2004/03/05 18:46:05 shomrat* fixed formatting of empty qualifier** Revision 1.6 2004/02/19 18:13:12 shomrat* Added formatting of Contig and Origin** Revision 1.5 2004/01/14 16:16:39 shomrat* removed const; using ctrl_items** Revision 1.4 2003/12/19 00:14:44 ucko* Eliminate remaining uses of LEFT and RIGHT manipulators.** Revision 1.3 2003/12/18 21:23:41 ucko* Avoid using LEFT and RIGHT manipulators lacking in GCC 2.9x.** Revision 1.2 2003/12/18 17:43:34 shomrat* context.hpp moved** Revision 1.1 2003/12/17 20:22:12 shomrat* Initial Revision (adapted from flat lib)*** ===========================================================================*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?