+ some optimization
[qpalma.git] / tools / data_tools / parser.c
index 79eddf9..6a0d4eb 100644 (file)
@@ -41,6 +41,8 @@ char* get_id(regex_t rx, const char* desc) {
       exit(EXIT_FAILURE);
    }
 
+   //printf("%s\n",desc);
+
    int start = all_matches[0].rm_so+3;
    int end = all_matches[0].rm_eo-1;
    assert( start <= end);
@@ -114,7 +116,19 @@ int parse_gff(char *filename, FILE* fid,struct gene*** allGenes) {
          (*allGenes)[idx] = gene_alloc();
          (*allGenes)[idx]->start = start;
          (*allGenes)[idx]->stop = stop;
-         (*allGenes)[idx]->strand = (*strand);
+
+         //printf("strand: %s %d\n",strand,strcmp(strand,"+"));
+
+         if (strcmp(strand,"+") == 0) {
+            (*allGenes)[idx]->strand = 'D';
+         } else {
+            if (strcmp(strand,"-") == 0)
+               (*allGenes)[idx]->strand = 'P';
+            else
+               (*allGenes)[idx]->strand = 'z';
+         }
+         assert( (*allGenes)[idx]->strand != 'z' );
+
          (*allGenes)[idx]->id = get_id(rx,desc);
          //printf("gene start/stop: %d/%d\n",start,stop);
          continue;
@@ -150,4 +164,3 @@ int parse_gff(char *filename, FILE* fid,struct gene*** allGenes) {
 
    return numGenes;
 }
-