<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hello Shyam,</p>
<p>thank you for your interest.<br>
</p>
<p>1. I made a benchmark for structure superimposition and global
pairwise sequence alignments. In Biopython both functions are
already accelerated using C-extensions. In Biotite the
superimposition is accelerated via NumPy and the alignment via a
Cython module. In both cases the timing was started after the
creation of the respective internal representation
(Bio.PDB.Structure, Bio.Seq.Seq and biotite.structure.AtomArray,
biotite.sequence.ProteinSequence). For the superimposition, the
structure of lysozyme (1aki) was superimposed on itself (1000
repeats). For the alignment, two 1000-bp polyalanine sequences
were used (100 repeats). The benchmark script is attached to this
mail. This was the output:</p>
<p><tt>1000x Biopython coordinate superimposition: 5.644912210998882
s<br>
1000x Biotite coordinate superimposition: 0.37393549399894255 s<br>
100x Biopython pairwise global alignment: 6.318634318999102 s<br>
100x Biotite pairwise global alignment: 0.5369201499997871 s</tt><tt></tt></p>
<p>In both cases Biotite was one order of magnitude faster than the
respective implementation in Biopython.<br>
</p>
<p>2. Yes, porting already written Biopython code would be extremely
difficult. This was one of my reasons for eventually putting the
code in a separate project.</p>
<p>Best regards,</p>
<p>Patrick<br>
</p>
<br>
<br>
<div class="moz-cite-prefix">On 21.11.2017 21:36, Shyam Saladi
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAARX5cWe=w2SrtgS9AGJkvmvogt+-N-vMUUWggVxybQ7JitcqA@mail.gmail.com">
<div dir="ltr">Hi Patrick,
<div><br>
</div>
<div>This looks pretty cool. I wonder two things:</div>
<div><br>
</div>
<div>1. Do you happen to have timing benchmarks comparing
similar functions in Biotite and Biopython? I'm curious about
what functionality is actually faster/sped up by numpy/cython
code. </div>
<div><br>
</div>
<div>2. From a cursory look through the source and from reading
your docs, biotite seems like a significantly different module
compared to the current version of BioPython. If this sort of
organization was used for a Biopython 2, it seems like it
would be very difficult to port already-written, currently
developed code to the new system. That said, for those parts
that are faster, as a user, I think it might be useful to
merge them into Biopython if it's possible to do so in
an API-compatible way. I wonder what others think about
this...</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Shyam</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Nov 15, 2017 at 12:40 AM,
Patrick Kunzmann <span dir="ltr"><<a
href="mailto:padix.kleber@gmail.com" target="_blank"
moz-do-not-send="true">padix.kleber@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">Dear
Biopython community,<br>
<br>
I decided to put the proposed Biopython 2 code base into an
separate project for the time being. The main reason for
this are the clarity issues that have bothered me lately:
Although distinguishing Biopython and the proposed Biopython
2 would be easy on GitHub (different repos) and relatively
easy on PyPI (version identifier), I think confusions could
occur in other contexts (e.g. in the mailing list or
StackOverflow). Therefore, the project is continued unter
the name 'Biotite'. The repository was moved into a separate
GitHub organisation and can be found at <a
href="https://github.com/biotite-dev/biotite"
rel="noreferrer" target="_blank" moz-do-not-send="true">https://github.com/biotite-dev<wbr>/biotite</a>
. The project is still licensed under BSD 3-clause so
potentially a project merge is still possible at a later
point.<br>
<br>
Best regards,<br>
Patrick<br>
<br>
<br>
On 02.11.2017 11:42, Patrick Kunzmann wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear Biopython community,<br>
<br>
here I present you a proposition for a potential Biopython
2.x code base. But first things first:<br>
<br>
A few months ago I proposed an endeavor to rewrite
Biopython in order to bring it onto modern scientific
Python standards (<a
href="http://lists.open-bio.org/pipermail/biopython-dev/2017-June/021740.html"
rel="noreferrer" target="_blank" moz-do-not-send="true">http://lists.open-bio.org/pip<wbr>ermail/biopython-dev/2017-June<wbr>/021740.html</a>).
Arguably, the consensus was that this is something that
should be done, but those changes would require almost a
complete rewrite and barely anyone has time for it.
Therefore, I took the initiative some time later and
created an experimental repository for creating actual
Biopython 2 code (<a
href="https://github.com/padix-key/biopython2experimental"
rel="noreferrer" target="_blank" moz-do-not-send="true">https://github.com/padix-key/<wbr>biopython2experimental</a>).
Unfortunately it seems that the announcement mail for that
did not reach the mailing list, but went missing in the
deep of the web. Anyway, the repository is now at a
presentable state. The corresponding HTML documentation
(including tutorial, API reference and install
instructions) can be found under <a
href="https://github.com/padix-key/biopython2/files/1437242/doc.zip"
rel="noreferrer" target="_blank" moz-do-not-send="true">https://github.com/padix-key/b<wbr>iopython2/files/1437242/doc.zi<wbr>p</a>
. So far it is not possible to install the package from
PyPI, since it is not the offical Biopython 2 package.
Instead you have to install it directly from the repo, if
you want to test the package.<br>
<br>
The package contains basic types and operations for
working with structure and sequence data, offers
biological database interaction with RCSB and NCBI Entrez
and provides seamless interfaces to external software.
Although the package aims to achieve similar area of
application as Biopython 1.x, it is a complete rewrite.<br>
<br>
The package is still in early development. I tried to
incorporate the ideas you and I brought up in the
Biopython 2 discussion and still everything is subject to
changes in the discussion with you. I already have some
questions for discussion:<br>
<br>
1. Should this package still be dual licensed? Since the
BSD 3-Clause and the Biopython license are quite similar,
I would suggest licensing Biopython 2 only under BSD
3-Clause for clarity. But I do not have a strong opinion
on that.<br>
<br>
2. In our previous discussion some of you proposed putting
only core functionality into Biopython 2 and leaving
specialized code installable as plugins. This package does
not contain a mechanism for plugin packages, yet. I would
rather suggest a 'recommended packages' approach: Code
that is based on Biopython 2 and tackles a general
biological problem would be linked in a 'Recommended
packages' section of the Biopython 2 documentation. In my
opinion, direct plugins in the Biopython 2 package
requires some confusing namespace wizardry. Recommended
packages would achieve almost the same, with the slight
difference, that the user writes 'import
recommendedpackage' rather than 'import
biopython.someplugin'.<br>
<br>
If this package is accepted by the community, I would like
to hand over repository ownership to the 'Biopython'
organisation on GitHub and I would like to continue and
supervise its development as part of the GitHub
'Biopython' organisation.<br>
<br>
Best regards,<br>
Patrick Kunzmann<br>
<br>
</blockquote>
<br>
______________________________<wbr>_________________<br>
Biopython-dev mailing list<br>
<a href="mailto:Biopython-dev@mailman.open-bio.org"
target="_blank" moz-do-not-send="true">Biopython-dev@mailman.open-bio<wbr>.org</a><br>
<a
href="http://mailman.open-bio.org/mailman/listinfo/biopython-dev"
rel="noreferrer" target="_blank" moz-do-not-send="true">http://mailman.open-bio.org/ma<wbr>ilman/listinfo/biopython-dev</a><br>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</body>
</html>