On Tue, 2015-01-06 at 18:10 -0500, Emmanouil Maragkakis wrote:
> I was thinking about the "factory/gff" too. I think I should make it a
> separate package and remove it from biogo for now. I like your idea
> about the Add(feat.Feature). I will think how this could be
> implemented. It seems it's gonna be kinda complicated as it would have
> to do type checking on the input feat.Feature to see if it is CDS,
> 3'UTR, 5'UTR, exon, ... and act accordingly. Does it sound about
> right?
Yes. Though I don't see how it's any more complicated than wrapping
around a gff.Reader - gff.Features don't distinguish what their feature
type is via type. You currently grab a feature from the gff.Reader and
process it. In the model I'm suggesting grabing the feature is the
responsibility of the client. You then just need to define the semantic
interface between feat.Features and transcript components.
> Just to be sure. So the feat.Feature.Location() is the reference
> entity on which feat.Feature.Start() and feat.Feature.End() measure
> from?
>
> For the following case
>
> - Chromosome X with coordinates {Start: 0, End: 10000}
> - Transcript A with coordinates relative to X {Start: 100, End:
> 1000}
> - Region A1 with coordinates relative to A {Start: 10, End: 20}
>
> we have two equally correct implementations for A1
>
> 1. {Start: 10, End: 20, Location: A}
> 2. {Start: 110, End: 120, Location: X}
>
> right?
Yes. Though the choice depends on what you are trying to do, I would
link to the level immediately above the feature you are describing (as
necessary). So the first would be appropriate when considering the
region in the context of the transcript and the second would be
appropriate if you don't care about that. You are building a tree
describing structural relationships.
>
> I will work on your suggestions and open an issue when it's done.
>
> PS is there any specific reason why you moved from github to google
> code?
I moved it from my personal name to an individual agnostic location.
> I mean it seems to me that github is way better, especially for
> managing code contributions. This discussion for example would be
> comments on a pull request. Maybe you could rethink this. Go itself is
> moving to Github :)
That may happen - there is a biogo user on github that I can use if I
decide to make that move. Personally, I'm not that keen on the github
review process. biogo-dev list is for this kind of discussion.
The move is not trivial.