@@ -13144,12 +13144,15 @@ int print_predcluster(GList<CPrediction>& pred,int geneno,GStr& refname,
1314413144 // build maxIntv
1314513145 CMaxIntv *maxint=new CMaxIntv(pred[0]->exons[0].start,pred[0]->exons[0].end);
1314613146
13147- if(!pred[0]->t_eq && pred[0]->exons.Count()==1 && pred[0]->strand!='.') { // neutral strand if most reads are neutral
13148- int s=0;
13149- if(pred[0]->strand=='+') s=2;
13150- float totalcov=get_cov(1,pred[0]->start-bundleData->start,pred[0]->end-bundleData->start,bpcov);
13151- float strandcov=get_cov(s,pred[0]->start-bundleData->start,pred[0]->end-bundleData->start,bpcov);
13152- if(strandcov<ERROR_PERC*totalcov) pred[0]->strand='.';
13147+ if(!pred[0]->t_eq) {
13148+ if(eonly) pred[0]->flag=false;
13149+ else if(pred[0]->exons.Count()==1 && pred[0]->strand!='.') { // neutral strand if most reads are neutral
13150+ int s=0;
13151+ if(pred[0]->strand=='+') s=2;
13152+ float totalcov=get_cov(1,pred[0]->start-bundleData->start,pred[0]->end-bundleData->start,bpcov);
13153+ float strandcov=get_cov(s,pred[0]->start-bundleData->start,pred[0]->end-bundleData->start,bpcov);
13154+ if(strandcov<ERROR_PERC*totalcov) pred[0]->strand='.';
13155+ }
1315313156 }
1315413157
1315513158 CExon ex(0,0,pred[0]->cov*pred[0]->len()); // this keeps the exon flow based on per bp coverage
@@ -13205,12 +13208,15 @@ int print_predcluster(GList<CPrediction>& pred,int geneno,GStr& refname,
1320513208 nextmaxint=maxint;
1320613209 for(int n=1;n<npred;n++) {
1320713210
13208- if(!pred[n]->t_eq && pred[n]->exons.Count()==1 && pred[n]->strand!='.') { // neutral strand if most reads are neutral
13209- int s=0;
13210- if(pred[n]->strand=='+') s=2;
13211- float totalcov=get_cov(1,pred[n]->start-bundleData->start,pred[n]->end-bundleData->start,bpcov);
13212- float strandcov=get_cov(s,pred[n]->start-bundleData->start,pred[n]->end-bundleData->start,bpcov);
13213- if(strandcov<ERROR_PERC*totalcov) pred[n]->strand='.';
13211+ if(!pred[n]->t_eq) {
13212+ if(eonly) pred[n]->flag=false;
13213+ else if(pred[n]->exons.Count()==1 && pred[n]->strand!='.') { // neutral strand if most reads are neutral
13214+ int s=0;
13215+ if(pred[n]->strand=='+') s=2;
13216+ float totalcov=get_cov(1,pred[n]->start-bundleData->start,pred[n]->end-bundleData->start,bpcov);
13217+ float strandcov=get_cov(s,pred[n]->start-bundleData->start,pred[n]->end-bundleData->start,bpcov);
13218+ if(strandcov<ERROR_PERC*totalcov) pred[n]->strand='.';
13219+ }
1321413220 }
1321513221
1321613222 color.Add(n);
0 commit comments