52 #define THIS_FILE "em_index.cpp"
77 "ID",
"AC",
"NI",
"DT",
"DE",
"KW",
"OS",
"OC",
"OG",
"RN",
"RP",
"RX",
"RC",
"RG",
"RA",
"RT",
"RL",
"DR",
"FH",
"FT",
"SQ",
"CC",
"SV",
"CO",
"XX",
"AH",
"AS",
"PR",
"//"
102 for (j = 0; j < pp->
indx; j++) {
134 for (q = p; *q >=
'0' && *q <=
'9';)
160 if (! locus || !
str)
165 for (p++; *p ==
' ';)
167 if (p[0] !=
'S' || p[1] !=
'V')
169 for (p += 2; *p ==
' ';)
231 while (! end_of_file) {
264 while (! end_of_file &&
265 !
StringEquN(finfo.
str, keywordEnd.c_str(), keywordEnd.size())) {
271 }
else if (
StringEquN(finfo.
str, keywordId.c_str(), keywordId.size())) {
281 }
else if (
StringEquN(finfo.
str, keywordAh.c_str(), keywordAh.size())) {
298 }
else if (
StringEquN(finfo.
str, keywordSq.c_str(), keywordSq.size())) {
301 }
else if (
StringEquN(finfo.
str, keywordOs.c_str(), keywordOs.size())) {
308 StringEquN(finfo.
str, keywordSv.c_str(), keywordSv.size())) {
320 while (*p ==
' ' || *p ==
'\t')
322 for (q = p; *q !=
'\0' && *q !=
' ' && *q !=
'\t' &&
335 if (
StringEquN(finfo.
str, keywordRn.c_str(), keywordRn.size()))
339 if (
StringEquN(finfo.
str, keywordCo.c_str(), keywordCo.size()))
344 if (
StringEquN(finfo.
str, keywordAc.c_str(), keywordAc.size())) {
345 if (after_AC ==
false) {
349 }
else if (! entry->
drop &&
352 }
else if (
StringEquN(finfo.
str, keywordDt.c_str(), keywordDt.size())) {
354 if (stoken->
num > 2) {
365 if (finfo.
str[0] !=
' ' && finfo.
str[0] !=
'\t') {
379 if (after_AC ==
false) {
384 if (after_ID ==
false)
387 if (after_SV ==
false && pp->
accver &&
391 if (after_OS ==
false)
394 if (after_OC ==
false)
397 if (after_RN ==
false)
400 if (after_DT ==
false)
403 if (after_SQ ==
false && entry->
is_contig ==
false)
418 (*fun)(entry,
data->mOffset,
static_cast<Int4>(
data->len));
442 for (j = 0; j < indx && tibnp; j++, tibnp = ibnp) {
454 return (end_of_file);
bool QSIndex(ParserPtr pp, IndBlkNextPtr ibnp)
const list< string > KeywordList() const
void AddDataLine(const string &line)
vector< string > emblKeywords
static char * EmblGetNewIDVersion(char *locus, char *str)
bool EmblIndex(ParserPtr pp, void(*fun)(IndexblkPtr entry, char *offset, Int4 len))
static void ParseEmblVersion(IndexblkPtr entry, char *line)
static void EmblSegment(ParserPtr pp)
static bool em_err_field(const char *str)
vector< string > checkedEmblKeywords
#define ParFlat_COL_DATA_EMBL
DataBlkPtr LoadEntry(ParserPtr pp, size_t offset, size_t len)
#define ERR_FORMAT_MissingEnd
bool StringEquN(const char *s1, const char *s2, size_t n)
bool StringEqu(const char *s1, const char *s2)
void StringCpy(char *d, const char *s)
void StringNCpy(char *d, const char *s, size_t n)
size_t StringLen(const char *s)
char * StringRChr(char *s, const char c)
char * StringNew(size_t sz)
void FtaDeletePrefix(int prefix)
static const char * str(char *buf, int n)
int32_t Int4
4-byte (32-bit) signed integer
uint16_t Uint2
2-byte (16-bit) unsigned integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
CRef< CDate_std > GetUpdateDate(const char *ptr, Parser::ESource source)
bool FindNextEntryBuf(bool end_of_file, FileBuf &fbuf, FinfoBlk &finfo, const CTempString &keyword)
IndexblkPtr InitialEntry(ParserPtr pp, FinfoBlk &finfo)
bool SkipTitleBuf(FileBuf &fbuf, FinfoBlk &finfo, const CTempString &keyword)
bool XReadFileBuf(FileBuf &fbuf, FinfoBlk &finfo)
void MsgSkipTitleFail(const char *flatfile, FinfoBlk &finfo)
#define ERR_VERSION_NonDigitVerNum
#define ERR_ORGANISM_Multiple
#define ERR_VERSION_MissingVerNum
#define ERR_ACCESSION_NoAccessNum
#define ERR_FORMAT_Multiple_SV
#define ERR_VERSION_InvalidVersion
#define ERR_FORMAT_MissingField
#define ERR_FORMAT_Multiple_NI
#define ERR_ENTRY_InvalidLineType
#define ERR_VERSION_AccessionsDontMatch
const CConstRef< CSeq_id > GetAccession(const CSeq_id_Handle &id_handle)
CRef< objects::CDate_std > date
vector< IndexblkPtr > entrylist
CKeywordParser & KeywordParser()
const char * c_str() const
bool CheckLineType(char *ptr, Int4 line, const vector< string > &keywordList, bool after_origin)
void FreeTokenstatblk(TokenStatBlkPtr tsbp)
void xCheckEstStsGssTpaKeywords(const list< string > keywordList, bool tpa_check, IndexblkPtr entry)
TokenStatBlkPtr TokenString(const char *str, Char delimiter)