ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/gclib/gclib/gff.cpp
(Generate patch)
# Line 7 | Line 7
7  
8   const uint GFF_MAX_LOCUS = 7000000; //longest known gene in human is ~2.2M, UCSC claims a gene for mouse of ~ 3.1 M
9   const uint GFF_MAX_EXON  =   30000; //longest known exon in human is ~11K
10 < const uint GFF_MAX_INTRON= 6000000;
10 > const uint GFF_MAX_INTRON= 6000000; //Ensembl shows a >5MB human intron
11   bool gff_show_warnings = false; //global setting, set by GffReader->showWarnings()
12   const int gff_fid_mRNA=0;
13   const int gff_fid_transcript=1;
# Line 976 | Line 976
976   bool GffReader::addExonFeature(GfoHolder* prevgfo, GffLine* gffline, GHash<CNonExon>& pex, bool noExonAttr) {
977    bool r=true;
978    if (gffline->strand!=prevgfo->gffobj->strand) {
979 <         if (prevgfo->gffobj->strand=='.') {
980 <        prevgfo->gffobj->strand=gffline->strand;
981 <            }
982 <         else {
983 <                 GMessage("GFF Error at %s (%c): exon %d-%d (%c) found on different strand; discarded.\n",
984 <                        prevgfo->gffobj->gffID, prevgfo->gffobj->strand,
985 <                        gffline->fstart, gffline->fend, gffline->strand, prevgfo->gffobj->getGSeqName());
986 <                 //r=false;
987 <                 return true; //FIXME: split trans-spliced mRNAs by strand
988 <                 }
989 <     }
979 >  //TODO: add support for trans-splicing and even inter-chromosomal fusions
980 >     if (prevgfo->gffobj->strand=='.') {
981 >            prevgfo->gffobj->strand=gffline->strand;
982 >        }
983 >     else {
984 >       GMessage("GFF Error at %s (%c): exon %d-%d (%c) found on different strand; discarded.\n",
985 >       prevgfo->gffobj->gffID, prevgfo->gffobj->strand,
986 >       gffline->fstart, gffline->fend, gffline->strand, prevgfo->gffobj->getGSeqName());
987 >       //r=false;
988 >       return true; //FIXME: split trans-spliced mRNAs by strand
989 >       }
990 >   }
991    int gdist=(gffline->fstart>prevgfo->gffobj->end) ? gffline->fstart-prevgfo->gffobj->end :
992                        ((gffline->fend<prevgfo->gffobj->start)? prevgfo->gffobj->start-gffline->fend :
993                           0 );

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines