Andrius Merkys - 2023-02-14

I am using provean v1.1.5 without the supporting set and it always fails with the following (timestamps removed):

[...] retrieving subject sequence information...
[...] Parsing Error

I have inspected the raw blast_out file and it seems fine: there are lines containing database IDs. Then I looked into the code in src/SequenceDB.cpp, in SequenceDB::SetSequenceInfoFromBlastOut(), and I do not quite get the following line:

gi = strtok(NULL, "\t\n");

I may not know C/C++ well, but it seems to me that gi variable will always be NULL-valued. Moreover, "\t\n" does not seem to be the right separator in blast output (should be just "\t"). Then the following will always return -1:

            if (db_id == NULL || gi == NULL) {
                    Log("Parsing Error\n", true);
                    return -1;
            }

Is this intentional? There are more calls to strtokt(NULL, ...) throughout the code.