MDAnalysis / mdanalysis

MDAnalysis is a Python library to analyze molecular dynamics simulations.
https://mdanalysis.org
Other
1.28k stars 644 forks source link

Molecular volume and (solvent-accessible) surface area #2439

Open schneiderfelipe opened 4 years ago

schneiderfelipe commented 4 years ago

Hi, I would like to suggest two features. I couldn't find how to calculate the molecular volume and SASA (solvent-accessible surface area) for a trajectory. Do you think those would be useful additions?

jbarnoud commented 4 years ago

This would indeed be great tools to have in MDAnalysis. We would be happy to look at contributions in that direction.

tylerjereddy commented 4 years ago

A crude estimate of molecular volume might the volume of the ConvexHull of the molecule using SciPy.

This would likely be reasonably accurate for i.e., globular structures, but you could probably come up with some structures for which you might need to calculate an alpha shape or something more exotic. I suppose there is likely some literature on this; maybe summing the constituent particle volumes could also be used in some approaches (summing all the Martini sphere volumes? plus some adjustment factor for bonded areas or something).

orbeckst commented 4 years ago

There’s also pysasa (I think). Would be great to integrate it.

richardjgowers commented 4 years ago

Would even be a fun GSOC project!

orbeckst commented 4 years ago

FreeSASA comes under MIT license and has a C core and python bindings:

By default Lee & Richards' algorithm is used, but Shrake & Rupley's is also available.

Simon Mitternacht (2016) FreeSASA: An open source C library for solvent accessible surface area calculation. F1000Research 5:189 (doi: 10.12688/f1000research.7931.1)

Todo:

  1. evaluate freesasa if it is suitable; look at alternatives (e.g. MDTraj implements Shake-Rupley)
  2. figure out the above can be installed as pip and conda package, if necessary create the packages
  3. create test case (use existing files in MDA and run external implementation for reference)
  4. integrate analysis module into MDAnalysis with tests
  5. benchmark performance
orbeckst commented 4 years ago

I refined the above and added it as a potential GSOC 2020 project to the GSoC 2020 wiki page.

richardjgowers commented 4 years ago

FWIW (and maybe less biologically relevant) I'd also consider zeo++ and poreblazer similar tools that need a similar treatment.

Maybe more interestingly, good bindings to voro++ would probably allow a range of different volume/surface tools to be constructed.

tylerjereddy commented 4 years ago

I'd be curious what voro++ is providing that you can't get from scipy.spatial interface to Qhull. If more things need to be exposed there, that would be good to know in terms of upstream vs. here, depending on how specialized.

richardjgowers commented 4 years ago

@tylerjereddy periodic boundary conditions

born-2learn commented 4 years ago

@orbeckst @richardjgowers @IAlibay I am Syed Farhan, an Undergraduate Computer and Electronics Engineering Student from Bangalore, India. Linkedin

I am very much interested to work on this project as part of GSoC'20 this summer. I am associated with the 'Centre of Excellence in Computational Genomics' of my college and am good at python, C.

I have done some basic calculations with FreeSASA on the 3LAU PDB Structure. I am also familiazing myself with the MDAnalysis codebase.

Making FreeSASA a part of MDAnalysis (especially for MDSimulations) to calculate the SAS scores for each and every frame, also seems good to me.

It would be really appreciated if you could guide me with the further steps. I would also like to know if this project will make it to the final GSoC Project List, and if the project is up-for-grabs.

Kind regards Syed Farhan RVCE

born-2learn commented 4 years ago

I have written a basic script to save the protein atom name and atom Surface Area in a text file, using FreeSASA. Here is the link to the repo: https://github.com/born-2learn/molecular-dynamics-sasa

Text file generated: here PDB file used: here

orbeckst commented 4 years ago

Hello Syed Farhan,

Welcome to MDAnalysis and GSoC.

