Forum: What are your "model" examples for bioinformatics programming?
5
gravatar for Dan D
3.2 years ago by
Dan D6.6k
Tennessee
Dan D6.6k wrote:

We've talked a lot about Minimum Standards For Bioinformatics Command Line Tools here, but I'm wondering what you consider to be "gold standard" examples of coding/programming that bioinformaticians should read to improve their own coding and understanding.

I'll start:

Picard - written in Java

Sickle - written in C++

Cutadapt - written in Python

ADD COMMENTlink modified 3.2 years ago by Pierre Lindenbaum112k • written 3.2 years ago by Dan D6.6k
2

I'm a huge fan of picard/htsjdk, but it is not gold to me.  I don't like many things : parameters with annotations, a weird base class, stdin/stdout not  default, non standard way of setting parameters, not using interfaces in SamRecord, using getXXXX for boolean in SamRecord instead of isXXXX, etc...

ADD REPLYlink written 3.2 years ago by Pierre Lindenbaum112k

Somewhat off-topic... I find surprising that Java doesn't have a standard command line parser like argparse for python. There are a few libraries out there (I'm happy with argparse4j for that tiny bit of java I write) but none of them seems widely accepted. So many command line tools in java use their home made ways of parsing arguments.

ADD REPLYlink written 3.2 years ago by dariober9.4k

"Minimum standards" has some good advice.

ADD REPLYlink written 3.2 years ago by Brian Bushnell15k
2
gravatar for Istvan Albert
3.2 years ago by
Istvan Albert ♦♦ 77k
University Park, USA
Istvan Albert ♦♦ 77k wrote:

Bedtools - best docs of all time

ADD COMMENTlink written 3.2 years ago by Istvan Albert ♦♦ 77k
1

+1 for the doc, but I don't like the way sub-programs are initialized with the contructor. Everytime a new parameter is needed, you need to extend the C++ constructor, IMHO a "better" way would be to use  the builder pattern https://en.wikipedia.org/wiki/Builder_pattern . Bedtools *is* a great tool anyway.

ADD REPLYlink modified 3.2 years ago • written 3.2 years ago by Pierre Lindenbaum112k
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 743 users visited in the last hour