Made sequence parsing more robust (issue with arm64 systems)
This commit is contained in:
@ -162,19 +162,24 @@ void seq_fillSeqOnlyATGC(char *seq, fastaSeqPtr seqElem, int seqLen)
|
|||||||
{
|
{
|
||||||
char* seqTemp;
|
char* seqTemp;
|
||||||
char c;
|
char c;
|
||||||
int32_t index = 0, seqIndex = 0, len = strlen(seq);
|
int32_t index = 1, seqIndex = 0, len = strlen(seq);
|
||||||
char* seqAlphabets = "acgtACGT";
|
char* seqAlphabets = "acgtACGT";
|
||||||
int notAllATGC = 0;
|
int notAllATGC = 0;
|
||||||
|
int goOnParsing = 1;
|
||||||
|
|
||||||
seqTemp = (char*) util_malloc(seqLen*sizeof(char), __FILE__, __LINE__);
|
seqTemp = (char*) util_malloc(seqLen*sizeof(char), __FILE__, __LINE__);
|
||||||
|
|
||||||
while (index < len)
|
while (goOnParsing)
|
||||||
{
|
{
|
||||||
c = seq[index++];
|
c = seq[index++];
|
||||||
if (strchr(seqAlphabets, c) != NULL)
|
if (strchr(seqAlphabets, c) != NULL)
|
||||||
seqTemp[seqIndex++] = tolower(c);
|
seqTemp[seqIndex++] = tolower(c);
|
||||||
|
else if ((c == '\n') && (seq[index+1]=='\0'))
|
||||||
|
goOnParsing = 0; //End of line character terminating the sequence has been reached.
|
||||||
else if (c != '\n')
|
else if (c != '\n')
|
||||||
notAllATGC = 1;
|
notAllATGC = 1;
|
||||||
|
if (index == len)
|
||||||
|
goOnParsing = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (notAllATGC)
|
if (notAllATGC)
|
||||||
|
Reference in New Issue
Block a user