diegozea / MIToS.jl

Mutual Information Tools for protein Sequence analysis in Julia
https://diegozea.github.io/MIToS.jl/latest/
Other
66 stars 18 forks source link

Goal: unify on BioStructures for PDB reading #77

Open timholy opened 3 weeks ago

timholy commented 3 weeks ago

There's a growing ecosystem for handling protein structure in Julia, including two visualization packages https://github.com/MurrellGroup/ProtPlot.jl and https://github.com/BioJulia/BioMakie.jl, neither of which supports the representation used by MIToS.

I started a conversation on the Julia slack (@diegozea was invited) about unifying around a single reader for PDB files, and the conversation has spilled out to public fora like https://github.com/BioJulia/BioStructures.jl/issues/48. I propose that common reader be BioStructures, and that package has undergone several recent changes to make it more palatable as a common foundation. Regardless of what decision we end up making, I think it makes a lot of sense for Julia to have a common PDB reader so that everyone can leverage all the cool tools. In my opinion, MIToS is a bit "heavy" (it does so many things which I love!) for it to serve well as the common reader that everybody depends on. That would mean migrating MIToS to work with the format read by BioStructures. Alternatively, if the community ends up preferring the MIToS representation, one could split out the PDB component of MIToS into a smaller, standalone package.

Feel free to comment here or elsewhere about any obstacles, technical or otherwise, that would stand in the way of converging on a common core.

diegozea commented 2 weeks ago

Hi @timholy!

Once BioStructures releases its new version, I will add it as an MIToS dependency to read mmCIF files and easily integrate them with other packages in the ecosystem. I will keep the flat MIToS structure representation, as it has some performance benefits for some operations and makes it easy to work at the residue level. But, I will possibly re-export some BioStructures functionality and add methods to convert between both representations so that MIToS structures can be visualized using those tools—or maybe add them as package extensions. What do you think about that plan?

Cheers,