& commentID)
75 string(
"Structured comment for \"") +
77 "\" could not be matched to any input sequence.";
132 if(bioseq && !bioseq->
IsNa())
140matchedCommentIds.
insert(comment.m_id);
146 auto id= comment.m_id;
147 if(!
id|| matchedCommentIds.
find(
id) == matchedCommentIds.
end()) {
148 stringcommentId(
"[Unrecognized SeqID]");
149 if(
id&& id->IsLocal() && id->GetLocal().IsStr()) {
150commentId = comment.m_id->GetLocal().GetStr();
160 for(
const auto& new_desc : comments.m_descs)
162 boolappend_desc =
true;
167 for(
auto& desc : descr.
Set())
169 if(!desc->IsUser())
continue;
171 auto& user = desc->SetUser();
178append_desc =
false;
180 for(
const auto& field : new_desc->GetUser().GetData())
182user.SetFieldRef(field->GetLabel().GetStr())->SetValue(field->GetData().GetStr());
189add_desc->Assign(*new_desc);
190descr.
Set().push_back(add_desc);
196 CSeq_entry& entry,
constCStructComment& comments)
198 boolmatchFound(
false);
201 if(!bioseq.
IsNa())
204 if(comments.m_id.NotEmpty())
206bool matched = false;
207for (const auto& id : bioseq.GetId())
209if (CStructuredCommentsReader::SeqIdMatchesCommentId(*id, *comments.m_id))
229 for(
auto& desc : comments.
m_descs) {
230 stringprefix, suffix;
231 const auto& user = desc->GetUser();
232 for(
const auto&
data: user.GetData()) {
233 if(
data->IsSetLabel() &&
data->GetLabel().IsStr()) {
234 const string&
label=
data->GetLabel().GetStr();
235 if(
label==
"StructuredCommentPrefix") {
236prefix =
data->GetData().GetStr();
238 else if(
label==
"StructuredCommentSuffix") {
239suffix =
data->GetData().GetStr();
243 if(!prefix.empty() && suffix.empty()) {
244desc->SetUser().AddField(
"StructuredCommentSuffix", prefix);
254 if(!reader.
AtEOF())
257vector<CTempString> values;
259vert = values.size()<=2;
User-defined methods of the data storage class.
static CLineErrorEx * Create(EProblem eProblem, EDiagSev eSeverity, int code, int subcode, const std::string &strSeqId, unsigned int uLine, const std::string &strErrorMessage=string(""), const std::string &strFeatureName=string(""), const std::string &strQualifierName=string(""), const std::string &strQualifierValue=string(""), const TVecOfLines &vecOfOtherLines=TVecOfLines())
Use this because the constructor is protected.
@Seq_descr.hpp User-defined methods of the data storage class.
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
virtual bool PutError(const ILineError &)=0
Store error in the container, and return true if error was stored fine, and return false if the calle...
@ eProblem_GeneralParsingError
Abstract base class for lightweight line-by-line reading.
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
const_iterator end() const
EDiagSev
Severity level for the posted diagnostics.
@ eDiag_Warning
Warning message.
CTempString GetCurrentLine(void) const
static CRef< ILineReader > New(const string &filename)
Return a new ILineReader object corresponding to the given filename, taking "-" (but not "....
virtual void UngetLine(void)=0
Unget current line, which must be valid.
virtual bool AtEOF(void) const =0
Indicates (negatively) whether there is any more input.
@ fParse_AnyLocal
Treat otherwise unidentified strings as local accessions as long as they don't resemble FASTA-style I...
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
static bool Equal(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2, ECase use_case=eCase)
Test for equality of a substring with another string.
static const char label[]
void SetDescr(TDescr &value)
Assign a value to Descr data member.
Tdata & Set(void)
Assign a value to data member.
if(yy_accept[yy_current_state])
Lightweight interface for getting lines of data with minimal memory copying.
void VisitAllSeqDesc(objects::CSeq_entry &entry, bool skip_nucprot, _M m)
void VisitAllBioseqs(objects::CSeq_entry &entry, _M &&m)
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
static void sReportUnappliedStructuredComment(ILineErrorListener *pEC, const string &commentID)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4