<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2015-02-13 16:26 GMT+01:00 Peter Cock <span dir="ltr">&lt;<a href="mailto:p.j.a.cock@googlemail.com" target="_blank">p.j.a.cock@googlemail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Fri, Feb 13, 2015 at 2:21 PM, Paolo Pavan &lt;<a href="mailto:paolo.pavan@gmail.com">paolo.pavan@gmail.com</a>&gt; wrote:<br>
&gt; Good point!<br>
&gt; The InsdcParser class is responsible of parsing locations and nested<br>
&gt; locations with splits. It reads and records the numbers in the location<br>
&gt; string as they are in genbank file. So it is 1 based.<br>
<br>
</span>As an aside, Biopython actually has two GenBank parsers.<br>
One builds Biopython objects with zero-based coordinates.<br>
The other (less used) is a more faithful as-is representation<br>
which just exposes the feature locations as strings (unmodified).<br>
<span class=""><br>
&gt; Andreas, does biojava has to be considered 0 based or 1 based for sequence<br>
&gt; coordinates? Or it is an uncoded behaviour?<br>
<br>
</span>See below for my outsider&#39;s impression.<br>
<span class=""><br>
&gt; Said so, no tests have actually failed, so I tought that sequence<br>
&gt; coordinates are 1 based as in other bio projects.<br>
<br>
</span>Not all the other Bio* projects. Python strings/arrays/etc and<br>
therefore Biopython sequences and feature co-ordinates are<br>
zero-based.<br></blockquote><div><br></div><div>Ok! Good to know.<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
According to the following pages the BioPerl and BioRuby<br>
sub-sequence methods are one-based though:<br>
<a href="http://search.cpan.org/~cjfields/BioPerl/Bio/Seq.pm#subseq" target="_blank">http://search.cpan.org/~cjfields/BioPerl/Bio/Seq.pm#subseq</a><br>
<a href="http://bioruby.org/rdoc/Bio/Sequence/Common.html" target="_blank">http://bioruby.org/rdoc/Bio/Sequence/Common.html</a><br>
<span class=""><br>
&gt; Also, in my last before-send-this-email check,<br>
&gt; AbstractSequence.getSubSequence() (and ProxyView) does not apply any<br>
&gt; transformation so I can conclude that biojava is 1 based.<br>
<br>
</span>Since Java strings are zero based, I would have guessed<br>
(without checking the BioJava documentation) that the<br>
BioJava sequences are also zero based. I was surprised<br>
to read here that BioJava&#39;s sequences are one-based:<br>
<br>
<a href="http://biojava.org/wiki/BioJava:Cookbook:Sequence:SubSequence" target="_blank">http://biojava.org/wiki/BioJava:Cookbook:Sequence:SubSequence</a><br>
<br>
See also: <a href="https://www.biostars.org/p/49909/#130967" target="_blank">https://www.biostars.org/p/49909/#130967</a><br></blockquote><div><br></div><div>I understand your concern, but I would say that since in java you are compelled to use methods and is not possible for a user to work directly on the string representation of the sequence, in my opinion is not evil to have a method that makes abstraction of the machine logic and comes closer to the user/domain logic. <br></div><div>It is the concept of encapsulation itself. But of course is also a matter of tastes.<br><br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
So, getting back to the GenBank location problem,<br>
it sounds like since BioJava uses 1-based sequences,<br>
the GenBank feature locations should be left as is,<br>
and the start-1 operation in the writer should be<br>
removed as Stefan suggested.<br>
<br>
Regards,<br>
<br>
Peter<br>
</blockquote></div><br></div></div>