GSoC introduction

93 views
Skip to first unread message

Orion Cohen

unread,
Mar 29, 2021, 1:58:41 PM3/29/21
to MDnalysis-devel
Hello,

I am a 2nd year Physical Chemistry Ph.D. student in the Persson group at the University of California Berkeley. My research focuses on analyzing the solvation structure of battery electrolytes. MDAnalysis is my primary tool for analysis, it is an excellent package and I use it often. 

However, while MDanalysis has robust analysis tools for biomolecular simulations, it does not implement many basic operations for studying ion solvation. For example, it lacks tools for ion pairing, solvation shell analysis, residence times, dielectric constant, viscosity etc. For my research, I have had to build software on top of MDAnalysis that implement this functionality (or use tools developed by my group). I feel strongly that these transport analysis tools belong in MDAnalysis. They would be easier to use, more cohesive, and easily available to others. If they were implemented, MDAnalysis would be much more convenient for the battery community.

As a GSoC project, I propose developing a cohesive software framework for studying ion solvation and adapting standard solvation analysis routines to fit into this framework. 


A couple questions:

1. Are prior commits to MDAnalysis a requirement for acceptance? I have code that I could fit into the MDAnalysis framework, but I haven't done much development inside MDAnalysis before.

2. Does the project above sound appropriate for a GSoC project? I imagine that it would belong in the Analysis module. 

Orion Cohen 

Richard Gowers

unread,
Mar 29, 2021, 3:01:47 PM3/29/21
to Mdnalysis-Devel
Hi Orion,

Re 1) Yes.  We've got a list of things which might be easy places to start here: https://github.com/MDAnalysis/mdanalysis/labels/GSOC%20Starter

Issues 2558 and 2915 both look like they've got pretty good tracebacks to work from.

Re 2) Yeah bringing your own project is a good idea, but the deadline is April 13th, so you'll have to be pretty quick at developing the idea.  I think a solvation shell analysis module would be a cool feature to add, but we'd want to make sure it was scoped properly so it was achievable within the timeframe.

Richard

--
You received this message because you are subscribed to the Google Groups "MDnalysis-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mdnalysis-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mdnalysis-devel/fffa3440-466a-4789-8720-2282cae81fc7n%40googlegroups.com.

Orion Cohen

unread,
Mar 29, 2021, 4:01:03 PM3/29/21
to MDnalysis-devel
Hi Richard,

1) Excellent, thank you for the suggestions. Could I commit a feature to a different part of the code? Or should I focus on the open Issues? I'll move fast on getting a commit up.

2) Of course, and I am hoping to get the devs feedback on what would be realistic. I have some basic features in mind and much more functionality that could be layered on top. What's the best way to get feedback? Should I just keep posting to this thread?

I imagine that the core tools for solvation would be:
  • a small set of functions for solvation shell selection. (e.g. finding the closest n molecules, finding all molecules within n angstrom)
  • a tool for identifying the cutoff point of an ion solvation shell from the RDF
  • a tool for analyzing the speciation of the solvation shell
  • a tool for analyzing ion pairing
  • versions of those tools for getting cumulative statistics over all atoms and over the course of the trajectory
If there was time, it would be great to implement common functions for transport analysis, like those implemented in PyLat. Namely 
  • self-diffusivity
  • ionic conductivity
  • viscosity
  • dielectric constant
  • residence times
What is the best way to make this into a realistic and solid project proposal for GSoC?

Best,

Orion

Oliver Beckstein

unread,
Mar 29, 2021, 4:20:02 PM3/29/21
to mdnalysis-devel
Hi Orion,

Sounds interesting. Some quick comments: With rdf.inter_rdf_s there already exists a tool that we often use to analyze solvation shells e.g. of ions bound to protein binding sites. There are also tools for calculating MSD. You’d want to explain how your proposal fits in with what’s already there or makes use of it. E.g., makes it a lot easier.

If there’s existing code out there then consider using it instead of re-implementing it. Can you use an existing API? What’s the advantage of re-implementation? These would be questions to be considered in a proposal.

