#3055 closed enhancement (fixed)
Add ParmEd to ChimeraX's standard bundles
| Reported by: | Tristan Croll | Owned by: | Eric Pettersen |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | Core | Version: | |
| Keywords: | Cc: | Tom Goddard, Greg Couch | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description (last modified by )
I think I brought this up once before, but can't find an existing ticket on the specific question. ParmEd is a library developed in collaboration with AMBER for conversion of parameters between the different force field formats. It's on GitHub at https://github.com/ParmEd/ParmEd and the PyPI as a source distribution at https://pypi.org/project/ParmEd/. Having it available in ChimeraX would make it trivially easy to give users support for most ligands in ISOLDE: Call phenix.elbow as a subprocess to generate the AMBER parameters, then use ParmEd to convert to OpenMM's ffXML (I already have the method for that in place). The fact that ParmEd is a source distribution makes it hard to ask users to install it for themselves (easy enough in Linux, but Mac and Windows users would have to install XCode or Visual Studio respectively) - but it installs quite trivially once a compiler is present:
/path/to/chimerax/bin/python3.7 -m pip install versioneer ParmEd
The current alternative would be for me to wrap the necessary code in a try...except and print instructions on how to install the prerequisites to the log (or better: "ParmEd is not installed. Would you like to install it now?" once I figure out how to make that work).
Change History (19)
comment:1 by , 6 years ago
| Cc: | added |
|---|---|
| Status: | assigned → accepted |
follow-up: 2 comment:2 by , 6 years ago
If ParmEd is something only ISOLDE plans on using (like Clipper) then it should probably be a bundle. If it is something that ChimeraX needs for its generic MD capabilities that will be included in the future, then maybe a prereq is fine. Definitely we cannot ask users to have a compilation environment.
follow-up: 3 comment:3 by , 6 years ago
ParmEd would probably also come in useful if you had any plans down the track to support loading/saving simulation topology formats (it can read/write and interconvert between CHARMM, AMBER and GROMACS topologies, at least). On 2020-04-16 23:40, ChimeraX wrote:
follow-up: 4 comment:4 by , 6 years ago
Hmm... as of version 0.93 the approach: /opt/UCSF/ChimeraX/bin/python3 -m pip install versioneer parmed ... is broken (ChimeraX doesn't see the installed files). Looks like the pip install now includes the --user flag by default, but the install ends up in ~/.local/lib/python3.7/site-packages rather than in ChimeraX's .local. On the other hand, "ChimeraX -m pip install --user ..." now works fine (was previously breaking on occasion). On 2020-04-16 23:40, ChimeraX wrote:
comment:5 by , 6 years ago
Upon further reflection, even if ChimeraX does use it I think it's best as a bundle, so that other bundles can explicitly declare dependencies on it -- possibly on specific versions of it. So I'll be removing chimera-programmers from the cc list.
comment:6 by , 6 years ago
| Cc: | added; removed |
|---|
comment:7 by , 5 years ago
| Cc: | added |
|---|
I guess we can use the same strategy for ParmEd as Tom did for Segger: make a bundle based off a source tarball. ParmEd is LGPL, which means there are bunch of issues in section 4 of that license (https://www.gnu.org/licenses/lgpl-3.0.en.html) that need to be addressed, including (but not limited to) giving "prominent notice" that ParmEd is included and that it is covered by LGPL, and accompanying ChimeraX with copies of the GPL and LGPL (though not _covered_ by either).
So, Tom, does a Segger-like approach seem like the way to go?
Greg, how do you think we can address the LGPL issues?
comment:8 by , 5 years ago
I think for LGPL, whoever distributes the module needs to be able to provide the source as well. From the toolshed's point of view, it is just a redistribution agent, so the submitter would have that responsibility.
comment:9 by , 5 years ago
I think the idea is for this to be a "standard bundle", shipped with ChimeraX and not even necessarily appearing on the toolshed.
comment:10 by , 5 years ago
It's also a bundle around a library that will have no direct GUI presence, which making even logging something ugly/nightmarish.
follow-up: 11 comment:11 by , 5 years ago
I personally wouldn’t have any problem with it being a bundle on the ToolShed - but for that to happen bundles would need to be able to install directly under site-packages rather than site-packages/chimerax. Another option might be for bundle source trees to be allowed to have a directory called prereqs containing wheel files that need to be installed before the bundle proper. Then it would be my responsibility to build ParmEd and bundle it in.
comment:12 by , 5 years ago
Oh yeah, ugh, needs to go directly into site-packages and not site-packages/chimera. That changes my mind -- I think it should be a prereq. Still leaves the issue of presenting the LGPL information to users of the package.
comment:13 by , 5 years ago
If the bundle is distributed with ChimeraX, then it's license will automatically be added to the embedded software page when the documentation is built. See http://www.rbvi.ucsf.edu/chimerax/docs/embedded.html.
comment:14 by , 5 years ago
I'm not sure I would exactly call that "prominent". On the other hand, I doubt anyone will actually complain.
follow-up: 15 comment:15 by , 5 years ago
For what it's worth, it's bundled into Phenix (with the active help of the developer Jason Swails) and the only place I can find its license text is in its directory in the source tree (all source is distributed with every copy of Phenix - which honestly seems a bit of an inefficient approach, but that's how they do it). On 2020-07-09 17:21, ChimeraX wrote:
comment:16 by , 5 years ago
| Resolution: | → fixed |
|---|---|
| Status: | accepted → closed |
Installed ParmEd as a prereq. It adds 4.6M to the distribution (on Mac).
comment:17 by , 21 months ago
| Description: | modified (diff) |
|---|
Hi Tristan,
A couple of questions...
1) Are you still making use of ParmEd?
2) If you are, is there any reason we couldn't update it to the current version (4.2.2)? It's currently at 3.4.3.
--Eric
comment:18 by , 21 months ago
Thanks for asking! Yes, I’m still using it - to convert the parameters for custom ligands from ANTECHAMBER’s output .mol2/.frcmod to OpenMM’s ffXML. It’s only a few lines in my code - in the unlikely event that updating does break something, it should be a trivial fix. So please go ahead. :) On Tue, 13 Feb 2024 at 00:50, ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote: > > > > > > > > > > > >
comment:19 by , 21 months ago
Okay, I've updated ParmEd. Fingers crossed it doesn't biff tonights builds...
I'm cc'ing chimera-programmers since this is really a discussion topic as to how we would want to provide access to ParmEd.
Tristan, the ticket you were looking for was #1850. To summarize for the other programmers, Tristan needs access to ParmEd so that he can convert AMBER .frcmod/.mol2 flies into OpenMM XML format. ParmEd is available on pypi, but as a _source_ distribution, which means if ISOLDE declares a dependency on it, then users will have to have a compilation environment installed on their machines.
Ticket #1850 was opened a year ago and at that time I thought we might be working on integrating molecular mechanics capabilities into ChimeraX in a year or two, so we agreed to wait. Fast forward to today and I'm not 100% sure when or even if we will be integrating those capabilities, so it no longer seems to be a good idea to wait on that.
So question to the other programmers: what would be the best way to provide access to ParmEd? As a prereq? As a bundle on the toolshed? Some other method?
--Eric