Skip to content
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

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

Open
schneiderfelipe opened this issue Jan 4, 2020 · 40 comments · May be fixed by #4417
Open

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

schneiderfelipe opened this issue Jan 4, 2020 · 40 comments · May be fixed by #4417

Comments

@schneiderfelipe
Copy link

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
Copy link
Contributor

jbarnoud commented Jan 5, 2020

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

@tylerjereddy
Copy link
Member

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
Copy link
Member

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

@richardjgowers
Copy link
Member

Would even be a fun GSOC project!

@orbeckst
Copy link
Member

orbeckst commented Jan 17, 2020

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
Copy link
Member

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

@richardjgowers
Copy link
Member

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
Copy link
Member

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
Copy link
Member

@tylerjereddy periodic boundary conditions

@born-2learn
Copy link

@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
Copy link

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
Copy link
Member

orbeckst commented Mar 3, 2020 via email

@born-2learn
Copy link

@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
Copy link
Member

orbeckst commented Mar 3, 2020 via email

@born-2learn
Copy link

Thank you.
I will keep them in mind.

@orbeckst
Copy link
Member

orbeckst commented Mar 5, 2020

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

@arunsetty
Copy link

@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
Copy link
Member

orbeckst commented Mar 8, 2020

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
Copy link
Contributor

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
Copy link
Member

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
Copy link
Contributor

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
Copy link
Member

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
Copy link
Contributor

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
Copy link
Member

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

@mieczyslaw
Copy link
Contributor

@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
Copy link
Contributor

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
Copy link
Member

Thanks for the update.

@sparkingdark
Copy link

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
Copy link
Contributor

@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
Copy link

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

@TestPrab
Copy link

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
Copy link
Member

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
Copy link
Member

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
Copy link
Member

hhaootian commented Mar 16, 2021

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

@mriopedre
Copy link

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
Copy link

pegerto commented Feb 13, 2023

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.

#4025

@orbeckst
Copy link
Member

@pegerto created the mdakit-sasa.

@leonwehrhan
Copy link
Contributor

Hello, just checking if SASA calculation is something that you would like to see integrated in MDAnalysis or is it considered solved with the mdakit-sasa?

@leonwehrhan
Copy link
Contributor

ping @orbeckst @richardjgowers

@orbeckst
Copy link
Member

orbeckst commented Oct 7, 2024

There's PR #4417 with an alternative implementation in addition to the MDAKit. We don't have a good idea how the different solutions currently work (what algorithms are available, do they produce the same results, what's the performance on the same input data, what is their API, what dependencies do they have, how do they differ, ...). Such a comparison would be incredibly useful to understand what is needed.

SASA is a sufficiently ubiquitous analysis tool that we may consider moving it from a kit into the core library. A good way forward would be to collaborate on a kit and make it the best it can be (using the comparison to guide development). It's much faster to iterate on a kit than on work in the core library.

@leonwehrhan , maybe you can ping @pegerto and @JureCerar to see what interest there is?

Feel free to also ping people from the MDAnalysis team like myself for input.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet