Author: | Andrew Tarzia |
---|
A Python module for generating and analysing metal-organic cages formed from subcomponent self-assembly.
Code is for the paper at DOI: 10.1002/anie.202217987
If you have any issues contact me at andrew dot tarzia at gmail dot com
To install this code, you can clone this repo. It is written to be used following the workflow below.
Dependancies:
The file environment.yml
defines a Python 3.9 conda env used for this project.
The file env_set.py
sets the directories used in this work based on my workstation (Ubuntu 18, 20 or 22). This will require editting for any other machine.
The external software used:
CREST
version 2.9
from https://github.com/crest-lab/crest
Gulp
version 5.1
from http://gulp.curtin.edu.au/gulp/
Shape
version 2.1
from http://www.ee.ub.edu/index.php?option=com_content&view=article&id=575:shape-available&catid=80:news&Itemid=466
CODEDIR: | must be set by the user - where the code is. |
---|---|
PROJDIR: | must be set by the user - where the user wants the data to be generated. |
Note The file env_set.py
sets the directories used in this work based on my workstation (Ubuntu 18, 20 or 22). This will require editting for any other machine.
I attempt to highlight steps based on their part in the process (e.g. construction or analysis). Not all steps are necessary for what a user may want to do. Although, this project was so involved that many parts of the code are inter-related in an inconveniant to new usage. If so, please contact me for suggestions.
- plot shape measure:
Directory to run in:
PROJDIR
/shape_tests/python CODEDIR/cage_structures/scripts/plot_shape_measure_examples.py
- complex building:
Directory to run in:
PROJDIR
/complex_library/Produces: complex building block structures.
python CODEDIR/cage_structures/scripts/build_complex_library.py CODEDIR/cage_structures/data/cube_complex_library.json ../ligand_library/
- ligand building:
Directory to run in:
PROJDIR
/ligand_library/Produces: ligand building block structures.
python CODEDIR/cage_structures/scripts/build_ligand_library.py CODEDIR/cage_structures/data/cube_ligand_library.json
- Ligand AR analysis:
Directory to run in:
PROJDIR
/ligand_library/Performs: analysis of the aspect ratio of the ligands before and after reaction.
python CODEDIR/cage_structures/scripts/calculate_ligand_ARs.py
- flex analysis:
Directory to run in:
PROJDIR
/flex_analysis/Performs: analysis of the conformer flex of all ligands
python CODEDIR/cage_structures/scripts/flexibility_analysis.py ../ CODEDIR/cage_structures/data/cube_ligand_library.json
- face analysis:
Directory to run in:
PROJDIR
/face_analysis/Produces: face models and analyses them.
python CODEDIR/cage_structures/scripts/face_analysis.py ../ cl1 manual_complex
- cage building:
Directory to run in:
PROJDIR
/cage_library/Produces: cage structures, optimised.
Performs: analysis and saves them to a csv.
python CODEDIR/cage_structures/scripts/build_cube_library.py CODEDIR/cage_structures/data/cube_ligand_library.json CODEDIR/cage_structures/data/cube_complex_library.json CODEDIR/cage_structures/data/cube_library.json ../ligand_library/ ../complex_library/ f CODEDIR/cage_structures/data/cube_expt_library.json
- report on constructions:
Directory to run in:
PROJDIR
/cage_library/Produces: pdbs of optimised structures and a text file with report
python CODEDIR/cage_structures/scripts/report_on_construction.py
- crystal structure analysis:
Directory to run in:
PROJDIR
/xray_structures/analysis/Performs: analysis of crystal structures using same methods as computational models.
python CODEDIR/cage_structures/scripts/analyse_crystal_structures.py CODEDIR/cage_structures/data/cube_complex_library.json CODEDIR/cage_structures/data/cube_library.json ../../ligand_library/ ../../cage_library/ CODEDIR/cage_structures/data/cube_expt_library.json
- align xray and generated structures:
Directory to run in:
PROJDIR
/alignment/Produces: many possible pairs of structures that are aligned, covering the multiple input rotations.
python CODEDIR/cage_structures/scripts/align_structures.py CODEDIR/cage_structures/data/cube_complex_library.json CODEDIR/cage_structures/data/cube_library.json ../../../cage_library/ CODEDIR/cage_structures/data/cube_expt_library.json
- map pores of aligned xray and generated structures:
Directory to run in:
PROJDIR
/alignment/Produces: _pore.xyz and _host.xyz for each ccrystal structure
python CODEDIR/cage_structures/scripts/poremapping.py CODEDIR/cage_structures/data/cube_expt_library.json
- setup convergence tests:
Directory to run in:
PROJDIR
/cage_library/Produces: directory (set_dft_run) with input files for DFT energy evaluation as a function of parameters.
python CODEDIR/cage_structures/scripts/setup_convergence_tests.py conv_tests_dft ./ f
- evaluate convergence tests:
Directory to run in:
PROJDIR
/cage_library/Produces: plots of rel. energy in kJmol-1 vs cutoff or rel_cutoff
python CODEDIR/cage_structures/scripts/evaluate_convergence_tests.py conv_tests_dft
- setup set opt:
Directory to run in:
PROJDIR
/cage_library/Produces: directory (set_dft_run) with input files for CP2K DFT run.
python CODEDIR/cage_structures/scripts/setup_set_opt.py set_dft_run ./ cl1_quad2_12 f
- extract set opt:
Directory to run in:
PROJDIR
/cage_library/Produces: cage structures with _optdft.mol suffix
python CODEDIR/cage_structures/scripts/extract_set_opt.py ./set_dft_run ./ cl1_quad2_12
- plot flex measures:
Directory to run in:
PROJDIR
/flex_analysis/Produces: flex_dists.pdf and flex_comp.pdf and flex_energy.pdf
python CODEDIR/cage_structures/scripts/plot_flex_measures.py
- plot face measure examples:
Directory to run in:
PROJDIR
/cage_library/Produces: plots of simple models relationships between AR and face stability
python CODEDIR/cage_structures/scripts/plot_face_measure_examples.py
- plot categorisation:
Directory to run in:
PROJDIR
/cage_library/Produces:: categorical_*.pdf
python CODEDIR/cage_structures/scripts/plot_categorisation.py ../xray_structures/analysis/all_xray_csv_data.csv
- plot parities:
Directory to run in:
PROJDIR
/cage_library/Produces:: parities_*.pdf
python CODEDIR/cage_structures/scripts/plot_parities.py ../xray_structures/analysis/all_xray_csv_data.csv CODEDIR/cage_structures/data/cube_expt_library.json
- plot cube vs properties:
Directory to run in:
PROJDIR
/cage_library/Produces: shape_vs_energies.pdf and shape_vs_int_angle.pdf
Performs: comparison of shape measure (cube likeness) with formation and strain energy
python CODEDIR/cage_structures/scripts/plot_cube_vs_properties.py
- plot lse vs fe:
Directory to run in:
PROJDIR
/cage_library/Produces: lse_sum_vs_fe.pdf and lse_sum_vs_fe_z.pdf
python CODEDIR/cage_structures/scripts/plot_lse_vs_fe.py
- plot set distributions:
Directory to run in:
PROJDIR
/cage_library/Produces: distribution_*pdf and set_energies_xtb/dft.pdf plots
python CODEDIR/cage_structures/scripts/plot_set_distributions.py
- plot symm distributions:
Directory to run in:
PROJDIR
/cage_library/Produces: sym_distribution_*.pdf figures
python CODEDIR/cage_structures/scripts/plot_symm_distributions.py
- decision tree:
Directory to run in:
PROJDIR
/cage_library/Produces: a decision tree plot — decision_tree.pdf
python CODEDIR/cage_structures/scripts/decision_tree.py
- plot znzn distributions:
Directory to run in:
PROJDIR
/cage_library/Produces: plots of zn-Zn distances for constructed and crystal structures.
python CODEDIR/cage_structures/scripts/plot_znzn_distributions.py ../xray_structures/analysis CODEDIR/cage_structures/data/cube_expt_library.json
- plot ligand properties:
Directory to run in:
PROJDIR
/cage_library/Produces: all_ligand_MM_vs_AR.pdf and all_ligand_properties.pdf
python CODEDIR/cage_structures/scripts/plot_ligand_properties.py CODEDIR/cage_structures/data/cube_expt_library.json
- plot td tl parity:
Directory to run in:
PROJDIR
/cage_library/Produces: td_tl parity plots.
python CODEDIR/cage_structures/scripts/plot_td_tl_parity.py
I developed this code when I was working in the Jelfs group, http://www.jelfs-group.org/.