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

blog post for "on the fly transformations" #86

Closed
orbeckst opened this issue Jul 17, 2018 · 10 comments
Closed

blog post for "on the fly transformations" #86

orbeckst opened this issue Jul 17, 2018 · 10 comments
Assignees
Labels
Blog blog content and articles

Comments

@orbeckst
Copy link
Member

How about a blog post highlighting what @jbarnoud called "pure magic":
MDAnalysis/mdanalysis#1987 (review)

I needed it today, and it works just as expected. Along side @davidercruz's on-the-fly transformation it is pure magic.

(Perhaps also throw in notes on the new smart ChainReader by @kain88-de , especially for the Gromacs folks.)

@orbeckst orbeckst added the Blog blog content and articles label Jul 17, 2018
@richardjgowers
Copy link
Member

So @davidercruz 's transformations are going to be pretty cool for analysis. WRT unwrap, I started work on tightly integrating this with AtomGroup, so hopefully soonish we'll have ag.center_of_mass(unwrap=True) to calculate a "True" center of mass, rather than the pbc mess we currently have

@richardjgowers
Copy link
Member

So yeah I might wait on the nice integration with AtomGroup before I go shouting about unwrap too much, I think it's still a little hard to use right now

@orbeckst
Copy link
Member Author

Ok – just thought I put down a marker for the not too distant future.

We also need to be clear somewhere in the docs what we mean by "unwrap" and "pbc" and putting into boxes etc – perhaps if we first do a blog post about it with a few instructive figures and then we can recycle for the docs.

Something that explains to beginners what the problems are (essentially, the Gromacs options gmx trjconv -pbc XXX -mol YYY -ur ZZZ...)

  1. we do simulations under PBC,
  2. how do we get "appropriate" distances (minimum image),
  3. how do we get appropriate per-molecule properties (unwrapping)
  4. how to get diffusion properties (unwrapping – can we do it properly for solvent particles?)
  5. keeping molecules together (e.g. for visualization)
  6. packing all molecules in unit cell representations (can we do this like -ur compact – I don't think so?)

Am I missing something?

cc @kain88-de and @jbarnoud

@kain88-de
Copy link
Member

I stand by my point that this topic is good content for the next blog post that @davidercruz has to write according to the NumFOCUS rules anyway.

@orbeckst
Copy link
Member Author

Someone ought to start writing something somewhere :-).

If @davidercruz starts with his blog post that includes what he has then this can be taken as a basis for an MDAnalysis post and a write-up in the docs.

@davidercruz
Copy link
Contributor

@kain88-de the blog post that I did for my first evaluation already includes some details on the transformations API itself. I can make another one later that includes the transformations that have been added since.

@kain88-de
Copy link
Member

We need more then just a list of what has been added. Currently, only a handful of people know how cool this feature is to the rest of the world we need to show it. This means having a nice little story with examples. As I have said earlier replacing a trnconv post processing script with your transformations would be a good example. It can be directly used, people know exactly what you are doing (given they work with gromacs).

@jbarnoud
Copy link
Contributor

I would like @davidercruz to start this, and to start it very soon. As I see it, it should read as a user oriented demo on a real looking case. Something like centering a transmembrane protein would be nice. Ideally, the blog post should compare the process with trjconv and contain pictures. Movies would be neat too. I strongly recommend you design the content in a jupyter notebook to make sure the example work. Then the notebook could be added to the notebook repository.

@richardjgowers
Copy link
Member

I'm pasting this from the 0.19.0 blogpost so we can use it in the 0.20.0 release post

On-the-fly trajectory transformations

GSoC student David Cruz (@davidercruz) implemented on-the-fly trajectory transformations.
Think of it as specifying additional transformations such as centering, removing periodic-boundary
artifacts, or RMSD-fitting that are applied to a trajectory before the coordinates are passed
to user code. Transformations can be stacked and associated with a trajectory. For example:

  1. center on protein
  2. make all molecules whole that were broken across the periodic boundaries
  3. superimpose each frame to a reference structure by minimizing the RMSD ("RMSD fitting")

No intermediate trajectories have to be written, the transformations are simply applied to the
current in-memory coordinates. Although this approach incurs a computational overhead, it is generally
still much more efficient than writing out intermediate trajectories to disk because the cost
for I/O tends to be much larger than for the computation of the transformation.
This works particularly well for interactive analysis in a Jupyter notebook as well as
[visualization of trajectories with nglview][].
Furthermore, one can implement custom transformations and stack them arbitrarily.

Davide wrote an in-depth post about his [On-the-fly transformations] where he shows more examples.

@orbeckst
Copy link
Member Author

orbeckst commented Mar 19, 2019

Note that I (finally – sorry @davidercruz !) merged @davidercruz 's PR MDAnalysis/binder-notebook#10 with the example notebook. I hope it still works...

EDIT: Well, data files are missing MDAnalysis/binder-notebook#13

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Blog blog content and articles
Projects
None yet
Development

No branches or pull requests

5 participants