-
Notifications
You must be signed in to change notification settings - Fork 23
Roadmap
Alon Grinberg Dana edited this page Jun 28, 2020
·
170 revisions
- output citations of all relevant external code used per species/rxn
- save S2 and T1 in the final project info file.
- If S2 is high, use rohf (but then don't use SCF=QC in Gaussian for troubleshooting, use
USE=L506
instead: http://gaussian.com/scf/) - How to troubleshoot a wrong number of imaginary frequencies in a TS? Just try a different guess?
- Add an optional stability test to Gaussian jobs: http://gaussian.com/stable/
- Limit the number of times a job type is spawned per species
- Visualize the imaginary frequency of TSs
- If an opt job required troubleshooting, apply the same trsh for the fine opt as well
- Relax TS troubleshooting, check if diameter is now larger
- Find the lowest barrier of a molecule (helpful for judging stability and most likely degradation pathway). See Maeda's work (Adeel's mentor, Japan) GRRM
- Organize scheduler and Job into smaller functions with tests.
- Make a separate troubleshooting module, relocate to Job
- Transform the xyz attributes to an array form, also consider isotopes
- A species should have a .rmg_mol attribute which is a list with b_mol, s_mol, and mol_list, and a .rd_mol
- Implement an algorithm that uses the information of unsuccessful conformers (when a rotor scan finds a lower conformer) and comes up with guesses of what the global minimum could be
- Support Force Fields and semi-empirical methods in Gaussian (shouldn't confuse with a composite method, here, too, there's no basis set)
- zmat conf improvement: probably no need for zmat comparisons, criteria to consolidate confs: if FF energy and either dmat is identical or atomType dmat is identical.
- XTB for conformers, see CREST that does conformational searching (https://xtb-docs.readthedocs.io/en/latest/contents.html#). XTB is also implemented in Entos QM which should be free for academic use, but perhaps it's better to use the standalone version.
- Use joblib for parallelisation: https://joblib.readthedocs.io/en/latest/
- Add tutorials (https://www.divio.com/blog/documentation/)
- Add ARC's logic with a workflow image of calculation order
- Implement torsiondrive: https://github.com/lpwgroup/torsiondrive, https://pypi.org/project/torsiondrive/
- How to DETERMINE rotors for a TS w/o 2D geometry?
- Implement (execute) 2D rotors using Q2DTor (QChem example: https://manual.q-chem.com/5.2/Ch10.S4.html)
- TS's and rotor scans: when does a rotor invalidate a TS? Determine which rotors to scan in a TS. Maybe everything 1st degree in distance from an atom that has a large displacement for the imaginary freq shouldn't be a pivotal atom. Determine which rotors break the TS and invalidate them.
- Even if a rotor is invalidated, still change the dihedral if the initial conformer isn't the minimum.
- Visualize 2-D rotors: https://www.oreilly.com/library/view/python-data-science/9781491912126/ch04.html (Figure 4-34. Label contours on top of an image)
- Wait for all rotor scan jobs to terminate before troubleshooting rotors, so if two rotor scans find a lower conformer, the one which is lowest will be tried first (and all info will be saved for the global minimum algorithm)
- Rotors in Orca: https://www.youtube.com/watch?v=EKJRaC240vg
- Plotting 2D rotors should look like this: https://link.springer.com/article/10.1007/s00894-017-3508-4
- Processor
- input and submit files
- Functional server tests
- conformers FF -> opt conf level -> sp conf level (DLPNO)
- A wiser selection of lowest confs by energy (imipramine case)
- For TSs, start w/ the lowest conf selected at the sp level, if a site isn't accesible (no rate could be calculated), try using another conf rated by energy.
- Ideally, we'd like all(!) confs up to a certain E_threshold for the stereo algorithm
- Add dummy RMG families in ARC with templates only (for atom mapping)
- Reaction atom mapping: https://chemrxiv.org/articles/Unsupervised_Attention-Guided_Atom-Mapping/12298559
- Implement QST2 in G, DEGSM, NEB, KinBot
- Barrierless CVTST
- QChem FSM: http://www.q-chem.com/qchem-website/manual/qchem43_manual/sect-approx_hess.html
- QChem IRC: http://www.q-chem.com/qchem-website/manual/qchem44_manual/sec-IRC.html
- Auto-generate all H-abs conformational guesses for a TS using brute force
- NEB: https://www.scm.com/doc/Tutorials/ADF/Transition_State_with_ASE.html, https://wiki.fysik.dtu.dk/ase/ase/neb.html, https://wiki.fysik.dtu.dk/ase/tutorials/neb/idpp.html#idpp-tutorial.
ts
in TeraChem calls NEB - TS: check normal displacement modes (code by Colin)
- IRC check
- Clone and compile GSM automatically in ARC on a selected server, or implement pyGSM.
- If a species rotor scan finds a better conformer, make new TS guesses from it (keep old ones for comparison)
- Preserve non-reacting sites' chirality in a reaction (this might mean creating a duplicate species, since it could also be the product in a different reaction with different chirality). Important for double-ended TS guess methods. See for example:
CNC1C2CCN(C1C)CC2 + HO2
<=>CNC1C2CCN([C]1C)CC2 + H2O2
- Add VTST, see e.g., http://akrmys.com/gpop/refmVtst.html
- Use the official version of AutoTST (some tests will fail)
- NEB GPR: https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.122.156001
- pyGSM: https://github.com/ZimmermanGroup/molecularGSM/wiki
- ASE autoNEB: https://wiki.fysik.dtu.dk/ase/dev/_modules/ase/autoneb.html
- NEBTERPOLATION using MD to find TSs: https://pubs.acs.org/doi/full/10.1021/acs.jctc.5b00830?src=recsys
- MRCI (Automated Selection of Active Orbital Spaces: https://pubs.acs.org/doi/10.1021/acs.jctc.6b00156)
- check and report spin contamination (in molpro, this is in the output.log file(!) as "Spin contamination <S2-Sz2-Sz> 0.00000000")
- check and report T1 and leading C1 coefficient if MRCI is run
- Add Orca, TeraChem, psi4, Torsion-drive
- Implement Mark Payne's suggestion of first running freq and reading the Hess before optimizing a TS in QChem
- Certain functionals in QChem don't have parallelization of Hessians, so freq jobs are slow. We might be able to speed it up using
IDERIV
set to ` (instead of 2)
- trsh rmg server
- job arrays (Colin\Brian)
- How to use Job Arrays: https://arc-ts.umich.edu/software/torque/job-arrays/
- Solve Eqw status on server:
qmod -cj jobid
ifEqw
is detected (first wait 30 sec)
- mongodb (https://github.com/PACChem/QTC/blob/master/qtc/dbtools.py)
- see https://pubs.acs.org/doi/abs/10.1021/acs.jpca.5b05448, https://pubs.acs.org/doi/abs/10.1021/jp511403a
- GDB: http://gdb.unibe.ch/downloads/, https://datarepository.wolframcloud.com/resources/GDB9-Database
- BigQuery, https://en.wikipedia.org/wiki/BigQuery
- pandas can be used for JSON and SQL: https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html
- HDF5, https://www.hdfgroup.org/solutions/hdf5
- Output a reaction pathway (E0's) from Arkane
- Software Management Plan (https://github.com/softwaresaved/software-management-plans)
- NetworkX: https://networkx.github.io/
- pygal: http://www.pygal.org/en/stable/
- Add binders once psi4 is integrated
- Consider MultirefPredict, https://github.com/hjkgrp/MultirefPredict