-
Notifications
You must be signed in to change notification settings - Fork 103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding interfaces to popular Python packages #709
Comments
I think the structure of https://github.com/biotite-dev/molmarbles is a good example for how I would envision such a |
I like the idea of convenience functions converting However, we have to make sure that we dont entangle |
I agree. In the usual case I would also keep the interfaces very sparse: It should be only about converting the representations of structures/sequences. A notable exception is Ammolite, which also provides a wrapper ( |
I think Ammolite could definitely an exception in terms of sparsity. In my opinion it is quite a useful package and keeping it as an extension package limits its exposure. I would vote for integrating it into a |
Probably I will begin with writing an interface of RDKit. We can then view this as a proof-of-concept, to make a final decision, whether a |
Although Biotite implements a lot of algorithms from the bioinformatics community, there are still many tasks that cannot be done in Biotite, either because a method is not implemented yet, it is too complex or because it is out of scope. For this purpose Biotite provides the
biotite.application
subpackage, which provides interfaces to external software.The logic of the core
biotite.application.Application
class inherently assumes that another process is running the desired functionality - either local (e.g.Muscle
)or on some server (currently only NCBI BLAST).However, there are also a lot of popular Python packages for various bionformatics tasks out there, where an interface would be reasonable in my opinion. This would be a non-exhaustive list:
ammolite
)molmarbles
)Pressing these into the logic of the
Application
would be possible, butHence, I would like to discuss an additional
biotite.interface
subpackage: Analogous tobiotite.application
it would contain thebiotite.interface.xyz
subpackage for the Python packagexyz
and the user is responsible for installingxyz
separately. However, unlikebiotite.application
its purpose is to convert between nativebiotite
objects and the corresponding objects inxyz
. So the user could use the converted object directly within the same Python script.Pros:
biotite.interface
to reduce maintenance overhead (namelyammolite
andmolmarbles
).Cons:
@t0mdavid-m @JHKru @MaxGreil (and everbody else having an opinion on it 😉)
The text was updated successfully, but these errors were encountered: