MDAnalysis / mdanalysis

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

Aggregation analysis #2789

Open aligh92 opened 4 years ago

aligh92 commented 4 years ago

Is your feature request related to a problem?

No! Actually, it was my problem, and I scripted code for that using your package, and then I thought I should appreciate you by contributing my code to your package! I was stuck on measuring the aggregate size based on the distance between the molecule's centre of mass. Also, I needed to measure the aggregate properties such as gyration radius, shape and density. As far as I know, there is no analysis for that in your package. GROMACS has "Clustsize" feature to measure the aggregation of the molecules, but it is not able to solve my problem

Describe the solution you'd like

The GROMACS feature, "Clustsize", can measure the number of aggregate with different size based on the distance between the closest atom or a specific atom. However, it is not able to consider the distance of the centre of mass. Also, it can not measure the cluster characterization such as gyration radius or shape throughout the simulation time. Therefore, I decided to write my code. Currently, my code is ready, and I proved that using GROMACS feature. My code can consider different types of distance, as a user request, and the optional distance cut-off. In "Clustsize" the monomer will be considered while my code is flexible in considering or eliminating them. I considered measuring the average gyration radius along the simulation time as a representative property for clusters. User can take that as an example and measure other properties, or I can add them upon your request.

Describe alternatives you've considered

There might be other software to solve my problem, but as far as I know, this feature is missing in your package and it would be pleasant for the MDAnalysis users to have this opportunity.

Additional context

The code that I am suggesting has been proved by GROMCAS feature, "Clustsize". The results are going to be published as a part of a technical article.

orbeckst commented 4 years ago

Hi @aligh92 , the best way to get some more feedback is to create a pull request and show the code. If you have a preprint of your article then also provide a link as well as any other papers you're relying on.

lilyminium commented 4 years ago

Side note, radius of gyration currently exists as an example of writing your own analysis using our analysis building blocks, which is to be fair not a good reason to keep it from the main library.

https://userguide.mdanalysis.org/examples/analysis/custom_trajectory_analysis.html

orbeckst commented 4 years ago

Actually, there's AtomGroup.radius_of_gyration() (see our basic example which you can wrap with AnalysisFromFunction.

Admittedly, the docs are terrible for some of the AtomGroup methods (see #1845 and linked discussions/PRs).

lilyminium commented 4 years ago

Oops, I did forget about that. The gmx tool does also calculate the radius of gyration around each axis which is the new functionality that that example was meant to add.

aligh92 commented 4 years ago

Thank you so much for the quick reply. The code is ready to submit. I also tried to follow the "Developer Guide" and make it clean and clear. I am only trying to contact my supervisor and take his consent. I will push the code in the next few days. Thank you so much for the valuable and beneficial package.

orbeckst commented 4 years ago

Definitely make sure that all authors are ok with publishing the code under GPL v2.

orbeckst commented 4 years ago

Have you used your code in published work?

Is there an academic citation

aligh92 commented 4 years ago

I used it in a paper which is under review at the moment. But there is a paper which has used the same instruction but they have not provided any information about how they did the calculation. I checked my code with GROMACS post-process tool (clustsize) and the result in the abovementioned paper. https://doi.org/10.1021/acs.energyfuels.6b02161

aligh92 commented 4 years ago

@orbeckst here is my published paper using the code that I am trying to contribute https://pubs.acs.org/doi/abs/10.1021/acs.energyfuels.0c02443

orbeckst commented 4 years ago

Congratulations on the paper. You can include the citation in the docs of your new code.

Is the algorithm described in the paper?

aligh92 commented 4 years ago

Thank you so much. I will include that when I get the problem fixed with the current version of my code.

Yes, it is described in the paper context and flowchart.

orbeckst commented 2 years ago

This kind of analysis would be well suited for a MDAKit.

What is everyone's opinion?

aligh92 commented 2 years ago

I would be happy to be part of that.

Regards, Ali

On Thu, Oct 28, 2021 at 4:23 PM Oliver Beckstein @.***> wrote:

This kind of analysis would be well suited for a MDAKit https://www.mdanalysis.org/2021/08/31/CZI-EOSS4/#2-launching-the-mdakits-ecosystem .

What is everyone's opinion?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/MDAnalysis/mdanalysis/issues/2789#issuecomment-954112833, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOY2YRB7HC5JEQBYORIRDB3UJGL3LANCNFSM4OG2AFHA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.