goodman-lab / dp5 Goto Github PK
View Code? Open in Web Editor NEWPython workflow for DP5 and DP4 analysis of organic molecules
License: Other
Python workflow for DP5 and DP4 analysis of organic molecules
License: Other
=============================================================== DP5 version 1.0 Copyright (c) 2020 Alexander Howarth, Kristaps Ermanis, Jonathan M. Goodman distributed under MIT license =============================================================== CONTENTS 1) Release Notes 2) Requirements and Setup 3) Usage 4) NMR Description Format 5) Included Utilites 6) Code Organization =============================================================== RELEASE NOTES This latest release represents a leap forward in structural uncertainty calculation through the addition of the new DP5 module. By adding this functionality to our existing state of the art DP5 software, both DP4 and DP5 probabilities can be calculated alongside each other fully automatically. DP5 as described in our latest paper (https://doi.org/10.1039/D1SC04406K) calculates the standalone probability of structures being correct. If a user cannot guarantee the correct structure is in the list of proposals, DP5 calculates the probability each is correct, quantifying this uncertainty. When the user is certain a one of their proposals is correct i.e in the case of elucidating relative stereochemistry, DP4 is the best metric to use, as this uses the additional information that one of the proposals must be correct. The power of DP5 and DP4 however is greatest when they are used in conjunction as DP5 can be used to increase reliability and confidence in the conclusions of DP4 calculations (also described in the paper). DP5 (https://doi.org/10.1039/D1SC04406K) integrates NMR-AI, software for automatic processing, assignment and visualisation of raw NMR data. This functionality affords fully automated DP4 analysis of databases of molecules with no user input. DP5 also utilises a fully revised version of PyDP4 updated for Python 3 and with major workflow improvements. Users can now also choose to run DP5 within a Graphical user interface for increased ease of use when single DP4 calculations. This graphical user interface can also be used to explore the spectra processed and assigned by NMR-AI. DP5 can also be utilised to perform assignments of NMR spectra for a single isomer of a molecule. These assignments can be viewed in the graphical output from DP5 or investigated interactively using The included GUI application. More details about the software can be found in the publication DP5 Straight from Spectrometer to Structure (https://doi.org/10.1039/D1SC04406K) and in the accompanying supporting information. =============================================================== REQUIREMENTS AND SETUP All the python files and one utility to convert to and from TINKER nonstandard xyz file are in the attached archive. They are set up to work from a centralised location. It is not a requirement, but it is probably best to add the location to the PATH variable. The script currently is set up to use MacroModel for molecular mechanics and Gaussian for DFT and it runs Gaussian on ziggy by default. NWChem and TINKER is also supported. This setup has several requirements. 1) One should have MacroModel or TINKER and NWChem or Gaussian. The DP5 folder can contain settings.cfg, where the locations for the installed software packages can be given, so that DP5 can launch them and use in the workflow. Examples on how to do this are provided in the included settings.example - this should be renamed to settings.cfg and any relevant changes made. 2) In order to run DP5 a python 3.6+ environment the following packages are required: numpy scipy Cython matplotlib nmrglue statsmodels lmfit openbabel rdkit pathos qml Additionally, the graphical user interface requires PyQT5 3) RDKit and OpenBabel are required for the automatic diastereomer generation and other manipulations of sdf files (renumbering, ring corner flipping), as well as molecule graphical plotting. For OpenBabel this requirement includes Python bindings. The following links provide instructions for building OpenBabel with Python bindings: http://openbabel.org/docs/dev/UseTheLibrary/PythonInstall.html http://openbabel.org/docs/dev/Installation/install.html#compile-bindings Alternatively, the OpenBabel package in conda repository has also lately become more reliable, and is much easier to install via `conda install openbabel -c conda-forge'. Both OpenBabel 2.4.1 and 3.x are supported. 4) Finally, to run calculations on a computational cluster, a passwordless ssh connection should be set up in both directions - desktop -> cluster and cluster -> desktop. In most cases the modification of the relevant functions in Gaussian.py or NWChem.py will be required to fit your situation. 5) All development and testing was done on Linux. However, both the scripts and all the backend software should work equally well on MacOS with minor adjustments. Windows will require more modification, and is currently not supported. =================== USAGE - GUI To call the script from the Graphical User Interface the folder containing the input files must be opened in terminal and the correct python environment activated. the GUI is then simply called by: python PyDP4_GUI.py This will open the main DP5 GUI window, the user can then select the required input files and the settings for MM and DFT calculations. The expected structure file format is *.sdf Once the DP5 has finished all calculations the GUI will open a number of new tabs. These tabs display interactive carbon and proton NMR spectra as processed and assigned by NMR-AI as well as interactive plots of the NMR prediction errors and probabilities and conformer energies and populations. =================== USAGE - Terminal To call the script from terminal: 1) With all diastereomer generation: PyDP4.py Candidate CandidateNMR where Candidate is the sdf file containing 3D coordinates of the candidate structure (without the extension). DP5 will automatically detect whether an NMR description (see below) or raw NMR data has been provided by the user. If raw NMR data has been provided (currently in the Bruker file format), NMR-AI will automatically process the NMR spectra provided. In this case the NMR data should be organised into a single folder (passed to DP5) containing one or two folders labelled Proton and (or) Carbon. Alternatively: PyDP4.py -w gmns Candidate CandidateNMR The -w switch specifies the PyDP4 workflow, c specifies structure cleaning utilising RDkit, g specifies diastereomer generation, m molecular mechanics conformational searching, o DFT geometry optimisation, n DFT NMR calculation, e M062X single point energy calculations, s calculate DP4 statistics and w for DP5 statistics. The default workflow is gnms, optimum workflow is gnomes. The letter a can be given in place of s, in the instance DP5 will analyse and assign the provided NMR spectra but not calculate any probabilities. In addition the -s switch can be used to specify the solvent for use in MM and DFT calculations. Supported solvents are listed in the TMSdata file. Other Gaussian/Jaguar/NWChem supported solvents can be used, but only with manually interpreted data. PyDP4.py -s chloroform Candidate CandidateNMR If solvent is not given, no solvent is used. 2) With explicit diastereomer/other candidate structures: PyDP4.py Candidate1 Candidate2 Candidate3 ... CandidateNMR The script does not attempt to generate diastereomers, simply carries out the DP4 on the specified candidate structures. Structures can also be added from InChI, Smiles and Smarts strings using the designated switches. For example: PyDP4.py --InChI Candidates_inchis.inchi ... CandidateNMR where Candidates_inchs.inchi is a text file with all the desired inchi strings on separate lines. Script has several other switches, including switching the molecular mechanics and dft software etc. -m {t,m}, --mm {t,m} Select molecular mechanics program, t for tinker or m for macromodel, default is t -d {j,g,n,z,w}, --dft {j,g,n,z,w} Select DFT program, j for Jaguar, g for Gaussian, n for NWChem, z for Gaussian on ziggy, w for NWChem on ziggy, default is z (jaguar is not yet implemented) --StepCount STEPCOUNT Specify stereocentres for diastereomer generation -s SOLVENT, --solvent SOLVENT Specify solvent to use for dft calculations -q QUEUE, --queue QUEUE Specify queue for job submission on ziggy (default is s1) -t NTAUT, --ntaut NTAUT Specify number of explicit tautomers per diastereomer given in structure files, must be a multiple of structure files -r, --rot5 Manually generate conformers for 5-memebered rings --ra RA Specify ring atoms, for the ring to be rotated, useful for molecules with several 5-membered rings --AssumeDFTDone Assume RMSD pruning, DFT setup and DFT calculations have been run already (saves time when repeating DP4 analysis) -g, --GenOnly Only generate diastereomers and tinker input files, but don't run any calculations (useful for diastereomer generation for calculations ran on computers without OpenBabel) -c STEREOCENTRES, --StereoCentres STEREOCENTRES Specify stereocentres for diastereomer generation -T, --GenTautomers Automatically generate tautomers -o, --DFTOpt Optimize geometries at DFT level before NMR prediction --pd Use python port of DP4 -b BASICATOMS, --BasicAtoms BASICATOMS Generate protonated states on the specified atoms and consider as tautomers More information on those can be obtained by running PyDP4.py -h ====================== NMR DESCRIPTION FORMAT NMRFILE example begins: 59.58(C3),127.88(C11),127.52(C10),115.71(C9),157.42(C8),133.98(C23),118.22(C22),115.79(C21),158.00(C20),167.33(C1),59.40(C2),24.50(C31),36.36(C34),71.05(C37),142.14(C42),127.50(C41),114.64(C40),161.02(C39) 4.81(H5),7.18(H15),6.76(H14),7.22(H28),7.13(H27),3.09(H4),1.73(H32 or H33),1.83(H32 or H33),1.73(H36 or H35),1.73(H36 or H35),4.50(H38),7.32(H47),7.11(H46) H15,H16 H14,H17 H28,H29 H27,H30 H47,H48 H46,H49 C10,C12 C9,C13 C22,C24 C21,C25 C41,C43 C40,C44 OMIT H19,H51 :example ends Sections are seperated by empty lines. 1) The first section is assigned C shifts, can also be (any). 2) Second section is (un)assigned H shifts. 3) This section defines chemically equivalent atoms. Each line is a new set, all atoms in a line are treated as equivalent, their computed shifts averaged. 4) Final section, starting with a keyword OMIT defines atoms to be ignored. Atoms defined in this section do not need a corresponding shift in the NMR description ===================== CODE ORGANIZATION PyDP4.py file that should be called to start the DP5 workflow. Interprets the arguments and takes care of the general workflow logic. PyDP4_GUI.py file that should be called to start the DP5 graphical user interface InchiGen.py Gets called if diastereomer and/or tautomer and/or protomer generation is used. Called by PyDP4.py. FiveConf.py Gets called if automatic 5-membered cycle corner-flipping is used. Called by PyDP4.py. MacroModel.py Contains all of the MacroModel specific code for input generation, calculation execution and output interpretation. Called by PyDP4.py. Tinker.py Contains all of the Tinker specific code for input generation, calculation execution and output interpretation. Called by PyDP4.py. ConfPrune.pyx Cython file for conformer alignment and RMSD pruning. Called by Gaussian.py and NWChem.py Gaussian.py Contains all of the Gaussian specific code for input generation and calculation execution. Called by PyDP4.py. GaussianZiggy.py Code specific to running Gaussian on Cambridge CMI local cluster. Called by PyDP4.py. GaussianDarwin.py Code specific to running Gaussian on Cambridge CSD3 HPC cluster. Called by PyDP4.py. NWChem.py Contains all of the NWChem specific code for input generation and calculation execution. Called by PyDP4.py. NMRDP4GTF.py Takes care of all the NMR description interpretation, equivalent atom averaging, Boltzmann averaging, tautomer population optimisation (if used) and DP4 input preparation and running either DP4.jar or DP4.py. Called by PyDP4.py nmrPredictNWChem.py Extracts NMR shifts from NWChem output files DP4.py Equivalent and compact port of the original DP4 java implementation to Python of the same DP4 process. Has been updated to include multigaussian models. DP5.py python implementation of the DP5 probability calucaltion Proton_processing.py/Carbon_processing.py NMR-AI python script from processing of raw proton/carbon NMR data Proton_assignment.py/Carbon_assignment.py NMR-AI python script for assignment of raw proton/carbon NMR data Proton_plotting.py/Carbon_plotting NMR-AI python script for plotting of raw proton/carbon NMR data processed and assigned by NMR-AI StructureInput.py Script for cleaning structures using RDkit, generating 3d geometries and reading InChI, Smiles and SMARTS input formats
I tried with the example data downloaded from here:
https://www.repository.cam.ac.uk/handle/1810/303161
Any advice? Thanks.
I've recently tried to use PyDP4 and I could't get it to run. One problem I've encountered is the fact that the options described in the README are different from the options presented by PyDP4 --help.
Would it be possible to describe a workflow for the case that I have (Gaussian) DFT NMR files already and would just like to run the DP4 analysis on those data?
Thanks a lot!
@KristapsE
hello,I am very interested in your research. There was an error while running this software. I have installed Tinker and G16, and I sincerely hope to get your help and advice. My command line is ‘python3 PyDP4.py -s chloroform -w gmns -m t -f mmff KE.sdf NMR_folder’.
==========================
PyDP4 script,
integrating Tinker/MacroModel,
Gaussian/NWChem and DP4
v1.0
Settings read from settings.cfg:
SCHRODINGER:
TinkerPath: /home/node0/work/whe/tinker
NWChemPath: nwchem
GausPath: g16
['KE.sdf']
NMR_folder
NMR_path
/home/node0/work/whe/DP4-AI-master/NMR_folder
Current working directory: /home/node0/work/whe/DP4-AI-master
Initial input files: ['KE.sdf']
NMR file: [PosixPath('/home/node0/work/whe/DP4-AI-master/NMR_folder/Carbon'), PosixPath('/home/node0/work/whe/DP4-AI-master/NMR_folder/Proton')]
Workflow: gmns
Generating diastereomers...
Getting inchi from file KE.sdf
Getting inchi from file KE.sdf
Number of diastereomers to be generated: 2
Isomer 0 inchi = InChI=1S/C6H10O/c1-5-3-2-4-6(5)7/h2-3,5-7H,4H2,1H3/t5-,6-/m0/s1/f/
Isomer 1 inchi = InChI=1S/C6H10O/c1-5-3-2-4-6(5)7/h2-3,5-7H,4H2,1H3/t5-,6+/m0/s1/f/
Generated input files: ['KE1', 'KE2']
Assuming all computations are done? ... False
Using preexisting DFT data? ... False
Performing conformational search using Tinker
Setting up Tinker files...
Tinker input for KE1 prepared.
Tinker input for KE2 prepared.
Running Tinker...
/home/node0/work/whe/tinker/bin/scan KE1 0 10 20 0.00001 | tee ./KE1.tout
mmff.prm
Tinker job 1 of 2 completed.
/home/node0/work/whe/tinker/bin/scan KE2 0 10 20 0.00001 | tee ./KE2.tout
mmff.prm
Tinker job 2 of 2 completed.
KE1 is matching conformational search output for KE1
Reading KE1
Tinker output KE1 is corrupted, aborting.
I am using latest code ,and I met this problem,
(chem-env) root@ubuntu:/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master# python PyDP4_GUI.py
/home/wyq/anaconda3/envs/chem-env/lib/python3.6/site-packages/statsmodels/compat/pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.
from pandas.core import datetools
/root/.pyxbld/temp.linux-x86_64-3.6/pyrex/ConfPrune.c: In function ‘__pyx_f_9ConfPrune_qtrjac’:
/root/.pyxbld/temp.linux-x86_64-3.6/pyrex/ConfPrune.c:7129:10: warning: variable ‘__pyx_v_ret’ set but not used [-Wunused-but-set-variable]
double __pyx_v_ret[5][4];
^~~~~~~~~~~
QLayout: Attempting to add QLayout "" to CalculationTab "", which already has a layout
QLayout: Attempting to add QLayout "" to CalculationTab "", which already has a layout
QLayout: Attempting to add QLayout "" to CalculationTab "", which already has a layout
QLayout: Attempting to add QLayout "" to CalculationTab "", which already has a layout
Traceback (most recent call last):
File "PyDP4_GUI.py", line 665, in get_current_values
os.copy(f, self.settings.OutputFolder)
AttributeError: module 'os' has no attribute 'copy'
已放弃 (核心已转储)
(chem-env) root@ubuntu:/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master#
Trying to process the 1H FID of ATP
ATP_1H_FID.tar.gz
and I get the following error.
File "/Users/danny/Documents/Codes/Python/Anslyn/Auto_NMR/NMars/H1/Proton_processing.py", line 1354, in multiproc_BIC_minimisation
higher_point = int((group[-1] + final_grouped_peaks[ind4 + 1][0]) / 2)
IndexError: list index out of range
Will spend sometime looking at it tomorrow but thought I would notify you guys since you guys understand this BIC minimization algorithm a lot better than I do.
I have also find other bugs here and there and have patched them to suit my needs. In particular with the solvent (D2O) and reference (TMS) signal removal. Would love to discuss/contribute.
I am currently attempting to run this program on a Mac and have been able to open up the GUI, however, once I input the files and start the calculations python will immediately crash. The error code below was displayed so I updated my boost package to boost-1.67.0-py37_4 however this did not appear to have any effect.
Boost.Python.ArgumentError: Python argument types in rdkit.Chem.rdinchi.MolToInchi(NoneType, str) did not match C++ signature: MolToInchi(RDKit::ROMol mol, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > options='')
I have minimal experience working with python so any insight into this issue would be really appreciated.
I tried to install this software in windos, and the DP5 window was successfully called, but after adding the structure and NMR spectrum, no results were output. I don't know where the problem is, can someone help me?
PyDP4.py -f mmff -w gnomesw -m t -s b3lyp --InChI Inchis.inchi experimental_nmr_files
Setting up Tinker files...
Tinker input for InChI_Mol_0_0 prepared.
Running Tinker...
/appl/soft/chem/tinker/bin/scan InChI_Mol_0_0 /appl/soft/chem/tinker/params/mmff.prm 0 10 20 0.00001 | tee ./InChI_Mol_0_0.tout
Tinker job 1 of 1 completed.
InChI_Mol_0_0 is matching conformational search output for InChI_Mol_0_0
Reading InChI_Mol_0_0
Tinker output InChI_Mol_0_0 is corrupted, aborting.
The /appl/soft/chem/tinker/bin/scan InChI_Mol_0_0 /appl/soft/chem/tinker/params/mmff.prm 0 10 20 0.00001 | tee ./InChI_Mol_0_0.tout gives following
INITROT -- Rotation about 6 7 occurs more than once in Z-matrix
Tinker is Unable to Continue; Terminating the Current Calculation
PyDP4 script,
integrating Tinker/MacroModel,
Gaussian/NWChem and DP4
v1.0
settings.cfg is missing!
['IP4_.sdf']
NMR_folder
NMR_path
/home/founder/IP4/NMR_folder
Current working directory: /home/founder/IP4
Initial input files: ['IP4_.sdf']
NMR file: [PosixPath('/home/founder/IP4/NMR_folder/Carbon'), PosixPath('/home/founder/IP4/NMR_folder/Proton')]
Workflow: gmns
Generating diastereomers...
Getting inchi from file IP4_.sdf
Getting inchi from file IP4_.sdf
Number of diastereomers to be generated: 2
Isomer 0 inchi = InChI=1S/C6H10O/c1-5-3-2-4-6(5)7/h2-3,5-7H,4H2,1H3/t5-,6-/m0/s1/f/
Isomer 1 inchi = InChI=1S/C6H10O/c1-5-3-2-4-6(5)7/h2-3,5-7H,4H2,1H3/t5-,6+/m0/s1/f/
Generated input files: ['IP4_1', 'IP4_2']
Assuming all computations are done? ... False
Using preexisting DFT data? ... False
Performing conformational search using Tinker
Setting up Tinker files...
Tinker input for IP4_1 prepared.
Tinker input for IP4_2 prepared.
Running Tinker...
/home/founder/DP4-AI-master/bin/scan IP4_1 0 10 20 0.00001 | tee ./IP4_1.tout
I have spent a lot of time in scan, something wrong in my environment ,what can i fix it. Thanks
I would like to try out the DP4-AI on some Bruker NMR files using the GUI but I am unsure on how to correctly install it.
My programming/python skills are quite limited and I've started to follow the Anaconda instructions detailed in Issue #12 but I got stuck because I'm not sure where and how I can create an virtual environment, in particular how to 'launch' :
conda create --name dp4
for example
Any help with getting the GUI running would be great!
I would like to use the new tool PyDP4.py to test my NMR data against a number of diastereomer to see if DP4 can help me find to the correct one. I am using it for the first time, so my problem is probably obvious.
I believe I have all of the python requirements correctly installed.
I have access to NWchem-7 and I have a single macromodel+maestro/schrodinger license.
I have generated my candidate diastereomers by hand (diastXX.sdf) and generated conformer ensembles with macromodel (diast-ensXX.sdf). In the workflow, I would in principle need at a minimum two more steps "-w ns" (n=DFT NMR calculation, s=calculate DP4 statistics).
For testing locally from the command prompt, I give the command:
python /hsnfs/software/DP5/PyDP4.py -w ns -s chloroform -d n diast-ensRR diast-ensRS nmrdata
but I get this output after a few seconds:
==========================
PyDP4 script,
integrating Tinker/MacroModel,
Gaussian/NWChem and DP4
v1.0
Settings read from settings.cfg:
SCHRODINGER: /opt/schrodinger2020-4/
['diast-ensRR', 'diast-ensRS']
nmrdata
NMR_path
/hsnfs/users/fares/MFA-scaB/DP5/nmrdata
Current working directory: /hsnfs/users/fares/MFA-scaB/DP5
Initial input files: ['diast-ensRR', 'diast-ensRS']
NMR file: [PosixPath('/hsnfs/users/fares/MFA-scaB/DP5/nmrdata')]
Workflow: ns
Generated input files: ['diast-ensRR', 'diast-ensRS']
Assuming all computations are done? ... False
Using preexisting DFT data? ... False
No conformational search was requested. Skipping...
Setting up NMR calculations...
Running NMR calculations...
Running NWChem DFT NMR calculations locally...
[]
[]
There were no jobs to run.
Reading data from the output files...
NWChem.py, ReadShieldings: No NMR DFT output files found, NMR data could not be read. Quitting.
What am I doing incorrectly?
Dear Developer,
When I use tinker as conformational search engine, there are some wrong with sdf2tinkerxyz.
The command I used was:
PyDP4.py -w m -m t -f mmff ANPN-D-4-60 Carbon_NMR
==========================
PyDP4 script,
integrating Tinker/MacroModel,
Gaussian/NWChem and DP4
v1.0
Copyright (c) 2015-2019 Kristaps Ermanis, Alexander Howarth, Jonathan M. Goodman
Distributed under MIT license
==========================
Settings read from settings.cfg:
TinkerPath: /home/cloudam/software/tinker
GausPath: g16
['ANPN-D-4-60']
Carbon_NMR
NMR_path
/home/cloudam/work/dp4/tinker/Carbon_NMR
Current working directory: /home/cloudam/work/dp4/tinker
Initial input files: ['ANPN-D-4-60']
NMR file: [PosixPath('/home/cloudam/work/dp4/tinker/Carbon_NMR/uxnmr_1.par')]
Workflow: m
Generated input files: ['ANPN-D-4-60']
Assuming all computations are done? ... False
Using preexisting DFT data? ... False
Performing conformational search using Tinker
Setting up Tinker files...
/bin/sh: /home/cloudam/software/DP4-AI/sdf2tinkerxyz: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
Traceback (most recent call last):
File "/home/cloudam/software/DP4-AI/PyDP4.py", line 718, in <module>
main(settings)
File "/home/cloudam/software/DP4-AI/PyDP4.py", line 206, in main
TinkerInputs = Tinker.SetupTinker(settings)
File "/home/cloudam/software/DP4-AI/Tinker.py", line 56, in SetupTinker
outp = subprocess.check_output(convinp + inpf + '.sdf', shell=True)
File "/home/cloudam/rdkit2020/lib/python3.6/subprocess.py", line 356, in check_output
**kwargs).stdout
File "/home/cloudam/rdkit2020/lib/python3.6/subprocess.py", line 438, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '/home/cloudam/software/DP4-AI/sdf2tinkerxyz -k /home/cloudam/software/DP4-AI/default.key <ANPN-D-4-60.sdf' returned non-zero exit status 126.
(/home/cloudam/rdkit2020) [cloudam@master tinker]$ /home/cloudam/software/DP4-AI/sdf2tinkerxyz -k /home/cloudam/software/DP4-AI/default.key <ANPN-D-4-60.sdf
-bash: /home/cloudam/software/DP4-AI/sdf2tinkerxyz: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
And then I type:
sdf2tinkerxyz -k /home/cloudam/software/DP4-AI/default.key <ANPN-D-4-60.sdf
-bash: /home/cloudam/software/DP4-AI/sdf2tinkerxyz: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
How can I fix it?
Thank you very much,
Gaokeng Xiao
PyDP4 script,
integrating Tinker/MacroModel,
Gaussian/NWChem and DP4
v1.0
Settings read from settings.cfg:
SCHRODINGER: /app/schrodinger2018-1
TinkerPath: /home/ke291/TINKER/
NWChemPath: nwchem
GausPath: /root/opt/gaussian/g16/g16
['./spectrum/struct/S-3dstructure.sdf']
/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master/spectrum/shouxingputu
NMR_path
Current working directory: /home/wyq/Downloads/DP4-AI-master3/DP4-AI-master
Initial input files: ['./spectrum/struct/S-3dstructure.sdf']
NMR file: [PosixPath('/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master/spectrum/shouxingputu/Carbon'), PosixPath('/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master/spectrum/shouxingputu/Proton')]
Workflow: gnomes
Generating diastereomers...
Getting inchi from file ./spectrum/struct/S-3dstructure.sdf
Getting inchi from file ./spectrum/struct/S-3dstructure.sdf
Number of diastereomers to be generated: 1
Isomer 0 inchi = InChI=1S/C16H20O/c1-16(11-13-7-3-2-4-8-13)12-17-15-10-6-5-9-14(15)16/h5-7,9-10H,2-4,8,11-12H2,1H3/t16-/m1/s1/f/
Generated input files: ['./spectrum/struct/S-3dstructure1']
Assuming all computations are done? ... False
Using preexisting DFT data? ... False
Performing conformational search using MacroModel
Setting up MacroModel files...
Macromodel input for ./spectrum/struct/S-3dstructure1 prepared.
MacroModel inputs: ['./spectrum/struct/S-3dstructure1.mae']
Running MacroModel...
Valid ./spectrum/struct/S-3dstructure1.log exists, skipping...
Reading conformers...
./spectrum/struct/S-3dstructure1.log is matching conformational search output for ./spectrum/struct/S-3dstructure1
Energy window: 10.0 kJ/mol
./spectrum/struct/S-3dstructure1: 22 conformers read within energy window
Pruning conformers...
./spectrum/struct/S-3dstructure1: 22 conformers after pruning with 0A RMSD cutoff
Setting up geometry optimization calculations...
jobdir /home/wyq/Downloads/DP4-AI-master3/DP4-AI-master
Running geometry optimization calculations...
Running Gaussian DFT geometry optimizations locally...
/root/opt/gaussian/g16/g16 < ./spectrum/struct/S-3dstructure1ginp001.com > ./spectrum/struct/S-3dstructure1ginp001.out
/bin/sh: 1: cannot open ./spectrum/struct/S-3dstructure1ginp001.com: No such file
Traceback (most recent call last):
File "PyDP4.py", line 718, in
main(settings)
File "PyDP4.py", line 255, in main
Isomers = DFT.RunOptCalcs(Isomers, settings)
File "/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master/Gaussian.py", line 258, in RunOptCalcs
Completed = RunCalcs(GausJobs, settings)
File "/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master/Gaussian.py", line 313, in RunCalcs
outp = subprocess.check_output(GausPrefix + " < " + f + ' > ' + f[:-3] + 'out', shell=True)
File "/home/wyq/anaconda3/envs/chem-env/lib/python3.6/subprocess.py", line 336, in check_output
**kwargs).stdout
File "/home/wyq/anaconda3/envs/chem-env/lib/python3.6/subprocess.py", line 418, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '/root/opt/gaussian/g16/g16 < ./spectrum/struct/S-3dstructure1ginp001.com > ./spectrum/struct/S-3dstructure1ginp001.out' returned non-zero exit status 2.
(chem-env) root@ubuntu:/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master#
I download some folders from the link https://www.repository.cam.ac.uk/handle/1810/303161 you provide, but only the sdf format can be added in"structure", no other files can be added in "NMR", I am wondering that what kind of NMR data can be added, usually I use Mestrenova to get the NMR data and output data to Word. thank you
I'm receiving the above error and the following traceback when attempting to run from the GUI:
Traceback (most recent call last):
File "PyDP4_GUI.py", line 666, in get_current_values
shutil.copyfile(f, self.settings.OutputFolder + os.path.sep + f)
TypeError: unsupported operand type(s) for +: 'PosixPath' and 'str'
Abort trap: 6
This occurs when I include a structure, NMR directory, and output file with nwchem and tinker. If I omit the structure, I don't get the above error and instead see:
Segmentation fault: 11
Happy to provide more details as necessary. Thanks!
Error generated while running PyDP4.py -w gnomes -s b3lyp --InChI Candidates_inchis.inchi experimental_nmr_files:
Files generated:
InChI_Mol_0_0.mae
InChI_Mol_0_0.sdf
InChI_Mol_0_0.sdf.com
.....
Running MacroModel...
/appl/soft/chem/schrodinger/2021.3/bmin InChI_Mol_0_0
Traceback (most recent call last):
File "/scratch/project_2003067/DP5/DP5/PyDP4.py", line 835, in <module>
main(settings)
File "/scratch/project_2003067/DP5/DP5/PyDP4.py", line 281, in main
MacroModelOutputs = MacroModel.RunMacroModel(MacroModelInputs, settings)
File "/scratch/project_2003067/DP5/DP5/MacroModel.py", line 154, in RunMacroModel
outp = subprocess.check_output(MMPrefix + isomer, shell=True)
File "/scratch/project_2003067/DP5/DP5_env/lib/python3.9/subprocess.py", line 424, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/scratch/project_2003067/DP5/DP5_env/lib/python3.9/subprocess.py", line 528, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '/appl/soft/chem/schrodinger/2021.3/bmin InChI_Mol_0_0' returned non-zero exit status 1.
Apparently the command should be bmin InChI_Mol_0_0 .sdf instead of bmin InChI_Mol_0_0
So for this to work, replace the following lines in MacroModel.py:
Line 153 to: print(MMPrefix + isomer + '.sdf')
Line 154 to: outp = subprocess.check_output(MMPrefix + isomer + '.sdf' , shell=True)
Then it complains about the mae-file it can't find, because it is looking for InChI_Mol_0_0.sdf.mae but there is only InChI_Mol_0_0.mae ..
When this is corrected by replacing line:
Line 54 to: outp = subprocess.check_output(convinp + f + ' -omae ' + f +
This then hangs with the IsMMCompleted -loop. Any ideas? @HowarthA
PyDP4.py -w moenas -m t -f mmff ANPN-D-4-60 NMRexp
==========================
PyDP4 script,
integrating Tinker/MacroModel,
Gaussian/NWChem and DP4
v1.0
Copyright (c) 2015-2019 Kristaps Ermanis, Alexander Howarth, Jonathan M. Goodman
Distributed under MIT license
==========================
Settings read from settings.cfg:
TinkerPath: /home/cloudam/software/tinker
NWChemPath: /public/software/.local/easybuild/software/NWChem/7.0.0-intel-2019b-Python-3.7.4/bin/nwchem
GausPath: g16
['ANPN-D-4-60']
NMRexp
NMR_path
/home/cloudam/work/dp4/tinker/NMRexp
Current working directory: /home/cloudam/work/dp4/tinker
Initial input files: ['ANPN-D-4-60']
NMR file: [PosixPath('/home/cloudam/work/dp4/tinker/NMRexp/Carbon'), PosixPath('/home/cloudam/work/dp4/tinker/NMRexp/Proton')]
Workflow: moenas
Generated input files: ['ANPN-D-4-60']
Assuming all computations are done? ... False
Using preexisting DFT data? ... False
Performing conformational search using Tinker
Setting up Tinker files...
Tinker input for ANPN-D-4-60 prepared.
Running Tinker...
Output files for ANPN-D-4-60 already exist, skipping.
ANPN-D-4-60 is matching conformational search output for ANPN-D-4-60
Reading ANPN-D-4-60
Number of accepted conformers by energies: 3
Pruning conformers...
ANPN-D-4-60: 3 conformers after pruning with 0A RMSD cutoff
Setting up geometry optimization calculations...
Running geometry optimization calculations...
Running Gaussian DFT geometry optimizations locally...
There were no jobs to run.
Reading DFT optimized geometries...
Setting up energy calculations...
Running energy calculations...
Running Gaussian DFT energy calculations locally...
There were no jobs to run.
Reading data from the output files...
Energies:
ANPN-D-4-60: [-884.521215126, -884.527271401, -884.527271572]
Setting up NMR calculations...
Running NMR calculations...
Running Gaussian DFT NMR calculations locally...
There were no jobs to run.
Reading data from the output files...
ANPN-D-4-60ginp001.out 39
ANPN-D-4-60ginp002.out 39
ANPN-D-4-60ginp003.out 39
Shieldings:
ANPN-D-4-60:
[62.3194, 60.3087, 51.997, 23.6829, 73.2423, 43.2175, 164.7148, 139.8852, 63.7769, 105.4664, 161.8472, 179.3392, 275.6734, 148.0947, 105.6224, 96.5315, 276.0126, 165.2217, 160.5147, 24.8764, 25.4464, 25.3536, 30.1592, 29.6195, 29.6452, 30.5386, 30.8459, 31.0085, 30.2244, 29.7763, 29.7107, 28.0947, 31.5766, 31.4717, 30.7825, 30.2332, 31.3648, 31.0032, 30.9445]
[61.2745, 59.7375, 51.8604, 25.5316, 73.5456, 42.8489, 164.7852, 143.0776, 63.5141, 106.318, 161.7994, 180.8671, 276.0335, 147.9975, 106.9287, 94.5876, 271.0432, 163.3829, 160.6511, 24.8264, 25.5456, 25.2899, 30.1417, 29.6307, 29.6567, 30.5276, 30.8155, 31.0478, 30.1424, 29.7762, 30.006, 28.199, 30.0001, 30.9683, 30.8965, 30.4719, 31.153, 31.0626, 30.8774]
[61.2721, 59.7377, 51.8605, 25.5324, 73.5454, 42.8487, 164.7849, 143.086, 63.5146, 106.3177, 161.799, 180.8647, 276.0393, 147.9986, 106.928, 94.5878, 271.0428, 163.3817, 160.6509, 24.8264, 25.5456, 25.2899, 30.1416, 29.6311, 29.6564, 30.5275, 30.8155, 31.0477, 30.1423, 29.7764, 30.0061, 28.199, 29.9998, 30.9681, 30.8965, 30.4721, 31.1529, 31.0627, 30.8774]
Energies:
ANPN-D-4-60: [-884.521215126, -884.527271401, -884.527271572]
Setting TMS computational NMR shielding constant references
Setting TMS references to 188.029225 and 32.1352666667
Converting DFT data to NMR shifts...
[0.0008182710704141058, 0.4995456245645381, 0.49963610436504774]
WARNING: NMR shift calculation currently ignores the instruction to exclude atoms from analysis
C shifts for isomer 0:
126.779, 128.315, 136.194, 162.529, 114.506, 145.207, 23.249, 124.538, 81.727, 26.235, 40.039, 81.117, 93.458, 24.650, 27.383
H shifts for isomer 0:
7.309, 6.590, 6.846, 1.994, 2.504, 2.479, 1.608, 1.320, 1.088, 1.993, 2.359, 2.130, 3.936, 2.134, 1.167, 1.239, 1.664, 0.982, 1.073, 1.258
Reading experimental NMR data...
[PosixPath('/home/cloudam/work/dp4/tinker/NMRexp/Carbon'), PosixPath('/home/cloudam/work/dp4/tinker/NMRexp/Proton')]
Processing Spectrum
autocorrelation distance = 3
convolution
initial peak picking
generating binary map
estimating phase angles
peak picking by region
/home/cloudam/rdkit2020/lib/python3.6/site-packages/scipy/stats/_continuous_distns.py:354: RuntimeWarning: Mean of empty slice.
loc = data.mean()
/home/cloudam/rdkit2020/lib/python3.6/site-packages/numpy/core/_methods.py:170: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
/home/cloudam/rdkit2020/lib/python3.6/site-packages/scipy/stats/_continuous_distns.py:359: RuntimeWarning: Mean of empty slice.
scale = np.sqrt(((data - loc)**2).mean())
Linear regression
final phasing
/home/cloudam/rdkit2020/lib/python3.6/site-packages/scipy/interpolate/fitpack2.py:627: ComplexWarning: Casting complex values to real discards the imaginary part
xe=bbox[1], s=0)
length y data 130792
length xdata 130792
Processing Spectrum
autocorrelation distance = 7
done
done
done
corrected
peak picking
gradient peak picking
done
resetting region boundries, distance = 490
done region 1of50
done region 2of50
done region 3of50
done region 4of50
done region 5of50
done region 6of50
done region 7of50
done region 8of50
done region 9of50
done region 10of50
done region 11of50
done region 12of50
done region 13of50
done region 14of50
done region 17of50
done region 18of50
done region 16of50
done region 15of50
done region 19of50
done region 20of50
done region 21of50
done region 22of50
done region 23of50
done region 24of50
done region 25of50
done region 26of50
done region 28of50
done region 27of50
done region 29of50
done region 30of50
done region 31of50
done region 32of50
done region 33of50
done region 34of50
done region 35of50
done region 36of50
done region 37of50
done region 38of50
done region 41of50
done region 42of50
done region 43of50
done region 44of50
done region 46of50
done region 45of50
done region 48of50
done region 50of50
done region 49of50
done region 40of50
done region 39of50
done region 47of50
minimisation time = 0.3921358108520508 mins
simulating spectrum
number of protons = 20
==============================
*** Open Babel Error in ReadFile
Cannot read from ANPN-D-4-60
number of labile protons = 0
exact [0.01, 0.01, 0.04, 0.51, 0.02, 0.11, 0.02, 0.02, 0.04, 0.03, 14.69, 14.53, 0.02, 0.08, 0.37, 0.16, 0.03, 0.4, 0.05, 0.59, 0.01, 0.49, 281.46, 0.49, 1.35, 11.11, 0.01, 0.01, 0.02, 0.2, 10.55, 11.59, 144.65, 0.05, 0.71, 0.53, 0.01, 0.04, 1.18, 0.32, 16.83, 10.61, 269.95, 141.41, 13.07, 2.82, 1.49, 2.32, 0.24]
the best fit number of protons is 24
/home/cloudam/software/DP4-AI/Proton_processing.py:1581: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
whdel = np.where(picked_peaks == peaks_to_remove)
/home/cloudam/software/DP4-AI/Proton_processing.py:1581: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
whdel = np.where(picked_peaks == peaks_to_remove)
/home/cloudam/rdkit2020/lib/python3.6/site-packages/numpy/core/_asarray.py:83: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
return array(a, dtype, copy=False, order=order)
/home/cloudam/rdkit2020/lib/python3.6/site-packages/numpy/core/_asarray.py:83: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
return array(a, dtype, copy=False, order=order)
/home/cloudam/rdkit2020/lib/python3.6/site-packages/numpy/core/_asarray.py:83: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
return array(a, dtype, copy=False, order=order)
Assigning carbon spectrum...
Plotting carbon spectrum...
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, minimal, minimalegl, offscreen, vnc, webgl, xcb.
Aborted
A open babel error occurs showed as following:
minimisation time = 0.3921358108520508 mins
simulating spectrum
number of protons = 20
==============================
*** Open Babel Error in ReadFile
Cannot read from ANPN-D-4-60
number of labile protons = 0
Hello,
I have opened PyDP4_GUI.py to see the GUI platform, but when i try to imput my data and choose options to run the program, it always crash after i push the 'Calculate' buttom. Im not a professional of computational chemistry, but i realy want to experience this magic function. Could you give a successful file for example please.
Thank a lot.
File "/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master/Gaussian.py", line 560, in ReadGeometries
iso.Atoms = atoms
UnboundLocalError: local variable 'atoms' referenced before assignment
can fixed like
for iso in Isomers:
iso.DFTConformers = [[] for x in iso.OptOutputFiles]
atoms=[]
for num, GOutpFile in enumerate(iso.OptOutputFiles):
atoms, coords = ReadGeometry(GOutpFile)
iso.DFTConformers[num] = coords
iso.Atoms = atoms
Hello,
I have been attempting to use the PyDP4 script to supplement my current research.
When performing the DFT calculations in G09, the output files that it generated were in the .log format. Is it possible to run PyDP4 with these Gaussian output files as opposed to the .out files?
Any help would be appreciated.
Liam
In the code of PyDP4.py there is a section on computational clusters that says "This should probably be moved to relevant *.py files as[ it's ] Cambridge specific"
What was your original concept for what these *.py files would do? I'm working on a script to generate job files for XSEDE supercomputers in the United States, but it's easier to write an expert system with more than one example in mind.
This is more of a question than an issue. I am having a hard time figuring out how to tell nwchem to calculate not just the chemical shift for protons but also the coupling constants. How can I use the cli to also get the coupling constants?
Danny
Trying to run the program with ethylbenzene (smiles: CCc1ccccc1) and Carbon experimental data:
PyDP4.py -f mmff -w gnomesw -s chloroform -m t --Smiles ./ebb.smiles ./exper/test/
Running Tinker...
/appl/soft/chem/tinker/bin/scan Smiles_Mol_0_0 /appl/soft/chem/tinker/params/mmff.prm 0 10 20 0.00001 | tee ./Smiles_Mol_0_0.tout
Tinker job 1 of 1 completed.
Smiles_Mol_0_0 is matching conformational search output for Smiles_Mol_0_0
Reading Smiles_Mol_0_0
Tinker output Smiles_Mol_0_0 is corrupted, aborting.
Edit: same results with InChI. If I add other heteroatom there, it runs the program.
Edit2:
CCCCc1ccccc1 <-- works
CCCc1ccccc1 <-- doesn't work
CCc1ccccc1 <-- doesn't work
Cc1ccccc1 <-- doesn't work
c1ccccc1 <--- doesnt't work
Basically anything smaller than CCCc1ccccc1 doesn't work.
I'm trying to generalize this line in PyDP4.py:
94: TinkerPath = '/home/ah809/Downloads/tinker/' # Define the root folder for Tinker software
But I'm having trouble finding Tinker, or maybe a correct copy of it. The version that my package manager installs includes just the params folder; I see no /bin/scan
Where did you get your copy of Tinker?
Initial input files: ['AT1_.sdf']
NMR file: NMR_folder
Workflow: gmona
Generating diastereomers...
Get inchi f AT1_.sdf
Traceback (most recent call last):
File "PyDP4_GUI.py", line 2001, in runPyDP4
self.NMRData, self.Isomers, self.settings, self.DP4Data = PyDP4.main(ui.table_widget.Tab1.settings)
File "/home/l3ul/Downloads/dp4/PyDP4.py", line 189, in main
settings.InputFiles = InchiGen.GenDiastereomers(settings.InputFiles[0], settings.SelectedStereocentres)
File "/home/l3ul/Downloads/dp4/InchiGen.py", line 296, in GenDiastereomers
inchi, aux = GetInchi(f)
File "/home/l3ul/Downloads/dp4/InchiGen.py", line 167, in GetInchi
m = Chem.MolFromMolFile(cwd + '/' + f ,removeHs = False)
OSError: Bad input file /home/l3ul/Downloads/dp4/AT1_.sdf
I'm on a Debian 10.3 VM (Windows 10 host) using Conda.
Hi,
today I did my first attempt to run DP4-AI with one of the molecules mentioned in the paper (IP1).
This where the settings in the GUI:
X Generate Diastereomers
X Solvent: choloroform
X Molecular Mechanics: MacroModel
X DFT Calculations: NWChem
X NMR Assignment
X DP4 Statistics
Until the DFT Calculations everything works well but when NWChem is running its first job the whole process stops.
This is the error message in the terminal:
0:cosmo_input: solvent:Received an Error in Communication Traceback (most recent call last): File "PyDP4_GUI.py", line 2130, in runPyDP4 self.NMRData, self.Isomers, self.settings, self.DP4Data = PyDP4.main(ui.table_widget.Tab1.settings) File "/home/DP4-AI/PyDP4.py", line 291, in main Isomers = DFT.RunNMRCalcs(Isomers, settings) File "/home/DP4-AI/NWChem.py", line 154, in RunNMRCalcs Completed = RunCalcs(NWJobs, settings) File "/home/DP4-AI/NWChem.py", line 281, in RunCalcs 'nwo', shell=True) File "/home/anaconda3/lib/python3.7/subprocess.py", line 411, in check_output **kwargs).stdout File "/home/anaconda3/lib/python3.7/subprocess.py", line 512, in run output=stdout, stderr=stderr) subprocess.CalledProcessError: Command 'nwchem IP1_1nwinp001.nw > IP1_1nwinp001.nwo' returned non-zero exit status 143. Abgebrochen (Speicherabzug geschrieben)
Input File nwchem IP1_1nwinp001.nw:
memory stack 1500 mb heap 1500 mb global 3000 mb
echo
start molecule
title "IP1_1nwinp001"
echo
start
charge 0
geometry units angstroms print xyz autosym
C 2.752491 0.827133 2.711387
C 3.647973 0.115704 1.679197
C 5.061514 -0.157166 2.267454
C 4.867011 -0.980657 3.543630
C 3.988719 -0.295201 4.542582
H 3.012294 1.891831 2.756528
H 3.192389 -0.858682 1.462920
H 5.829005 -1.207807 4.016197
H 4.393468 -1.946588 3.337151
O 2.892261 0.324626 4.061502
O 4.182986 -0.390566 5.749963
C 1.258152 0.726506 2.350990
C 0.367164 1.491722 3.323363
C 3.681667 0.876028 0.343969
O 5.889824 -0.788355 1.265079
Si 6.008200 -2.402636 0.849269
C 6.923509 -3.392763 2.157840
C 7.009348 -2.538200 -0.750923
C 4.344067 -3.205553 0.526214
H 7.114225 -3.585380 -1.048937
H 6.509855 -1.994301 -1.557858
H 8.007702 -2.113722 -0.611204
H 3.738698 -3.247977 1.435561
H 4.478585 -4.229763 0.165140
H 3.787824 -2.649118 -0.233917
H 7.870199 -2.907433 2.412849
H 7.143384 -4.399584 1.790078
H 6.330068 -3.491013 3.070540
H 4.371870 0.413699 -0.367985
H 3.983541 1.919081 0.481370
H 2.696770 0.878015 -0.132765
H 0.948138 -0.325552 2.361837
H 1.075960 1.114254 1.344092
H -0.678258 1.427121 3.004991
H 0.645896 2.549622 3.359155
H 0.432966 1.082320 4.336073
C 5.808685 1.184836 2.589038
C 7.162003 1.000162 3.230150
C 7.478599 1.425388 4.459696
H 5.986473 1.735288 1.656424
H 5.197565 1.835720 3.223433
H 7.918450 0.494028 2.632488
H 8.473925 1.263984 4.863152
H 6.760480 1.933814 5.096445
end
basis
* library 6-311g*
end
cosmo
do_cosmo_smd true
solvent chloroform
end
dft
xc mpw91 0.75 HFexch 0.25 perdew91
mult 1
end
task dft energy
property
shielding
end
task dft property
Error message at the end of the output file IP1_1nwinp001.nwo:
Summary of "ao basis" -> "" (cartesian)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
* 6-311g* on all atoms
------------------------------------------------------------------------
cosmo_input: solvent 911
------------------------------------------------------------------------
input error at line 66: inp_a: string is too large for argument
solvent chloroform
------------------------------------------------------------------------
current input line :
66: solvent chloroform
------------------------------------------------------------------------
------------------------------------------------------------------------
There is an error in the input file
------------------------------------------------------------------------
For more information see the NWChem manual at https://github.com/nwchemgit/nwchem/wiki
For further details see manual section:
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI COMMUNICATOR 3 DUP FROM 0
with errorcode 911.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
Is there a way to fix this error? (I installed a precompiled version of nwchem from the official github account.)
Thanks in advance!!!
It looks like when DP4 gets to the Tinker processing step, it hangs because Tinker expects some manual input (a parameter file which I assume is mmff.prm). Can you verify whether this is the case for you with the newest version of Tinker? If so, I have a patch written to correct this behavior.
Hello,
I have opened PyDP4_GUI.py to see the GUI platform, but when i try to imput my data and choose options to run the program, it always crash after i push the 'Calculate' buttom. Im not a professional of computational chemistry, but i realy want to experience this magic function. Could you give a successful file for example please.
Hello, I'm having some problems running DP5.
The command I used is :
python3 PyDP4.py -s chloroform -w mnsw -m t -f mmff S1a_ S1b_ S1_NMR
S1a_.sdf, S1b_.sdf and S1_NMR were downloaded from :
(https://www.repository.cam.ac.uk/handle/1810/326663)
Error occurred:
Calculating DP5 probabilities...
Traceback (most recent call last):
File "PyDP4.py", line 835, in
main(settings)
File "PyDP4.py", line 501, in main
DP5data = DP5.UnPickle_res(DP5data, settings)
File "/home/node0/work/whe/DP5-master/DP5.py", line 386, in UnPickle_res
data_dic = pickle.load(open(Path(Settings.OutputFolder) / "dp5" / "data_dic.p","rb"))
FileNotFoundError: [Errno 2] No such file or directory: 'dp5/data_dic.p'
Could you please give me some advice?Any assistance will be appreciated.
Hi, I was running DP5 on WSL-Ubuntu 20.04 LTS. When I tried to launch PyDP4.py, the following error occurred.
./PyDP4.py <...> <...>
Output:
Traceback (most recent call last):
File "./PyDP4.py", line 39, in <module>
import Tinker
File "/home/eugene/workspace/dp5inst/DP5-master/Tinker.py", line 16, in <module>
import PyDP4
File "/home/eugene/workspace/dp5inst/DP5-master/PyDP4.py", line 41, in <module>
import DP5 as DP5
File "/home/eugene/workspace/dp5inst/DP5-master/DP5.py", line 2, in <module>
import qml
ModuleNotFoundError: No module named 'qml'
How should I fix this problem?
Managed to get DP4-AI running on a Debian VM, but I can't get it to work on Windows 10 using Conda.
Reading data from the output files...
Traceback (most recent call last):
File "PyDP4.py", line 630, in
main(settings)
File "PyDP4.py", line 296, in main
Isomers = DFT.ReadShieldings(Isomers)
File "C:\Users\L3ul\Desktop\AT1\Opt_E\Gaussian.py", line 491, in ReadShieldings
iso.ShieldingLabels = labels
UnboundLocalError: local variable 'labels' referenced before assignment
In the RunOptCalc() function in NWChem.py I think there is a typo at line 242:
The for loop should populate isoOptOutputFiles instead of isoNMROutputFiles?
So change:
for iso in Isomers:
iso.NMROutputFiles.extend([x[:-3] + '.nwo' for x in iso.OptInputFiles if (x[:-3] + '.nwo') in Completed])
To
for iso in Isomers:
iso.OptOutputFiles.extend([x[:-3] + '.nwo' for x in iso.OptInputFiles if (x[:-3] + '.nwo') in Completed])
After running the RunOptCalc() and trying to ReadGeometries(), I am getting the following error:
NWChem.py, ReadGeometries: No geometry optimisation output files found, geometries could not be read. Quitting.
I believe this is because of the typo ^^.
I am trying to use the DP5 tool for my PhD project.
I would like to know if there is a possibility to use the DP5 statistics with the data already calculated. If so, how do I enter the experimental and calculated NMR data in the program and thus manage to run DP5?
QbasicTimer : stop : Failed. Possibly trying to stop from a different thread
I keep getting this error and the GUI quits automatically. It does not give me a traceback
Thanks!
File "PyDP4.py", line 293, in main
Isomers = DFT.ReadShieldings(Isomers)
File "/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master/Gaussian.py", line 504, in ReadShieldings
iso.ShieldingLabels = labels
UnboundLocalError: local variable 'labels' referenced before assignment
fixed by move labels=[] out second for loop
for iso in Isomers:
labels = []
for GOutpFile in iso.NMROutputFiles:
gausfile = open(GOutpFile, 'r')
GOutp = gausfile.readlines()
gausfile.close()
index = 0
shieldings = []
# labels = []
# Find the NMR shielding calculation section
while not 'Magnetic shielding' in GOutp[index]:
index = index + 1
# Read shielding constants and labels
for line in GOutp[index:]:
if 'Isotropic' in line:
data = [_f for _f in line.split(' ') if _f]
shieldings.append(float(data[4]))
labels.append(data[1] + data[0])
print(GOutpFile,len(shieldings))
iso.ConformerShieldings.append(shieldings)
iso.ShieldingLabels = labels
I have tried it for 3 days in my computer with win system. The Gaussion09 barried me from runing a test of AT2. I think there should be a .chk file to run it properly. There are somenting different between win and linux but I think It can be uesd on win. What is the version of g09,Tinker and Schrodinger? I'm very intresting and exciting for your work.
settings.cfg is missing!
['/home/xu/Desktop/AT1_']
/home/xu/Desktop/NMR_folder/
NMR_path
Current working directory: /home/xu/Desktop/DP
Initial input files: ['/home/xu/Desktop/AT1_']
NMR file: [PosixPath('/home/xu/Desktop/NMR_folder/Proton'), PosixPath('/home/xu/Desktop/NMR_folder/Carbon')]
Workflow: gmns
Generating diastereomers...
Getting inchi from file /home/xu/Desktop/AT1_.sdf
Getting inchi from file /home/xu/Desktop/AT1_.sdf
Number of diastereomers to be generated: 2
Isomer 0 inchi = InChI=1S/C10H19NO/c1-5-9-8(4)10(12)11(9)6-7(2)3/h7-9H,5-6H2,1-4H3/t8-,9-/m0/s1/f/
Isomer 1 inchi = InChI=1S/C10H19NO/c1-5-9-8(4)10(12)11(9)6-7(2)3/h7-9H,5-6H2,1-4H3/t8-,9+/m0/s1/f/
Generated input files: ['/home/xu/Desktop/AT1_1', '/home/xu/Desktop/AT1_2']
Assuming all computations are done? ... False
Using preexisting DFT data? ... False
MacroModel
Setting up MacroModel files...
Could not find Schrodinger folder, please fill in PyDP4.py Settings with the path.
/bin/sh: 1: /utilities/sdconvert: not found
Traceback (most recent call last):
File "PyDP4.py", line 841, in
main(settings)
File "PyDP4.py", line 278, in main
MacroModelInputs = MacroModel.SetupMacroModel(settings)
File "/home/xu/Desktop/DP/MacroModel.py", line 60, in SetupMacroModel
'.mae', shell=True)
File "/home/xu/miniconda3/lib/python3.7/subprocess.py", line 411, in check_output
**kwargs).stdout
File "/home/xu/miniconda3/lib/python3.7/subprocess.py", line 512, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '/utilities/sdconvert -isd /home/xu/Desktop/AT1_1.sdf -omae /home/xu/Desktop/AT1_1.mae' returned non-zero exit status 127.
——————————————————————————————
hello, I run data downloading from https://www.repository.cam.ac.uk,but encounter some issues as shown above ,
thank you!
Hi,
I'm running PyDP4-AI with TINKER and nwchem and I noticed that nwchem is only running on a single CPU.
Is it possible to modify the nwchem command in NWChem.py to use mpi? Will the script still be able to correctly read the output?
I use terminal run Dp4 and I met this problem ,I searched all my ubuntu and I did not find any
S-3dstructure1ginp001.com file !
PyDP4 script,
integrating Tinker/MacroModel,
Gaussian/NWChem and DP4
v1.0
Settings read from settings.cfg:
SCHRODINGER: /app/schrodinger2018-1
TinkerPath: /home/ke291/TINKER/
NWChemPath: nwchem
GausPath: /root/opt/gaussian/g16
['./spectrum/struct/S-3dstructure.sdf']
./spectrum/shouxingputu/
NMR_path
Current working directory: /home/wyq/Downloads/DP4-AI-master3/DP4-AI-master
Initial input files: ['./spectrum/struct/S-3dstructure.sdf']
NMR file: [PosixPath('spectrum/shouxingputu/Carbon'), PosixPath('spectrum/shouxingputu/Proton')]
Workflow: gnomes
Generating diastereomers...
Getting inchi from file ./spectrum/struct/S-3dstructure.sdf
Getting inchi from file ./spectrum/struct/S-3dstructure.sdf
Number of diastereomers to be generated: 1
Isomer 0 inchi = InChI=1S/C16H20O/c1-16(11-13-7-3-2-4-8-13)12-17-15-10-6-5-9-14(15)16/h5-7,9-10H,2-4,8,11-12H2,1H3/t16-/m1/s1/f/
Generated input files: ['./spectrum/struct/S-3dstructure1']
Assuming all computations are done? ... False
Using preexisting DFT data? ... False
Performing conformational search using MacroModel
Setting up MacroModel files...
Macromodel input for ./spectrum/struct/S-3dstructure1 prepared.
MacroModel inputs: ['./spectrum/struct/S-3dstructure1.mae']
Running MacroModel...
/app/schrodinger2018-1/bmin ./spectrum/struct/S-3dstructure1
Macromodel job 1 of 1 completed.
Reading conformers...
./spectrum/struct/S-3dstructure1.log is matching conformational search output for ./spectrum/struct/S-3dstructure1
Energy window: 10.0 kJ/mol
./spectrum/struct/S-3dstructure1: 22 conformers read within energy window
Pruning conformers...
./spectrum/struct/S-3dstructure1: 22 conformers after pruning with 0A RMSD cutoff
Setting up geometry optimization calculations...
Traceback (most recent call last):
File "PyDP4.py", line 718, in
main(settings)
File "PyDP4.py", line 253, in main
Isomers = DFT.SetupOptCalcs(Isomers, settings)
File "/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master/Gaussian.py", line 126, in SetupOptCalcs
WriteGausFile(filename, iso.Conformers[num], iso.Atoms, charge, settings, 'opt')
File "/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master/Gaussian.py", line 326, in WriteGausFile
f = open(Gausinp + '.com', 'w')
FileNotFoundError: [Errno 2] No such file or directory: './spectrum/struct/S-3dstructure1ginp001.com'
(chem-env) root@ubuntu:/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master#
when I run python PyDP4_GUI.py in DP4-AI-master source code dir,problem occur,
I put *.sdf and other data in other dir not in DP4-AI-master source code dir
(chem-env) root@ubuntu:/home/wyq/Downloads/Dp4-2/DP4-AI-master# python PyDP4_GUI.py
/home/wyq/anaconda3/envs/chem-env/lib/python3.6/site-packages/statsmodels/compat/pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.
from pandas.core import datetools
/root/.pyxbld/temp.linux-x86_64-3.6/pyrex/ConfPrune.c: In function ‘__pyx_f_9ConfPrune_qtrjac’:
/root/.pyxbld/temp.linux-x86_64-3.6/pyrex/ConfPrune.c:7129:10: warning: variable ‘__pyx_v_ret’ set but not used [-Wunused-but-set-variable]
double __pyx_v_ret[5][4];
^~~~~~~~~~~
Traceback (most recent call last):
File "PyDP4_GUI.py", line 1026, in append_text
self.worker.log_file.write(text)
AttributeError: 'PyDP4WorkerObject' object has no attribute 'log_file'
已放弃 (核心已转储)
Hello,
I'm having trouble opening the GUI. Calling PyDP4_GUI.py results in the below output:
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\openbabel\openbabel.py", line 27, in swig_import_helper
return importlib.import_module(mname)
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\importlib_init_.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'openbabel._openbabel'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "PyDP4_GUI.py", line 4, in
import PyDP4
File "c:\Users\user\Desktop\DP4-AI-master\DP4-AI-master\PyDP4.py", line 38, in
import NMR
File "c:\Users\user\Desktop\DP4-AI-master\DP4-AI-master\NMR.py", line 23, in
from Proton_processing import process_proton
File "c:\Users\user\Desktop\DP4-AI-master\DP4-AI-master\Proton_processing.py", line 8, in
from openbabel import *
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\openbabel_init_.py", line 3, in
from . import openbabel
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\openbabel\openbabel.py", line 30, in
_openbabel = swig_import_helper()
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\openbabel\openbabel.py", line 29, in swig_import_helper
return importlib.import_module('openbabel')
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\importlib_init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: DLL load failed: The specified module could not be found.
Any assistance will be appreciated.
I've been encountering issues getting sdf2tinkerxyz (both the older Linux version and the newer Darwin version) to properly assign some hydrogens to their environment. I'm not sure what's causing it to be confused, but the result is that the entire pipeline stalls after Tinker crashes.
I've written some code to get around this by not adding those damaged files to the array of Tinker inputs, but I wonder whether you think this is a good solution. Are all inputs necessary?
Have you thought of adding support for MOPAC for performing the DFT calculations?
PyDP4 script,
integrating Tinker/MacroModel,
Gaussian/NWChem and DP4
v1.0
Initial input files: ['R-3dstructure.sdf']
NMR file: shouxingputu
Workflow: gmo
Generating diastereomers...
Getting inchi from file R-3dstructure.sdf
Getting inchi from file R-3dstructure.sdf
Number of diastereomers to be generated: 1
Isomer 0 inchi = InChI=1S/C16H20O/c1-16(11-13-7-3-2-4-8-13)12-17-15-10-6-5-9-14(15)16/h5-7,9-10H,2-4,8,11-12H2,1H3/t16-/m0/s1/f/
Generated input files: ['R-3dstructure1']
Assuming all computations are done? ... False
Using preexisting DFT data? ... False
Performing conformational search using MacroModel
Setting up MacroModel files...
Macromodel input for R-3dstructure1 prepared.
MacroModel inputs: ['R-3dstructure1.mae']
Running MacroModel...
Valid R-3dstructure1.log exists, skipping...
Reading conformers...
R-3dstructure1.log is matching conformational search output for R-3dstructure1
Energy window: 10.0 kJ/mol
R-3dstructure1: 22 conformers read within energy window
Pruning conformers...
R-3dstructure1: 22 conformers after pruning with 0A RMSD cutoff
Setting up geometry optimization calculations...
Running geometry optimization calculations...
Running Gaussian DFT geometry optimizations locally...
/root/opt/gaussian/g16/g16< R-3dstructure1ginp012.com > R-3dstructure1ginp012.out
No executable for file l1.exe.
Search path GAUSS_EXEDIR is "/root/opt/gaussian/g16"
: No such file or directory
Segmentation fault (core dumped)
Traceback (most recent call last):
File "PyDP4_GUI.py", line 2002, in runPyDP4
self.NMRData, self.Isomers, self.settings, self.DP4Data = PyDP4.main(ui.table_widget.Tab1.settings)
File "/home/wyq/Downloads/DP4-AI-master/PyDP4.py", line 258, in main
Isomers = DFT.RunOptCalcs(Isomers, settings)
File "/home/wyq/Downloads/DP4-AI-master/Gaussian.py", line 254, in RunOptCalcs
Completed = RunCalcs(GausJobs)
File "/home/wyq/Downloads/DP4-AI-master/Gaussian.py", line 295, in RunCalcs
outp = subprocess.check_output(GausPrefix + f + ' > ' + f[:-3] + 'out', shell=True)
File "/home/wyq/anaconda3/lib/python3.7/subprocess.py", line 411, in check_output
**kwargs).stdout
File "/home/wyq/anaconda3/lib/python3.7/subprocess.py", line 512, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '/root/opt/gaussian/g16/g16< R-3dstructure1ginp012.com > R-3dstructure1ginp012.out' returned non-zero exit status 139.
已放弃 (核心已转储)
I keep getting these kind of errors with even the not-so-complex molecules:
File "/scratch/project_2003067/DP5/DP5/PyDP4.py", line 841, in <module>
main(settings)
File "/scratch/project_2003067/DP5/DP5/PyDP4.py", line 317, in main
Isomers = DFT.RunOptCalcs(Isomers, settings)
File "/scratch/project_2003067/DP5/DP5/Gaussian.py", line 254, in RunOptCalcs
Completed = RunCalcs(GausJobs, settings)
File "/scratch/project_2003067/DP5/DP5/Gaussian.py", line 308, in RunCalcs
outp = subprocess.check_output(GausPrefix + " < " + f + ' > ' + f[:-3] + 'out', shell=True)
File "/scratch/project_2003067/DP5/DP5_env/lib/python3.9/subprocess.py", line 424, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/scratch/project_2003067/DP5/DP5_env/lib/python3.9/subprocess.py", line 528, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '/appl/soft/chem/gaussian/G16RevC.01_new/g16/g16 < Smiles_Mol_2_0ginp008.com > Smiles_Mol_2_0ginp008.out' returned non-zero exit status 1.
Is there any way to increase the timeout @HowarthA ?
File "/home/wyq/Downloads/DP4-AI-master3/DP4-AI-master/MacroModel.py", line 134, in RunMacroModel
if shutil.which(os.path.join(settings.SCHRODINGER,'bmin')) is None & settings.SCHRODINGER != "not-installed":
TypeError: unsupported operand type(s) for &: 'NoneType' and 'str'
in MacroModel.py line 134 ,& should be and
if shutil.which(os.path.join(settings.SCHRODINGER,'bmin')) is None and settings.SCHRODINGER != "not-installed":
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.