INNER CODE UNIT · C
strand
dpryan79/MethylDackel · common.c:120
int strand = getStrand(plp->b); //1=OT, 2=OB, 3=CTOT, 4=CTOB
if(strand==0) {
fprintf(stderr, "Can't determine the strand of a read!\n");
assert(strand != 0);
}
//Is the phred score even high enough?
if(bam_get_qual(plp->b)[plp->qpos] < config->minPhred) return 0;
if(base == 2 && (strand==1 || strand==3)) return 1; //C on an OT/CTOT alignment
else if(base == 8 && (strand==1 || strand==3)) return -1; //T on an OT/CTOT alignment
else if(base == 4 && (strand==2 || strand==4)) return 1; //G on an OB/CTOB alignment
else if(base == 1 && (strand==2 || strand==4)) return -1; //A on an OB/CTOB alignment
return 0;
}
//Convert bases outside of the bounds to N and their phred scores to 0
bam1_t *trimAlignment(bam1_t *b, int bounds[16]) {