vector<SLineInfo>& orderedIds,
56 if((orderedIds.size() > idCount) &&
57seqId == orderedIds[idCount].mData) {
62 stringseqIdLower(seqId);
65 autoit = orderedIds.begin();
66 boolexactCopy =
false;
67 while(it != orderedIds.end()) {
68 if(it->mData == seqId) {
72 autoorderedIdLower(it->mData);
74 if(orderedIdLower == seqIdLower) {
82 if(it != orderedIds.end()) {
85 "Duplicate ID: \"%s\" has already appeared in this block, on line %d.", seqId.c_str(), it->mNumLine);
89 "Conflicting IDs: \"%s\" differs only in case from \"%s\", which has already appeared in this block, on line %d.", seqId.c_str(), it->mData.c_str(), it->mNumLine);
100 if(it == orderedIds.end()) {
102 "Inconsistent sequence_IDs in the data blocks. Each data block must contain the same set of sequence_IDs.");
110 autoidPos = distance(orderedIds.begin(), it);
111 if(idPos < idCount) {
114 "Duplicate ID: \"%s \" has already appeared in this block, on line %d.",
115seqId.c_str(), it->mNumLine);
119 "Conflicting IDs: \"%s\" differs only in case from \"%s\", which has already appeared in this block, on line %d.", seqId.c_str(), it->mData.c_str(), it->mNumLine);
123 if(idPos == idCount) {
125 "Inconsistent ID case: \"%s\" differs in case from \"%s\" used to identify this sequence in the first block.",
126seqId.c_str(), it->mData.c_str());
130description =
"Sequence_IDs are in different orders in the data blocks in your file. The sequences and sequence_IDs are expected to be in the same order in each block.";
144 string& defLineInfo)
151 "Deflines were detected in your file, however some lines are missing the \'>\' character at the beginning of the line. Each defline must begin with \'>\'.");
153 autodataStart = line.find_first_not_of(
" \t", 1);
154 if(dataStart == string::npos) {
158 "Bad defline line: Should not be empty");
160 stringdefLine = line.substr(dataStart);
163defLineInfo = defLine;
174 const string& dataLine,
182 if(tokens.size() < 2) {
186 "Bad data line: Expected \"<seqId> <data> <offset>\"");
188seqId = tokens.front();
190 if(tokens.back().find_first_not_of(
"0123456789") == string::npos) {
204 const string& dataLine,
211 if(tokens.size() < 2) {
215 "Bad data line: Expected \"<seqId> <data> <offset>\"");
217seqId = tokens.front();
230vector<string> splits;
END_ENUM_INFO string ErrorPrintf(const char *format,...)
The NCBI C++ standard methods for dealing with std::string.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
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 string Join(const TContainer &arr, const CTempString &delim)
Join strings using the specified delimiter.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static bool SplitInTwo(const CTempString str, const CTempString delim, string &str1, string &str2, TSplitFlags flags=0)
Split a string into two pieces using the specified delimiters.
static string TruncateSpaces(const string &str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string.
static string & ToLower(string &str)
Convert string to lower case â string& version.
@ fSplit_MergeDelimiters
Merge adjacent delimiters.
void StripBlanks(const string &line, string &stipped)
void CheckId(const string &seqId, const vector< SLineInfo > &orderedIds, int idCount, int lineNum, bool firstBlock)
void ProcessDefline(const string &defLine, string &seqId, string &defLineInfo)
void ProcessDataLine(const string &dataLine, string &seqId, string &seqData, int &offset)
@ eAlnSubcode_BadSequenceCount
@ eAlnSubcode_IllegalDataLine
@ eAlnSubcode_UnexpectedSeqId
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