If you’re looking for issues to fix you could look for anything related to MSD or periodic boundaries — both seems relevant to what you’re interested in.

We’re not encouraging students to submit PRs for essentially there proposed project, see https://github.com/MDAnalysis/mdanalysis/wiki/GSoC-FAQ#should-i-start-a-pr-for-a-project-that-i-am-writing-my-proposal-for


Best,
Oliver


--
Oliver Beckstein (he/his/him)


MDAnalysis – a NumFOCUS fiscally sponsored project




Richard Gowers

unread,
Mar 29, 2021, 4:23:51 PM3/29/21
to Mdnalysis-Devel
Re Re 1) Yes.  I was going to mention, there's a thing in mdgo/util that returns the PBC adjusted vector between positions (that sadly doesn't do triclinic boxes).  This is something I've wanted in lib.distances for a while.

I think getting half of the points in your first set of bullet points would be a good outcome, then you can properly document, test and have tutorials on the module.  I think you (can) submit your proposal as a google doc, so once you've got something drafted you could share that.

Richard

Orion Cohen

unread,
Mar 29, 2021, 5:34:16 PM3/29/21
to MDnalysis-devel
Thanks for the feedback y'all!

Oliver, 
I've been using inter_rdf extensively, it's a great tool and I have no intention of reimplementing it (though I may add a memoizer to the dev branch as my commit). When analyzing solvation shells of ions in electrolytes, it's important to rigorously evaluate the edge of the solvation shell, rather than choosing an arbitrary cutoff. I'd like to build some functionality on top of rdf.inter_rdf_s to make that automatic, rather than having to figure it out by hand. Essentially finding the minima of the RDF.

The PyLat package is specific to LAMMPS trajectories only, so it's sadly kinda antithetical to the MDanalysis approach. As far as other existing functions, much of the code I am thinking of is just small python modules passed around within my group. With the authors permission, I'd like to refactor some of those into MDanalysis. Though most of the code I'd like to add would be my own.

Richard,
Thanks that's really helpful for setting the scope. I'll write up my plans in more detail as a google doc and post it here. Once that's done, hopefully it will be easier for y'all to provide feedback.


- Orion

Hugo Macdermott-Opeskin

unread,
Mar 29, 2021, 7:02:02 PM3/29/21
to mdnalys...@googlegroups.com
Hi Orion, 

I would fully support the functions for analysis of transport properties! It’s an area that I think is of significant interest and not many packages do it. 

However, probably the most critical part of correctly computing transport properties in MDA is generating unwrapped trajectories from wrapped ones. It’s something that we currently lack and is not trivial to implement. 

 As such I would recommend your ideas around ion solvation, which sound like an awesome addition. Happy to comment on your proposal when it’s a Google doc. 

Cheers 
Hugo. 


--
Hugo MacDermott-Opeskin
PhD Candidate, RSC ANU

Orion Cohen

unread,
Mar 30, 2021, 11:58:04 PM3/30/21
to MDnalysis-devel
I'm glad there is enthusiasm for this idea! 

As suggested, I am targeting ion solvation rather than transport. I wrote up a proposal that outlines my ideas in greater detail. You can find it at this link. I believe you should be able to comment on it, but let me know if you have any trouble with access. Any feedback would be greatly appreciated! I'd like to make this proposal as strong as I can.

- Orion

Orion Cohen

unread,
Apr 4, 2021, 6:10:01 PM4/4/21
to MDnalysis-devel
Thank you everyone for the feedback. I've incorporated many of your suggestions, reconsidered my implementation plan, and have now rewritten a second draft. It is at the same link, it would be awesome if anyone has a chance to revisit it.

I also nearly have my pull request approved, so the application is coming together!

Orion Cohen

unread,
Apr 13, 2021, 7:05:25 PM4/13/21
to MDnalysis-devel
Thank you to everyone who took a chance to make edits. I appreciated your thoughtful comments and suggestions. I've submitted my proposal and I hope to be able to work with you this summer!

Best,

Orion
Reply all
Reply to author
Forward
0 new messages