samtools / htsjdk

A Java API for high-throughput sequencing data (HTS) formats.
http://samtools.github.io/htsjdk/
278 stars 244 forks source link

Question: how to code a GTFCodec beside of the existing GFF3Codec #1613

Closed lindenb closed 1 year ago

lindenb commented 2 years ago

More a question than an issue.

I would like htsjdk to support the GTF format.

There was a previous discussion about this here https://github.com/samtools/htsjdk/issues/537 . But I think since this thread the htsjdk-next-beta has been forsaken (?) and a GFF3Codec has been included in htsjdk.

Now a GTF codec would be highly similar (and simplier) to the existing GFF3 codec. What would be an acceptable strategy to implement the GTF? My ideas:

1) copy all the classes Gff3BaseData.java Gff3Constants.java etc... to GtfBaseData.java GtfConstants etc... ?

2) Keep only Gff3Feature.java but add a new parameter enum GTType {GFF3,GTF} to the constructors . new public Gff3Codec(final DecodeDepth decodeDepth, final Predicate<String> filterOutAttribute,GTType gttype ) {

3) Add an abstract base class for all the existing GFF3 classes. For example: abstract class AbstractGtXXCodec { and then public class Gff3Codec extends AbstractGtXXCodec and public class GtfCodec extends AbstractGtXXCodec

4) another idea ?

P.

lindenb commented 1 year ago

closed after : https://github.com/samtools/htsjdk/pull/1662