-
Notifications
You must be signed in to change notification settings - Fork 37
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
Slicing and selection #6
Comments
Selections are really important. It's a bit confusing that there are different ways by which to accomplish the same thing.
We need to prioritize what we want to teach users first and then give more options. Most nee users will likely start with the selection language. Any opinions? |
Perhaps it is important to get the idea across that the goal is always to create a new AtomGroup. As an advanced topic: This AtomGroup can be static (AtomGroup) or dynamic (UpdatingAtomGroup). |
I agree that most MD users probably are familiar with existing atom selection language and will use that first. Anyone with a passing introduction to Python will have also encountered numpy/pandas, so normal/fancy indexing isn't so niche either. Boolean indexing is very useful but only once you have actually acquired a Boolean array, which is only likely to happen in the process of some other kind of tinkering -- using atom selection language seems far easier for simply going through TopologyAttributes. I suppose something like Set operations are cool but I'm really scratching my head for a use case for creating an AtomGroup that you couldn't accomplish just as easily with selection language. Finally, I'm unclear how to create a new AtomGroup with a My current mental plan for this issue / user story is to split selection language off into its own page and keep all other AtomGroup creation methods on the AtomGroup page. UpdatingAtomGroups would be mentioned on both. I don't know that users would find them very advanced, as they behave virtually the same as far as the user is concerned ( selections.rst
AtomGroups (currently shares a page with Universe information on data_structures.rst)
In any case, entirely new users would probably be pointed to the quick start guide first (#11 ). There, I only introduce atom selection language, indexing/slicing, and fancy indexing. I would love your thoughts on that as a prioritised introduction that hopefully covers most of the typical use cases. |
Closed by #14 |
Story: As a user, I want to get hydrogens bonded to oxygens that are not water molecules, where the hydrogen within 4 A of a protein domain but not within a certain cylindrical zone.
Story: As a user, I want to get atoms from my Universe by index, so that I can compute the angle defined by the ordered atoms. [Notebook example]
Acceptance criteria:
The text was updated successfully, but these errors were encountered: