utilities.cpp
来自「ncbi源码」· C++ 代码 · 共 1,229 行 · 第 1/4 页
CPP
1,229 行
"North Korea", "Northern Mariana Islands", "Norway", "Oman", "Pakistan", "Palau", "Palmyra Atoll", "Panama", "Papua New Guinea", "Paracel Islands", "Paraguay", "Peru", "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar", "Republic of the Congo", "Reunion", "Romania", "Russia", "Rwanda", "Saint Helena", "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon", "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia and Montenegro", "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea", "Spain", "Spratly Islands", "Sri Lanka", "Sudan", "Suriname", "Svalbard", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tromelin Island", "Tunisia", "Turkey", "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "Uruguay", "USA", "Uzbekistan", "Vanuatu", "Venezuela", "Viet Nam", "Virgin Islands", "Wake Island", "Wallis and Futuna", "West Bank", "Western Sahara", "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"};bool CCountries::IsValid(const string& country){ string name = country; size_t pos = country.find(':'); if ( pos != string::npos ) { name = country.substr(0, pos); } const string *begin = sm_Countries; const string *end = &(sm_Countries[sizeof(sm_Countries) / sizeof(string)]); if ( find (begin, end, name) == end ) { return false; } return true;}// =============================================================================// Functions// =============================================================================bool IsClassInEntry(const CSeq_entry& se, CBioseq_set::EClass clss){ for ( CTypeConstIterator <CBioseq_set> si(se); si; ++si ) { if ( si->GetClass() == clss ) { return true; } } return false;}bool IsDeltaOrFarSeg(const CSeq_loc& loc, CScope* scope){ CBioseq_Handle bsh = scope->GetBioseqHandle(loc); const CSeq_entry& se = bsh.GetTopLevelSeqEntry(); if ( bsh.IsSetInst_Repr() ) { CBioseq_Handle::TInst::TRepr repr = bsh.GetInst_Repr(); if ( repr == CSeq_inst::eRepr_delta ) { if ( !IsClassInEntry(se, CBioseq_set::eClass_nuc_prot) ) { return true; } } if ( repr == CSeq_inst::eRepr_seg ) { if ( !IsClassInEntry(se, CBioseq_set::eClass_parts) ) { return true; } } } return false;}// Check if string is either empty or contains just white spacesbool IsBlankString(const string& str){ if ( !str.empty() ) { size_t len = str.length(); for ( size_t i = 0; i < len; ++i ) { if ( !isspace(str[i]) ) { return false; } } } return true;}bool IsBlankStringList(const list< string >& str_list){ ITERATE( list< string >, str, str_list ) { if ( !IsBlankString(*str) ) { return false; } } return true;}int GetGIForSeqId(const CSeq_id& id){ return 0; //return CID1Client().AskGetgi(id);}list< CRef< CSeq_id > > GetSeqIdsForGI(int gi){ return list< CRef< CSeq_id > >(); //return CID1Client().AskGetseqidsfromgi(gi);}CSeqVector GetSequenceFromLoc(const CSeq_loc& loc, CScope& scope, CBioseq_Handle::EVectorCoding coding){ CConstRef<CSeqMap> map = CSeqMap::CreateSeqMapForSeq_loc(loc, &scope); ENa_strand strand = sequence::GetStrand(loc, &scope); return CSeqVector(map, scope, coding, strand);}CSeqVector GetSequenceFromFeature(const CSeq_feat& feat, CScope& scope, CBioseq_Handle::EVectorCoding coding, bool product){ if ( (product && !feat.CanGetProduct()) || (!product && !feat.CanGetLocation()) ) { return CSeqVector(); } const CSeq_loc* loc = product ? &feat.GetProduct() : &feat.GetLocation(); return GetSequenceFromLoc(*loc, scope, coding);}END_SCOPE(validator)END_SCOPE(objects)END_NCBI_SCOPE/** ===========================================================================** $Log: utilities.cpp,v $* Revision 1000.2 2004/06/01 19:47:34 gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.20** Revision 1.20 2004/05/21 21:42:56 gorelenk* Added PCH ncbi_pch.hpp** Revision 1.19 2004/04/23 16:24:53 shomrat* Stop using CBioseq_Handle deprecated interface** Revision 1.18 2003/11/12 20:30:23 shomrat* added East Timor to the legal country codes** Revision 1.17 2003/10/27 14:15:57 shomrat* added utility functions for retrieving sequence under Seq-loc or Seq-feat** Revision 1.16 2003/07/22 16:35:35 shomrat* Added Kerguelen Archipelago to the countries list** Revision 1.15 2003/06/16 16:17:11 shomrat* IsResidue moved to .hpp file as an inline function** Revision 1.14 2003/06/02 16:06:43 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.13 2003/05/28 16:20:59 shomrat* Corrections to feature-gbqual associations** Revision 1.12 2003/05/02 21:10:16 shomrat* Serbia and Montenegro restored to list of countries, but Yugoslavia also remains** Revision 1.11 2003/04/24 16:16:00 vasilche* Added missing includes and forward class declarations.** Revision 1.10 2003/03/31 14:41:34 shomrat* $id: -> $id$** Revision 1.9 2003/03/28 16:25:56 shomrat* Added IsResidue** Revision 1.8 2003/03/24 14:41:39 shomrat* Removed direct calls to ID1, temporary implementation for GetGIForSeqId and getSeqIdsForGI** Revision 1.7 2003/03/21 16:19:21 shomrat* Added GetGiForSeqId and GetSeqIdsForGI** Revision 1.6 2003/03/11 16:04:09 kuznets* iterate -> ITERATE** Revision 1.5 2003/02/07 21:04:10 shomrat* Added transposon as a legal qual for repeat_region** Revision 1.4 2003/01/21 19:45:55 shomrat* Added IsBlankString and IsBlankStringList** Revision 1.3 2003/01/06 16:38:03 shomrat* ASSOCIATE macro replaced with function to overcome a bug in GCC compiler** Revision 1.2 2002/12/24 16:50:15 shomrat* Removal of redundant GBQual types** Revision 1.1 2002/12/23 20:13:18 shomrat* Initial submission after splitting former implementation*** ===========================================================================*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?