Please see the blog post https://www.mdanalysis.org/2020/02/22/gsoc2020/ and the FAQ https://github.com/MDAnalysis/mdanalysis/wiki/GSoC-FAQ if you haven't yet. As detailed in the blog, we have a series of issues tagged as easy bugs & GSOC starters which are worth looking at if you are still trying to find an issue to contribute to. We’re also happy to talk about projects when you have specific questions.

If possible, could you also provide us with your GitHub handle? This way we can consolidate any issues/PRs you contribute to with this introduction and any other interactions we have with you on the developers list.

On Mar 3, 2020, at 3:55 AM, Syed Farhan notifications@github.com wrote:

@orbeckst https://github.com/orbeckst @richardjgowers https://github.com/richardjgowers @IAlibay https://github.com/IAlibay I am Syed Farhan, an Undergraduate Computer and Electronics Engineering Student from Bangalore, India. Linkedin https://www.linkedin.com/in/syedfarhanahmad/ I am very much interested to work on this project as part of GSoC'20 this summer. I am associated with the 'Centre of Excellence in Computational Genomics' of my college and am good at python, C.

I have done some basic calculations with FreeSASA on the 3LAU PDB Structure https://www.rcsb.org/structure/3LAU. I am also familiazing myself with the MDAnalysis codebase.

That’s great but also note that you need to have at least one merged pull request in order to be eligible to apply to work with MDAnalysis. See the linked GSoC docs above.

Making FreeSASA a part of MDAnalysis (especially for MDSimulations) to calculate the SAS scores for each and every frame, also seems good to me.

It would be really appreciated if you could guide me with the further steps.

Please read our docs.

I would also like to know if this project will make it to the final GSoC Project List, and if the project is up-for-grabs.

This is not how it works. In order to be eligible to apply you need to work on our code base, as explained in our docs. You will then write your application. It would be great if you were to select the SASA project, but anyone else can do the same. We will read and assess the applications and select the best candidate (again, read our docs to see what we are looking for). We are happy to discuss projects and help you to write a strong proposal – just remember that we also want to get a sense of how you would work with us before you submit the application.

Best, Oliver

Kind regards Syed Farhan RVCE

born-2learn commented 4 years ago

@orbeckst Thank you for your reply.

My GitHub handle is born-2learn and here is my GitHub profile.

Thank you for the links. I have gone through the MDAnalysis Blog and the FAQs, and will shortly start contributing to the MDAnalysis repo by working on issues/PRs.

I would like to know if the discussion of projects/issues have to be done in the MDAnalysis Google Groups apart from the GitHub comments or only the comments in GitHub are sufficent.

I am very much interested in the SASA project and am also looking into other Project Ideas.

Kind Regards Syed Farhan

orbeckst commented 4 years ago

On Mar 3, 2020, at 12:26 PM, Syed Farhan notifications@github.com wrote:

I would like to know if the discussion of projects/issues have to be done in the MDAnalysis Google Groups https://groups.google.com/forum/#!forum/mdnalysis-discussion apart from the GitHub comments or only the comments in GitHub are sufficent.

We typically keep general discussions on the mailing list.

If there’s an issue open (like the one for SASA) then it’s good practice to keep specific questions on the issue tracker. (But don’t open issues to ask questions – open issues for bugs/enhancements. Ask questions on the list.)

Discussions on active PRs are all on the PR itself in the issue tracker.

I am very much interested in the SASA project and am also looking into other Project Ideas.

Great!

Oliver

born-2learn commented 4 years ago

Thank you. I will keep them in mind.

orbeckst commented 4 years ago

I removed the "starter" label as this became a proposed GSoC 2020 project.

arunsetty commented 4 years ago

@orbeckst Sir, I'm aiming for this as my gsoc project as it seemed interesting from a while. Can I please get some scenario of this and where to start for application. Thanks!

orbeckst commented 4 years ago

Hi @arunsetty , read the blog post https://www.mdanalysis.org/2020/02/22/gsoc2020/ which explains everything and provides links to all related documentation. Importantly, we only accept applications from students with at least one merged PR.

