Opened 6 years ago

Closed 5 years ago

Last modified 21 months ago

#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 Eric Pettersen)

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 Eric Pettersen, 6 years ago

Cc: chimera-programmers added
Status: assignedaccepted

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

in reply to:  2 ; comment:2 by goddard@…, 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.

in reply to:  3 ; comment:3 by Tristan Croll, 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:

in reply to:  4 ; comment:4 by Tristan Croll, 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 Eric Pettersen, 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 Eric Pettersen, 6 years ago

Cc: Tom Goddard added; chimera-programmers removed

comment:7 by Eric Pettersen, 5 years ago

Cc: Greg Couch 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 Greg Couch, 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 Eric Pettersen, 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 Eric Pettersen, 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.

in reply to:  11 ; comment:11 by Tristan Croll, 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 Eric Pettersen, 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 Greg Couch, 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 Eric Pettersen, 5 years ago

I'm not sure I would exactly call that "prominent". On the other hand, I doubt anyone will actually complain.

in reply to:  15 ; comment:15 by Tristan Croll, 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 Eric Pettersen, 5 years ago

Resolution: fixed
Status: acceptedclosed

Installed ParmEd as a prereq. It adds 4.6M to the distribution (on Mac).

comment:17 by Eric Pettersen, 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 Tristan Croll, 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 Eric Pettersen, 21 months ago

Okay, I've updated ParmEd. Fingers crossed it doesn't biff tonights builds...

Note: See TracTickets for help on using tickets.