Closed xperrylinn closed 11 months ago
Ran the command on its own. This is what I found:
(base) xperrylinn@MacBook-Pro bespokefit_workshop % antechamber -i molecule.sdf -fi sdf -o sqm.in -fo sqmcrt -pf yes -c mul -nc 0.0 e
Welcome to antechamber 22.0: molecular input file processor.
/Users/xperrylinn/miniconda3/envs/bespoke-env/bin/wrapped_progs/antechamber: Fatal Error!
Number of arguments is odd - arguments must come in pairs.
Use antechamber -h for command-line syntax.
It appears to be related to the formatting of command line arguments. I'll check the reference documentation to see if there's a clue.
molecule.sdf:
C3H6O
APtclcactv02122312273D 0 0.00000 0.00000
10 9 0 0 0 0 0 0 0 0999 V2000
1.3051 -0.6772 -0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0763 -0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.0000 1.2839 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
-1.3051 -0.6772 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1.6198 -0.8588 1.0277 H 0 0 0 0 0 0 0 0 0 0 0 0
1.1748 -1.6296 -0.5138 H 0 0 0 0 0 0 0 0 0 0 0 0
2.0647 -0.0881 -0.5138 H 0 0 0 0 0 0 0 0 0 0 0 0
-1.1059 -1.7488 -0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
-1.8767 -0.4138 0.8900 H 0 0 0 0 0 0 0 0 0 0 0 0
-1.8767 -0.4138 -0.8900 H 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
2 3 2 0 0 0 0
2 4 1 0 0 0 0
1 5 1 0 0 0 0
1 6 1 0 0 0 0
1 7 1 0 0 0 0
4 8 1 0 0 0 0
4 9 1 0 0 0 0
4 10 1 0 0 0 0
M END
$$$$
^^^ Turns out the last argument needed to be wrapped in quotes to get parsed correctly. I'm getting what looks like to be a successful out.
(base) xperrylinn@MacBook-Pro bespokefit_workshop % antechamber -i molecule.sdf -fi sdf -o sqm.in -fo sqmcrt -pf yes -c mul -nc '0.0 e'
Welcome to antechamber 22.0: molecular input file processor.
Info: acdoctor mode is on: check and diagnose problems in the input file.
Info: The atom type is set to gaff; the options available to the -at flag are
gaff, gaff2, amber, bcc, and sybyl.
-- Check Format for sdf File --
Status: pass
-- Check Unusual Elements --
Status: pass
-- Check Open Valences --
Status: pass
-- Check Geometry --
for those bonded
for those not bonded
Status: pass
-- Check Weird Bonds --
Status: pass
-- Check Number of Units --
Status: pass
acdoctor mode has completed checking the input file.
Info: Total number of electrons: 32; net charge: 0
Running: /Users/xperrylinn/miniconda3/envs/bespoke-env/bin/sqm -O -i sqm.in -o sqm.out
Info: Total number of electrons: 32; net charge: 0
Okay the issue definitely appears to be with openff
. There isn't error handling, so the standard output from the process error isn't returned by the API. I added some error handling to see what the issue was and this is what I got the following from standard out. Nothing in standard error and the exit code is 1:
b'\nWelcome to antechamber 22.0: molecular input file processor.\n\nInfo: acdoctor mode is on: check and diagnose problems in the input file.\nInfo: The atom type is set to gaff; the options available to the -at flag are\n gaff, gaff2, amber, bcc, and sybyl.\n\n-- Check Format for sdf File --\n Status: pass\n-- Check Unusual Elements --\n Status: pass\n-- Check Open Valences --\nWarning: This molecule has no hydrogens nor halogens.\n It is quite possible that there are unfilled valences.\n-- Check Geometry --\n for those bonded \n for those not bonded \n Status: pass\n-- Check Weird Bonds --\n Status: pass\n-- Check Number of Units --\n Status: pass\nacdoctor mode has completed checking the input file.\n\nInfo: Total number of electrons: 0; net charge: 0\n\nRunning: /Users/xperrylinn/miniconda3/envs/bespoke-env/bin/sqm -O -i sqm.in -o sqm.out\n'
I think I figured out a way to get it working - if I run antechamber -i molecule.sdf -fi sdf -o sqm.in -fo sqmcrt -pf yes -c mul -nc "0.0 e"
twice in the terminal it appears to unsnag running the fragmentation code. This is also after initially placing a dummy molecule.sdf
file the working directory.
edit: nevermind. something weird is happening.
Hi Xavier, I saw your comment on the Gist - thanks for raising this issue. Let me try and reproduce on my Mac and get back to you.
While I'm doing that - are you using an Apple Silicon Mac? If so, how did you install the Conda environment - are you using an AMD64 Conda installation and running it through Rosetta2, or something else?
This is really weird. I am unable to reproduce on my Mac. The environment Conda solved for me was identical to yours, except for the version of PyMBAR and some related dependencies, but upgrading that didn't make a difference. Note that the OpenFF stack isn't yet compatible with PyMBAR 4, but that doesn't seem to be what's going on here.
I infer from the traceback that this came up when you tried to run the bespokefit.ipynb
fragmentation demonstration cell - did you make any changes to the notebook? Do you get an error when you try to run BespokeFit directly, ie with something like
openff-bespoke executor run --smiles "CC(=O)NC1=CC=C(C=C1)O" \
--workflow "default" \
--output "acetaminophen.json" \
--output-force-field "acetaminophen.offxml" \
--n-qc-compute-workers 1 \
--qc-compute-n-cores 2 \
--default-qc-spec xtb gfn2xtb none
from the quickstart guide acetaminophen example?
I suspect there may be something going on with Apple Silicon, Rosetta, and a previously-installed copy of Antechamber, but I can't think of any way this could've come about as it should be impossible to install AmberTools in an osx-arm64
Conda environment. You could try installing a new copy of osx-64
Conda/Mamba (ie, NOT osx-arm64
) and running it through Rosetta, if that's not what you've done already.
Other than that, @j-wags @mattwthompson - any ideas?
It's encouraging you are as confused as me, I was at a loss from just reading things. (
I thought briefly about something sneaking in through $AMBERHOME
but the paths to antechamber
and sqm
go through the conda environment.) I've been running Ambertools via Rosetta for about a year now without failures this cryptic. My AmberTools build is the same (py310h35066de_3
). The error is bubbling up from WBO assignment but not something that strikes me as a method call with strange arguments.
The only suggestion I have is making a fresh conda environment and running some AmberToolsToolkitWrapper
commands more directly. From the information available it's probably a toolkit issue and not something broken here.
from openff.toolkit.topology import Molecule
from openff.toolkit.utils.ambertools_wrapper import AmberToolsToolkitWrapper
from openff.toolkit.utils.rdkit_wrapper import RDKitToolkitWrapper
from openff.toolkit.utils.toolkit_registry import ToolkitRegistry
molecule = Molecule.from_smiles(
"CC(=O)NC1=CC=C(C=C1)O",
toolkit_registry=ToolkitRegistry([RDKitToolkitWrapper()]),
)
molecule.generate_conformers(n_conformers=10)
molecule.assign_partial_charges(
partial_charge_method="am1bcc",
toolkit_registry=ToolkitRegistry([AmberToolsToolkitWrapper()]),
)
for conformer in molecule.conformers:
molecule.assign_fractional_bond_orders(
"am1-wiberg",
use_conformers=[conformer],
toolkit_registry=ToolkitRegistry([AmberToolsToolkitWrapper()]),
)
Hi Xavier, I saw your comment on the Gist - thanks for raising this issue. Let me try and reproduce on my Mac and get back to you.
While I'm doing that - are you using an Apple Silicon Mac? If so, how did you install the Conda environment - are you using an AMD64 Conda installation and running it through Rosetta2, or something else?
Hi Josh, thank you for the quick response! Below is my Mac specification and I installed the dependencies using conda 23.1.0
and I'm managing environments with miniconda3:
openff-bespoke executor run --smiles "CC(=O)NC1=CC=C(C=C1)O" \ --workflow "default" \ --output "acetaminophen.json" \ --output-force-field "acetaminophen.offxml" \ --n-qc-compute-workers 1 \ --qc-compute-n-cores 2 \ --default-qc-spec xtb gfn2xtb none
No changes were made to the notebook. This command has been affording the same error, but I just ran it again and it went successfully all the way to QC Generation before hitting a OS too many files open error. I was surprised it worked, but then I remembered I had not deleted the sqm.in
, and sqm.out
files, so I deleted them and now the command is failing with the same subprocess error. I added these two sqm files by running the sub-process command outside of the python package on its own as I mentioned above which seems to work fine.
(bespoke-env) MacBook-Pro:bespokefit_workshop xperrylinn$ openff-bespoke executor run --smiles "CC(=O)NC1=CC=C(C=C1)O" --workflow "default" --output "acetaminophen.json" --output-force-field "acetaminophen.offxml" --n-qc-compute-workers 1 --qc-compute-n-cores 2 --default-qc-spec xtb gfn2xtb none
/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/celery/fixups/django.py:42: FixupWarning: Environment variable DJANGO_SETTINGS_MODULE is defined
but Django isn't installed. Won't apply Django fix-ups!
warnings.warn(FixupWarning(ERR_NOT_INSTALLED))
─────────────────────────────────────────────────────────────────────────── OpenFF Bespoke ────────────────────────────────────────────────────────────────────────────
/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/celery/fixups/django.py:42: FixupWarning: Environment variable DJANGO_SETTINGS_MODULE is
defined
but Django isn't installed. Won't apply Django fix-ups!
warnings.warn(FixupWarning(ERR_NOT_INSTALLED))
⠹ launching the bespoke executor/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/celery/fixups/django.py:42: FixupWarning: Environment variable DJANGO_SETTINGS_MODULE is defined
but Django isn't installed. Won't apply Django fix-ups!
warnings.warn(FixupWarning(ERR_NOT_INSTALLED))
/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/celery/fixups/django.py:42: FixupWarning: Environment variable DJANGO_SETTINGS_MODULE is defined
but Django isn't installed. Won't apply Django fix-ups!
warnings.warn(FixupWarning(ERR_NOT_INSTALLED))
/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/celery/fixups/django.py:42: FixupWarning: Environment variable DJANGO_SETTINGS_MODULE is defined
but Django isn't installed. Won't apply Django fix-ups!
warnings.warn(FixupWarning(ERR_NOT_INSTALLED))
⠸ launching the bespoke executor/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/celery/fixups/django.py:42: FixupWarning: Environment variable DJANGO_SETTINGS_MODULE is defined
but Django isn't installed. Won't apply Django fix-ups!
warnings.warn(FixupWarning(ERR_NOT_INSTALLED))
[✓] bespoke executor launched
1. preparing the bespoke workflow
[✓] 1 molecules found
[✓] fitting schemas generated
2. submitting the workflow
[✓] the following workflows were submitted
┏━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━┳━━━━━━┓
┃ ID ┃ SMILES ┃ NAME ┃ FILE ┃
┡━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━╇━━━━━━┩
│ 1 │ CC(=O)Nc1ccc(O)cc1 │ │ │
└────┴────────────────────┴──────┴──────┘
3. running the fitting pipeline
[x] fragmentation failed
{"type": "CalledProcessError", "message": "Command '['antechamber', '-i', 'molecule.sdf', '-fi', 'sdf', '-o', 'sqm.in', '-fo', 'sqmcrt', '-pf', 'yes', '-c', 'mul',
'-nc', '0.0 e']' returned non-zero exit status 1.", "traceback": "Traceback (most recent call last):\n File
\"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/celery/app/trace.py\", line 451, in trace_task\n R = retval = fun(*args, **kwargs)\n
File \"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/celery/app/trace.py\", line 734, in __protected_call__\n return self.run(*args,
**kwargs)\n File \"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/openff/bespokefit/executor/services/fragmenter/worker.py\", line 37, in
fragment\n fragmenter.fragment(molecule, target_bond_smarts=target_bond_smarts)\n File
\"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/openff/fragmenter/fragment.py\", line 916, in fragment\n result =
self._fragment(molecule, target_bond_smarts)\n File \"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/openff/fragmenter/fragment.py\",
line 1019, in _fragment\n fragments = {\n File \"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/openff/fragmenter/fragment.py\", line
1020, in <dictcomp>\n bond: self._build_fragment(\n File
\"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/openff/fragmenter/fragment.py\", line 1198, in _build_fragment\n wbo_difference =
cls._compare_wbo(\n File \"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/openff/fragmenter/fragment.py\", line 1108, in _compare_wbo\n
fragment = assign_elf10_am1_bond_orders(fragment, **kwargs)\n File
\"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/openff/fragmenter/chemi.py\", line 48, in assign_elf10_am1_bond_orders\n
molecule.assign_fractional_bond_orders(\"am1-wiberg\", use_conformers=)\n File
\"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/openff/toolkit/topology/molecule.py\", line 3473, in assign_fractional_bond_orders\n
return toolkit_registry.call(\n File \"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/openff/toolkit/utils/toolkit_registry.py\", line
366, in call\n raise e\n File \"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/openff/toolkit/utils/toolkit_registry.py\", line 362,
in call\n return method(*args, **kwargs)\n File
\"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/site-packages/openff/toolkit/utils/ambertools_wrapper.py\", line 538, in
assign_fractional_bond_orders\n result = subprocess.check_output(\n File \"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/subprocess.py\", line 421,
in check_output\n return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,\n File
\"/Users/xperrylinn/miniconda3/envs/bespoke-env/lib/python3.10/subprocess.py\", line 526, in run\n raise CalledProcessError(retcode,
process.args,\nsubprocess.CalledProcessError: Command '['antechamber', '-i', 'molecule.sdf', '-fi', 'sdf', '-o', 'sqm.in', '-fo', 'sqmcrt', '-pf', 'yes', '-c', 'mul',
'-nc', '0.0 e']' returned non-zero exit status 1.\n"}
outputs have been saved to acetaminophen.json
worker: Warm shutdown (MainProcess)
worker: Warm shutdown (MainProcess)
worker: Warm shutdown (MainProcess)
It's encouraging you are as confused as me, I was at a loss from just reading things. ( I thought briefly about something sneaking in through
$AMBERHOME
but the paths toantechamber
andsqm
go through the conda environment.) I've been running Ambertools via Rosetta for about a year now without failures this cryptic. My AmberTools build is the same (py310h35066de_3
). The error is bubbling up from WBO assignment but not something that strikes me as a method call with strange arguments.The only suggestion I have is making a fresh conda environment and running some
AmberToolsToolkitWrapper
commands more directly. From the information available it's probably a toolkit issue and not something broken here.from openff.toolkit.topology import Molecule from openff.toolkit.utils.ambertools_wrapper import AmberToolsToolkitWrapper from openff.toolkit.utils.rdkit_wrapper import RDKitToolkitWrapper from openff.toolkit.utils.toolkit_registry import ToolkitRegistry molecule = Molecule.from_smiles( "CC(=O)NC1=CC=C(C=C1)O", toolkit_registry=ToolkitRegistry([RDKitToolkitWrapper()]), ) molecule.generate_conformers(n_conformers=10) molecule.assign_partial_charges( partial_charge_method="am1bcc", toolkit_registry=ToolkitRegistry([AmberToolsToolkitWrapper()]), ) for conformer in molecule.conformers: molecule.assign_fractional_bond_orders( "am1-wiberg", use_conformers=[conformer], toolkit_registry=ToolkitRegistry([AmberToolsToolkitWrapper()]), )
This code snippet is producing the same behavior as the others that I have been running.
I'll try Josh's recommendation of installing a new copy of osx-64 Conda/Mamba (ie, NOT osx-arm64) and running it through Rosetta later today and let you know how it goes.
You have an Intel mac so you shouldn't need to worry at all about Rosetta/ARM/Apple Silicon. As long as your Miniconda distribution uses osx-64
it shouldn't look at the osx-arm64
directories at all.
Something is definitely wrong somewhere, though, and I'm curious what happens with a fresh environment and/or Miniconda installation.
conda env create python=3.9.16 -n bespokefit-wrkshp --file environment.yml
Python 3.10.9
instead (guessing this doesn't matter)bespokefit-wrkshp
OK that is mystifying. If Matt's code causes the same exception then I think this is a Toolkit issue, so I'll transfer this issue there in a moment.
Your edits adding error reporting to the AmberTools wrapper are (I think) our best lead at the moment. Could you please run that again, with the following additions to the else
block:
except subprocess.CalledProcessError as e:
from pathlib import Path
import shutil
print("stdout:", e.stdout)
print("stderr:", e.stderr)
print("molecule_smiles:", molecule.to_smiles())
print("temp_mol_smiles:", temp_mol.to_smiles())
print("sdf:", Path("molecule.sdf").read_text())
print("sqm.in:", Path("sqm.in").read_text())
print("which antechamber:", shutil.which("antechamber"))
raise e
Should be line 540-something in openff/toolkit/utils/ambertools_wrapper.py
. That should let us figure out if the problem is in Antechamber or our input to it.
Could you also do a conda env export
of the environment and send us the resulting yaml
file? That'll let us reproduce the environment exactly.
Was I reading you right that you were getting different behavior when you created an sqm.in
or molecule.sdf
file in the working directory? That is very strange as the call to antechamber happens within a temporary directory, not the working directory. I'm not sure what to make of that.
There's some discussion on the AMBER mailing list about issues building with OSX 13. I'll keep following that thread as it develops.
I'm on 13.0.1 (22A400) with no issues. The conda packages are built on a much older version, though
Ahh, ok. So scratch that idea.
Your edits adding error reporting to the AmberTools wrapper are (I think) our best lead at the moment. Could you please run that again, with the following additions to the
else
block:
/Users/xperrylinn/miniconda3/envs/bespokefit-wrkshp/bin/wrapped_progs/antechamber: Fatal Error!
Cannot properly run "/Users/xperrylinn/miniconda3/envs/bespokefit-wrkshp/bin/sqm -O -i sqm.in -o sqm.out".
stdout: b'\nWelcome to antechamber 22.0: molecular input file processor.\n\nInfo: acdoctor mode is on: check and diagnose problems in the input file.\nInfo: The atom type is set to gaff; the options available to the -at flag are\n gaff, gaff2, amber, bcc, and sybyl.\n\n-- Check Format for sdf File --\n Status: pass\n-- Check Unusual Elements --\n Status: pass\n-- Check Open Valences --\nWarning: This molecule has no hydrogens nor halogens.\n It is quite possible that there are unfilled valences.\n-- Check Geometry --\n for those bonded \n for those not bonded \n Status: pass\n-- Check Weird Bonds --\n Status: pass\n-- Check Number of Units --\n Status: pass\nacdoctor mode has completed checking the input file.\n\nInfo: Total number of electrons: -1; net charge: 1\nInfo: The number of electrons is odd (-1).\n Please check the total charge (-nc flag) and spin multiplicity (-m flag).\n\nRunning: /Users/xperrylinn/miniconda3/envs/bespokefit-wrkshp/bin/sqm -O -i sqm.in -o sqm.out\n'
stderr: None
molecule_smiles: [H][c]1[c]([H])[c]([Cl])[c]([H])[c](-[c]2[c]([H])[c]([H])[c]([H])[c]([C@]3([C]([H])([H])[H])[C](=[O])[N]([C]([H])([H])[H])[C]([N]([H])[H])=[N+]3[H])[c]2[H])[c]1[H]
temp_mol_smiles: [H][c]1[c]([H])[c]([Cl])[c]([H])[c](-[c]2[c]([H])[c]([H])[c]([H])[c]([C@]3([C]([H])([H])[H])[C](=[O])[N]([C]([H])([H])[H])[C]([N]([H])[H])=[N+]3[H])[c]2[H])[c]1[H]
sdf:
RDKit 3D
39 41 0 0 0 0 0 0 0 0999 V2000
-2.3542 -1.0446 2.0769 O 0 0 0 0 0 0 0 0 0 0 0 0
6.7952 -0.3181 -1.9806 Cl 0 0 0 0 0 0 0 0 0 0 0 0
-2.6119 -0.4313 1.0245 C 0 0 0 0 0 0 0 0 0 0 0 0
-3.6308 0.4340 -0.8432 C 0 0 0 0 0 0 0 0 0 0 0 0
4.8572 1.3819 1.0821 C 0 0 0 0 0 0 0 0 0 0 0 0
0.5237 -2.3244 -1.0290 C 0 0 0 0 0 0 0 0 0 0 0 0
5.8545 1.0350 0.2145 C 0 0 0 0 0 0 0 0 0 0 0 0
3.5770 0.8864 0.9338 C 0 0 0 0 0 0 0 0 0 0 0 0
1.7938 -1.7751 -0.8421 C 0 0 0 0 0 0 0 0 0 0 0 0
4.3043 -0.3154 -0.9720 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.5791 -1.5665 -0.6444 C 0 0 0 0 0 0 0 0 0 0 0 0
0.7983 0.2042 0.0788 C 0 0 0 0 0 0 0 0 0 0 0 0
5.5700 0.1769 -0.8221 C 0 0 0 0 0 0 0 0 0 0 0 0
3.2786 0.0143 -0.1159 C 0 0 0 0 0 0 0 0 0 0 0 0
1.9358 -0.5210 -0.2928 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.4656 -0.3205 -0.0975 C 0 0 0 0 0 0 0 0 0 0 0 0
-4.6542 0.6898 -1.8169 N 0 0 0 0 0 0 0 0 0 0 0 0
-3.8213 -0.4086 0.2871 N 0 0 0 0 0 0 0 0 0 0 0 0
-2.4245 0.9095 -0.8414 N 0 0 0 0 0 4 0 0 0 0 0 0
-5.0683 -1.1144 0.6012 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.3099 1.6554 1.1214 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.6642 0.4408 0.2930 C 0 0 1 0 0 0 0 0 0 0 0 0
5.1062 2.0698 1.9048 H 0 0 0 0 0 0 0 0 0 0 0 0
0.4129 -3.3003 -1.4563 H 0 0 0 0 0 0 0 0 0 0 0 0
6.8799 1.4213 0.3190 H 0 0 0 0 0 0 0 0 0 0 0 0
2.8055 1.1659 1.6200 H 0 0 0 0 0 0 0 0 0 0 0 0
2.6910 -2.3098 -1.1184 H 0 0 0 0 0 0 0 0 0 0 0 0
4.0886 -0.9863 -1.7855 H 0 0 0 0 0 0 0 0 0 0 0 0
-1.5721 -1.9795 -0.7833 H 0 0 0 0 0 0 0 0 0 0 0 0
0.9236 1.1906 0.5103 H 0 0 0 0 0 0 0 0 0 0 0 0
-5.3413 -0.0431 -2.0596 H 0 0 0 0 0 0 0 0 0 0 0 0
-4.7147 1.6088 -2.2851 H 0 0 0 0 0 0 0 0 0 0 0 0
-2.0635 1.5488 -1.5737 H 0 0 0 0 0 0 0 0 0 0 0 0
-5.5162 -1.5803 -0.2851 H 0 0 0 0 0 0 0 0 0 0 0 0
-4.8100 -1.9532 1.3039 H 0 0 0 0 0 0 0 0 0 0 0 0
-5.7590 -0.3966 1.0544 H 0 0 0 0 0 0 0 0 0 0 0 0
-0.7994 1.3569 2.0413 H 0 0 0 0 0 0 0 0 0 0 0 0
-0.7542 2.3498 0.4779 H 0 0 0 0 0 0 0 0 0 0 0 0
-2.2822 2.1491 1.3772 H 0 0 0 0 0 0 0 0 0 0 0 0
1 3 2 0
2 13 1 0
3 18 1 0
3 22 1 0
4 17 1 0
4 18 1 0
4 19 2 0
5 7 2 0
5 8 1 0
5 23 1 0
6 9 2 0
6 11 1 0
6 24 1 0
7 13 1 0
7 25 1 0
8 14 2 0
8 26 1 0
9 15 1 0
9 27 1 0
10 13 2 0
10 14 1 0
10 28 1 0
11 16 2 0
11 29 1 0
12 15 2 0
12 16 1 0
12 30 1 0
14 15 1 0
16 22 1 0
17 31 1 0
17 32 1 0
18 20 1 0
19 22 1 0
19 33 1 0
20 34 1 0
20 35 1 0
20 36 1 0
22 21 1 1
21 37 1 0
21 38 1 0
21 39 1 0
M CHG 1 19 1
M END
$$$$
sqm.in: Run semi-empirical minimization
&qmmm
qm_theory='AM1', grms_tol=0.0005,
scfconv=1.d-10, ndiis_attempts=700, qmcharge=1,
/
which antechamber: /Users/xperrylinn/miniconda3/envs/bespokefit-wrkshp/bin/antechamber
Here's the result of conda env export
:
bespokefit-wrkshp.txt
Was I reading you right that you were getting different behavior when you created an sqm.in or molecule.sdf file in the working directory? That is very strange as the call to antechamber happens within a temporary directory, not the working directory. I'm not sure what to make of that.
I had wondered about the temporary folder idea because I wasn't seeing an sqm.in
and molecule.sdf
being created in my working directory. If these files are getting created in a completely different directory, I think I must have been miscorrelating the creation of those files from running the isolated command antechamber -i molecule.sdf -fi sdf -o sqm.in -fo sqmcrt -pf yes -c mul -nc 0.0 e
with the fragmentation suddenly running successfully (and then continuously failings afterward). I don't know what to make of this either..
From the debugging output above, the Cannot properly run "/Users/xperrylinn/miniconda3/envs/bespokefit-wrkshp/bin/sqm -O -i sqm.in -o sqm.out"
bit seems like a clue. 🤔
Getting into this now. For what it's worth, the "-nc 0.0 e" stands out to me - To the best of my understanding, antechamber wants a single unitless integer like 0
for the -nc
argument, so I could see 0.0 e
possibly causing trouble here.
I wonder if this is involving something finnicky with our partial charge setter/getter being "sometimes integer, sometimes Quantity" that's causing this to happen. I'll report back once I've found anything!
Well, the "1.0 e"
thing is certainly unintended, but it works fine on my M1 OSX 12 dev machine and doesn't seem to be fatal.
I also booted up my backup computer, a 2017 intel macbook with OSX 12.3.1 and successfully ran Matt's example a few times with Toolkit 0.10.6. Then I upgraded it to OSX 13 and now I'm getting nearly the same error as @xperrylinn. That's.... crazy.
There's some particularly concerning stuff in @xperrylinn's most recent output - In particular:
Warning: This molecule has no hydrogens nor halogens.
Info: Total number of electrons: -1; net charge: 1
I'm getting the "no hydrogens and halogens" myself as well, but not the positron situation.
So - I guess this is an update that you're not crazy. I'll report back when I find more.
@j-wags, thank you for the update and the all of the effort you are putting into triaging! Glad to hear you've been able to reproduce some of the errors I ecnountered.
@xperrylinn I was able to get it to work by downgrading AmberTools to version 21. Could you try that and let me know how it goes? It should be something like mamba install -c conda-forge ambertools=21
.
I'm also following up with the package feedstock, will link that issue here shortly.
Hi @j-wags, happy to report after setting up my environment and ran the quickstart command below it appears to be working. I ran it a couple of times to confirm it wasn't a fluke 😉. I'm also noticing I'm not getting the OS too many files error during the qc-generation step.
conda create -n bespokefit -y -c conda-forge mamba python=3.9
conda activate bespokefit
mamba install -y -c conda-forge openff-bespokefit xtb-python ambertools=21
openff-bespoke executor run --smiles "CC(=O)NC1=CC=C(C=C1)O" \
--workflow "default" \
--output "acetaminophen.json" \
--output-force-field "acetaminophen.offxml" \
--n-qc-compute-workers 2 \
--qc-compute-n-cores 1 \
--default-qc-spec xtb gfn2xtb none
@xperrylinn I just updated xcode on my macbook and that seemed to get AT22 working again. Could you let me know if that works for you?
Description
In trying to run the quickstart guide as well as the code in OpenFF BespokeFit Workshop, I'm snagging on the following error during fragmentation. I've attached the zip file from the workshop that contains a specification for the environment dependencies in
environment.yml
. I've tried running with Python 3.10 and 3.9 on MacOS Ventura 13.0.1. My next steps are to run the debugger to see if I can pull more information out of the failure in running antechamber command :'['antechamber', '-i', 'molecule.sdf', '-fi', 'sdf', '-o', 'sqm.in', '-fo', 'sqmcrt', '-pf', 'yes', '-c', 'mul', '-nc', '0.0 e']'
.Software versions
What is the output of running `conda list`?