For further general GSOC discussions please ask on the developer mailinglist https://groups.google.com/group/mdnalysis-devel.

mieczyslaw commented 4 years ago

Is there any help needed with this ticket? I haven't seen any update since March. I feel, it is high priority one for the next release :)

orbeckst commented 4 years ago

Yes, please, help is welcome. We were tending towards relying on pysasa. Look at the GSoC description https://github.com/MDAnalysis/mdanalysis/wiki/Project-Ideas-2020#project-1-molecular-volume-and-surface-analysis .

mieczyslaw commented 4 years ago

Thanks @orbeckst ! Is anyone actively working on this one? I saw some students interested in participating (as GSOC)? I mean, either I can sort it out myself, or if anyone already started, I can join the team.

orbeckst commented 4 years ago

Nobody is actively working on it, i.e., there's no active PR.

If you want to add a new analysis.sasa module then I would recommend you have a look at the https://userguide.mdanalysis.org/1.0.0/contributing.html guide (in case you haven't done so already).

mieczyslaw commented 4 years ago

Sure, I will have a go then! So far my another contribution is close to being merged, so learnt a lot about dev practices in this project, but I will go again through the guide, especially because now it would be additional functionality rather than a fix.

richardjgowers commented 4 years ago

@mieczyslaw give me a ping if you get stuck getting the information you need for pysasa out of MDAnalysis!

mieczyslaw commented 3 years ago

@richardjgowers sorry for the delay in starting working on that, just want to first finish another MDA contribution to avoid doing two things at once, but definitely interested in doing this one

mieczyslaw commented 3 years ago

No chance to work on that in my free time right now, but happy to return to this task later on if there is no one else completing it. Sorry.

orbeckst commented 3 years ago

Thanks for the update.

sparkingdark commented 3 years ago

Is this still available or feature is already created.I am new to MDanalysis and joined google group.So can you clarify some doubt of mine so I can try to make this feature.Is this just calculate the molecular volume of a element ? @orbeckst @mieczyslaw

mieczyslaw commented 3 years ago

@sparkingdark As I mentioned above, I didn't have time to do this task (even though I really like it). I suppose @orbeckst and @richardjgowers can explain what is expected.

sparkingdark commented 3 years ago

Okay looking forward to it and one thing mdanalysis have any slack group.

TestPrab commented 3 years ago

Hey Everyone I am Prabhat a second-year undergraduate student from India, and I am interested to contribute, will it be possible if someone can tell me what is expected and how much we have done or something?

orbeckst commented 3 years ago

Hello @sparkingdark , I know that you asked a while back but we now have a discord server (see https://github.com/MDAnalysis/mdanalysis/wiki/GSoC-FAQ#how-do-i-contact-mdanalysis for the sign up link).

orbeckst commented 3 years ago

Hello @TestPrab , please read https://www.mdanalysis.org/2021/03/09/gsoc2021/ to get started – the blog post and the linked documents should answer all your immediate questions. We look forward to learning more about when you introduce yourself on our developer mailing list. We keep all general discussions on the mailing list and keep issues for discussions directly related to and specific to the problem/code in the issue.

hhaootian commented 3 years ago

Hi mentors @IAlibay @orbeckst @hmacdope @richardjgowers , here is my draft proposal for this project. Any comments are appreciated! Thanks!

mriopedre commented 2 years ago

Hi everyone. I was looking for a way to calculate SASA using MDAnalysis, and came across this thread. Is there any way to do it already? Thanks!

pegerto commented 1 year ago

Hello,

I am happy to help on this implementation as I need it for a research project and I am already using MDAnalisys, here a basic implementation, will go through the contributor documentation and join the mail list immediately.

https://github.com/MDAnalysis/mdanalysis/pull/4025

orbeckst commented 6 months ago

@pegerto created the mdakit-sasa.