openmm / openmmforcefields

CHARMM and AMBER forcefields for OpenMM (with small molecule support)
http://openmm.org
Other
254 stars 80 forks source link

Support more platforms #258

Open peastman opened 1 year ago

peastman commented 1 year ago

The conda package can only be installed on Linux or x86 Mac. It can't be installed on either ARM Mac or Windows. That's because it lists ambertools as a required dependency, which only has packages for those platforms. But ambertools isn't needed for most features of this package. I think the GAFF generator is the only thing that uses it. We should change it to an optional dependency so Mac and Windows users can install this package and use all its other features.

mattwthompson commented 1 year ago

it lists ambertools as a required dependency

Is it needed at runtime, or just listed as a dependency in the conda package?

https://github.com/conda-forge/openmmforcefields-feedstock/pull/4 (with AmberTools moved from the base to the full package) could possibly be used to do this without changes if it can run the non-GAFF code without AmberTools installed and if no other dependencies have platform constraints.

peastman commented 1 year ago

As far as I can tell, the only place it's used at runtime is GAFFTemplateGenerator._run_antechamber().

jchodera commented 1 year ago

@peastman: The limitation here is AmberTools. The conda-forge feedstock for ambertools is here.

There is a known issue since 2021 that needs attention. @mikemhenry has not successfully been able to solve the issues with cross-compiling AmberTools for osx-arm on conda-forge. Maybe you can help?

mattwthompson commented 1 year ago

Splitting out the package would enable all non-GAFF functionality, at least for OpenEye users, without needing to fix all of AmberTools

mikemhenry commented 1 year ago

I will work on getting the arm build of ambertools 2023 working (will at least give it a try)

Maybe we make a openmmforcefields-base package that doesn't have ambertools as a dep, and add a warning to GAFFTemplateGenerator._run_antechamber() if it can't find antechamber that it must be installed for this function to work.

jchodera commented 1 year ago

Thanks, @mikemhenry! An openmmforcefields-base package may help, but we should check in with the AmberTools devs first to see if there's any short-term solution to the conda-forge issues.

@mattwthompson @peastman : Do you think it would be useful to also add a pointer to documentation about how prepending CONDA_SUBDIR=osx-arm64 to conda can be used as a workaround for now?

mattwthompson commented 1 year ago

Sure, presumably you mean CONDA_SUBDIR=osx-64. You can copy to or link from the OpenFF docs for this: https://docs.openforcefield.org/en/latest/install.html#openff-on-apple-silicon-and-arm

jochuan commented 11 months ago

Any news about this ?

mikemhenry commented 10 months ago

We now have conda-forge package for linux, macOS (x86 and arm64). Is there a platform that you would like that isn't supported @jochuan ?

jochuan commented 10 months ago

We now have conda-forge package for linux, macOS (x86 and arm64). Is there a platform that you would like that isn't supported @jochuan ?

I tried to install this on windows and it didn't worked, then after some search i found this issue

mattwthompson commented 10 months ago

WSL2 is likely the lowest-friction way to get things working. Do you have a use case that requires native Windows installation? Some of this package's upstreams aren't reliably available on that platform.

jochuan commented 10 months ago

WSL2 is likely the lowest-friction way to get things working. Do you have a use case that requires native Windows installation? Some of this package's upstreams aren't reliably available on that platform.

It is more a question of convenience since all the softwares that i am currently using are on Windows and WSL2 doesn't permit the usage of GPU for amd at least from what i tried.

mattwthompson commented 10 months ago

Could you elaborate on what you tried and what didn't work?

jochuan commented 10 months ago

Could you elaborate on what you tried and what didn't work?

OpenCL is currently not supported on WSL2 and since my GPU is from AMD that is the only way to make OpenMM to use the gpu for molecular dynamics. So that is why a native Windows installation is required. I already tried to tinker around it when i tried to use Gromacs on WSL2 but there is no solution for this.

mattwthompson commented 10 months ago

You could prepare everything in a Linux environment, serialize everything out to disk, and then do the simulations in a Windows environment. (You don't have to prepare and run OpenMM simulation from within the same script.)