Hi Simon, Karl and Herve,
As Simon points out, the GFF3 format is quite ill-defined. When
implementing readGff3() in genomeIntervals, we had to interpret the
specifications.
GFF3 allows zero-length features but there is no column to flag
intervals as zero-length features. Have we missed something?
Hi Julien, Simon,
It's true that by just looking at the start/end of a feature, if start
== end you
cannot tell if this is a zero-length feature (e.g. an insertion point)
or a feature
of length 1 (e.g. a SNP).
But my understanding of the GFF3 specs is that you know it's a zero-
length feature
by looking at the type of feature (there is a column where this is
specified).
So maybe this is why the GFF3 people considered that there was no need
to flag
intervals as zero-length features? Not necessarily a very good design
though
because that means GFF3 parsers need to get the information of which
feature
types are zero-length features from somewhere (from the user?).
That's only my guess. Of course instead of trying to guess those
things I should
ask the GFF3 people (hey they have mailing lists!)
Anyway, maybe setting the default value for isRightOpen to FALSE in
readGff3()
would be more accurate and avoid a lot of confusion, especially since
most users
don't have or don't care about zero-length features.
Thanks!
H.
----- Original Message -----
From: "Julien Gagneur" <julien.gagneur@embl.de>
To: "Simon Anders" <anders at="" embl.de="">
Cc: bioconductor at r-project.org, karlerhard at berkeley.edu, "Hervé
Pagès" <hpages at="" fhcrc.org="">
Sent: Friday, April 1, 2011 3:37:27 AM
Subject: Re: [BioC] gff files: how to tell if right-open interval
convention used?
Hi Simon, Karl and Herve,
As Simon points out, the GFF3 format is quite ill-defined. When
implementing readGff3() in genomeIntervals, we had to interpret the
specifications.
GFF3 allows zero-length features but there is no column to flag
intervals as zero-length features. Have we missed something?
>From the two sentences:
"Start is always less than or equal to end."
and
"For zero-length features, such as insertion sites, start equals end
..."
we understood that the only way to distinguish zero-length features
from other features was to adopt a right-open convention. We thus
interpreted this as an equivalence: "features are zero-length if and
only if starts equals end". It is not exactly what it is said, but
what else could we do?
Of course, we have noticed that most files actually use the right-
closed convention and rarely have zero-length features. We therefore
added the parameter isRightOpen.
Although not frequently provided, I believe zero-length features can
be useful. genomeIntervals provides consistent support for these
(including interval_overlap, etc).
Hope this clarifies the question.
Julien