diff --git a/README.md b/README.md index b9b70a04..685b6e62 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,7 @@ These are currently used to find a minimum energy conformation of a molecule. | `OpenFF Torsion Benchmark Supplement Optimization Dataset v1.0` | [2024-04-18-OpenFF-Torsion-Benchmark-Supplement-Optimization-Dataset-v1.0](https://github.com/openforcefield/qca-dataset-submission/tree/master/submissions/2024-04-18-OpenFF-Torsion-Benchmark-Supplement-Optimization-Dataset-v1.0) | Additional optimizations for benchmarking Sage 2.2.0 proper torsions and new parameters from the torsion multiplicity work | H, C, N, O, F, P, S, Cl, Br | | | `OpenFF Torsion Multiplicity Optimization Training Coverage Supplement v1.0` | [2024-06-20-OpenFF-Torsion-Multiplicity-Optimization-Training-Coverage-Supplement-v1.0](https://github.com/openforcefield/qca-dataset-submission/tree/master/submissions/2024-06-20-OpenFF-Torsion-Multiplicity-Optimization-Training-Coverage-Supplement-v1.0) | Additional optimization training data for Sage 2.2.0 proper torsions and new parameters from the torsion multiplicity work | C, Cl, S, O, H, P, N, Br | | | `OpenFF Torsion Multiplicity Optimization Benchmarking Coverage Supplement v1.0` | [2024-06-24-OpenFF-Torsion-Multiplicity-Optimization-Benchmarking-Coverage-Supplement-v1.0](https://github.com/openforcefield/qca-dataset-submission/tree/master/submissions/2024-06-24-OpenFF-Torsion-Multiplicity-Optimization-Benchmarking-Coverage-Supplement-v1.0) | Additional optimization benchmarking data for Sage 2.2.0 proper torsions and new parameters from the torsion multiplicity work | Cl, H, I, S, O, N, Br, C, P | | +|`OpenFF Iodine Fragment Opt v1.0` | [2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0](https://github.com/openforcefield/qca-dataset-submission/tree/master/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0) | B3LYP-D3BJ/DZVP optimized conformers for a variety of I-containing fragment molecules | C, O, I, S, F, Br, Cl, N, H || # TorsionDrive Datasets diff --git a/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/README.md b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/README.md new file mode 100644 index 00000000..1ba75c86 --- /dev/null +++ b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/README.md @@ -0,0 +1,60 @@ +# OpenFF Iodine Fragment Opt v1.0 + +## Description + +A dataset containing fragments of molecules from the Zinc, Enamine 10240, Enamine 50240, and CHEMBL datasets, optimized at the B3LYP-D3BJ/DZVP level of theory. Molecules containing I were fragmented into small fragments. +Fragments containing I then had protomers enumerated. + +For each resulting molecule, a set of up to 5 conformers were generated by: + * generating a set of up to 1000 conformers with a RMS cutoff of 0.5 Å using the OpenEye backend of the OpenFF toolkit + * applying ELF conformer selection (max 5 conformers) using OpenEye + + +## General information + +* Date: 2024-09-10 +* Class: OpenFF OptimizationDataset +* Purpose: Geometry optimization for eventual ESP calculation +* Name: OpenFF Iodine Fragment Opt v1.0 +* Number of unique molecules: 526 +* Number of conformers: 531 +* Number of conformers per molecule (min, mean, max): 1, 1.01, 5 +* Molecular weight (min, mean, max): (155.97, 242.52, 316.94) +* Charges: [-1.0, 0.0, 1.0, 2.0] +* Dataset submitter: Alexandra McIsaac +* Dataset generator: Alexandra McIsaac + + +## QCSubmit generation pipeline + +* `generate-dataset.ipynb`: This notebook shows how the dataset was prepared from the input files. + * Conformers were generated and selected using OpenEye + + +## QCSubmit Manifest + +* `dataset.json.bz2`: Compressed dataset ready for submission +* `dataset.pdf`: Visualization of dataset molecules +* `dataset.smi`: Smiles strings for dataset molecules +* `generate-dataset.ipynb`: Notebook describing dataset generation and submission +* `enumerated.smi`: Input SMILES +* `input-environment.yaml`: Environment file used to create Python environment for the notebook +* `full-environment.yaml`: Fully-resolved environment used to execute the notebook. + + +## Metadata + +* Elements: {C, I, Br, Cl, S, N, H, F, O} +* unique molecules: 526 +* Spec: default + * basis: DZVP + * implicit_solvent: None + * keywords: {} + * maxiter: 200 + * method: B3LYP-D3BJ + * program: psi4 + * SCF properties: + * dipole + * quadrupole + * wiberg_lowdin_indices + * mayer_indices diff --git a/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/dataset.json.bz2 b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/dataset.json.bz2 new file mode 100644 index 00000000..20bb7a62 --- /dev/null +++ b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/dataset.json.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d324e5dbf3865fbe68e37c2c314ffe423b4c25c2669828bbd0243713920b8e1a +size 134075 diff --git a/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/dataset.pdf b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/dataset.pdf new file mode 100644 index 00000000..4d28246a Binary files /dev/null and b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/dataset.pdf differ diff --git a/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/dataset.smi b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/dataset.smi new file mode 100644 index 00000000..b0d142a7 --- /dev/null +++ b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/dataset.smi @@ -0,0 +1,526 @@ +CCI +CC=CI +C(C=O)I +CC#CI +C#CCI +C(=O)C#CI +COCCI +C(C#CO)I +C1=COC(=N1)I +C1=C(N=NN1)I +C1=NNN=C1I +C1=CON=C1I +C1=CN=C(N1)I +C1=C(C=NN1)I +C1(=NN=NN1)I +C1(=NN=N[N-]1)I +C1=C(C=NO1)I +C1=C(N=CO1)I +C1=NC(=NN1)I +C1=NNC(=N1)I +C1(=NNN=N1)I +C1=CNN=C1I +C1=C(NN=C1)I +C(C(C=O)N)I +C(C(C=O)[NH3+])I +C1=NN=C(N1)I +C1=COC(=C1)I +C1=C(N=CN1)I +C1=C(NC=N1)I +C1=C(SC=N1)I +CCOCCI +C1=C(NN=N1)I +C(C(F)(F)F)(F)I +CC1=CC(=CN1)I +c1ccnc(c1)I +CC1=NOC=C1I +C1=NNC(=C1I)N +C1=C(C(=NN1)N)I +c1cncnc1I +c1cnc(cn1)I +c1cnccc1I +c1ccc(cc1)I +C1=NNN=C1CI +C1=C(N=NN1)CI +CC1=CC(=NN1)I +CC1=NNC(=C1)I +c1c(cncn1)I +C1CC=NC(=C1)I +C1CC(=NC=C1)I +C(C(F)(F)I)(F)F +CC1=C(C=NO1)I +C1=C(SC(=N1)N)I +C1=C(C(=CS1)I)N +CC1=C(C=NN1)I +CC1=NNC=C1I +CC1=CC=C(O1)I +c1cc(cnc1)I +c1cc(c[nH+]c1)I +C1C=CC=CC1I +CN1C=NC=C1I +CC1=C(N=NN1)I +CC1=NNN=C1I +CC1(CCNCC1)I +CC1(CC[NH2+]CC1)I +Cc1c(cccn1)I +c1cnc(cc1Br)I +Cc1ccc(cc1)I +Cc1cnccc1I +C1=NC(=C(S1)I)C=O +c1cc(nc(c1)I)N +C(=O)C1=NNN=C1I +C(=O)C1=C(NN=N1)I +c1c(cncc1I)Cl +c1cc(c(nc1)I)Cl +c1c[nH+]cc(c1N)I +c1cncc(c1N)I +Cc1ccc(cn1)I +CC1=C(C(=NN1)N)I +CC1=NNC(=C1I)N +Cc1ccccc1I +c1cc(ncc1I)F +c1cc(c(nc1)I)N +c1cnc(cc1I)Br +C1=NNC(=C1I)C#N +C1=C(C(=NN1)C#N)I +Cc1ccnc(c1)I +c1ccc(c(c1)F)I +c1c[nH+]c(cc1N)I +c1cnc(cc1N)I +CC1=CC(=C(S1)C)I +c1cncc(c1Cl)I +c1cncc(c1I)Cl +C1COC(C1I)CO +CCC[N+](C)(C)CI +c1c(cncc1I)Br +C(=O)C1=NNC(=N1)I +C(=O)C1=NC(=NN1)I +Cc1cc(cnc1)I +c1cc(c(nc1)I)F +c1cc(c(nc1)I)Br +c1cc(c(nc1)F)I +Cc1ccncc1I +c1cnc(cc1Cl)I +c1cc(c(nc1)I)O +c1cc(cc(c1)I)O +c1c(cnc(n1)N)I +C1=C(SC=C1C=O)I +c1cnc(cc1F)I +c1ccc(c(c1)N)I +c1cnc(cc1I)F +c1cc(ncc1I)N +c1cc(c(nc1)Br)I +CC1=C(SC(=N1)N)I +c1cncc(c1I)Br +c1cncc(c1Br)I +c1cnc(nc1I)N +c1cc(nc(c1)I)F +c1cc(ccc1N)I +c1cnc(cc1I)N +C1=C(C=NNC1=O)I +c1c(cncc1I)N +c1c(cncc1I)F +C1=CSC(=C1I)C=O +C1C=CC=CC1(O)I +C1=C(C(=NN1)I)C=O +C1=NNC(=C1C=O)I +C1=C(C(=NN1)C=O)I +C1=NNC(=C1I)C=O +c1cc(ccc1O)I +c1cc(c(nc1)N)I +CC1=C(C(=NN1)C)I +C1=NOC(=C1I)C#N +c1c(ncc(n1)I)Cl +c1cc(ncc1Br)I +c1cncc(c1F)I +Cc1cccnc1I +C1=C([NH+]=C(N1)C=O)I +C1=C(N=C(N1)C=O)I +c1cc(ncc1I)Cl +c1ccc(c(c1)O)I +C1C(CNC1=O)CI +c1cc(cc(c1)I)N +c1cc(cc(c1)I)F +c1c(c[nH+]cc1I)N +CC1=C(NC(=N1)C)I +CC1=C(N=C(N1)C)I +C1=C(C=NC(=O)N1)I +c1cnc(cc1I)Cl +C1=C(OC(=C1)I)C=O +c1cncc(c1I)N +Cc1cccc(n1)I +C1=C(N=C(O1)I)C=O +CNc1ccc(cn1)I +CSc1cc(cnc1)I +COc1cnccc1I +CSc1ccnc(c1)I +c1cc(ccc1C=O)I +c1cncc(c1C[NH3+])I +CCc1cccnc1I +C1(=O)C(=NNC(=O)N1)I +c1cc(nc(c1)I)C[NH3+] +Cc1ccc(cc1I)N +C1=NNC(=C1I)C(=O)[O-] +C1=C(C(=NN1)C(=O)[O-])I +COc1cc(cnc1)I +c1cc(ncc1I)C[NH3+] +c1cc(cc(c1)I)C#N +c1c(cncc1I)C[NH3+] +CC(C[N+](C)(C)CI)O +c1ccc(c(c1)C[NH3+])I +CNc1cc(ccn1)I +C1=C(C(=O)NC(=N1)N)I +c1c(c(nc(n1)N)[O-])I +CN1C=C(C=C1C=O)I +c1cc(c(nc1)I)C[NH3+] +c1cc(cc(c1)I)C=O +CC1=C(OC(=N1)I)C=O +C1=C(C(=O)NC(=O)N1)I +CNc1cc(cnc1)I +CNc1ccccc1I +c1cc(cc(c1)I)C[NH3+] +CC1=CC(=O)C(=CN1)I +C1=CC(=O)C(=CC1=O)I +c1cncc(c1C#N)I +c1c(cncc1I)C=O +c1cc(c([nH+]c1)I)CN +C(=O)C1=C(SC(=N1)Cl)I +c1cncc(c1I)C[NH3+] +c1cnc(cc1I)C[NH3+] +c1c[nH+]c(c(c1N)O)I +c1cnc(c(c1N)[O-])I +CCc1ccnc(c1)I +C1=C(SC(=C1)I)S(=O)[O-] +c1c(cnc(c1O)I)Br +C1=C(C(=C(S1)I)Br)C=O +c1cnc(cc1I)C#N +CN1C=C(C(=N1)C=O)I +c1cc(c(cc1N)I)Br +c1cnc(cc1C[NH3+])I +c1cncc(c1C=O)I +COc1cccnc1I +C1=NC(=C(C(=O)N1)I)N +C1=C(SC(=C1)I)CCN +C1=C(SC(=C1)I)CC[NH3+] +C1=C(C(=NC(=O)N1)O)I +C1=C(C(=O)C(=CN1)I)N +COc1c(cccn1)I +CC1=C(SC(=N1)I)C=O +c1cc(c(nc1)C[NH3+])I +Cc1c(cnc(n1)N)I +CCc1c(cccn1)I +CSc1ccc(nc1)I +c1cc(nc(c1I)N)F +c1cc(c(nc1)I)C=O +c1c(cnc(c1I)N)F +C1CC1C2=NNC=C2I +C1CC1C2=C(C=NN2)I +CNc1ccc(nc1)I +CSc1c(cccn1)I +CN1C(=CC(=N1)C=O)I +C1=C(C(=O)NC=C1F)I +C1=C(SC(=C1N)C=O)I +CCc1ccc(nc1)I +CNc1c(cccn1)I +c1cc(c(c(c1)F)I)O +C1=C(NC(=O)NC1=O)I +c1cncc(c1I)C=O +c1cc(nc(c1)I)C#N +COc1cccc(c1)I +CNc1cccnc1I +c1cc(c(nc1)C#N)I +CC1=C(C(=O)NN1C)I +CCc1ccncc1I +CSc1cc(ccn1)I +Cc1c(cnc(n1)C)I +c1ccc(c(c1)C=O)I +CSc1cccc(n1)I +C1=C(OC(=C1I)C=O)Br +CC1=C(C(=NN1C)N)I +C1=NC(=C(N1)I)CC[NH3+] +C1=NC(=C(N1)I)CCN +C1=NC(=C(N1)CC[NH3+])I +CSc1cccnc1I +c1cc(c(c(c1)I)O)N +CNc1cccc(c1)I +COc1ccnc(c1)I +C1=C(C(=NN1)C(=O)N)I +C1=NNC(=C1I)C(=O)N +COc1cc(ccn1)I +c1cc(c(nc1)I)C#N +CSc1cnccc1I +c1cc(c(c(c1)Cl)I)N +Cc1c(cccc1I)N +CC1=C(C(=O)NC=N1)I +c1c(cncc1I)C#N +c1cc(c(cc1F)I)N +c1cc(c(nc1)C=O)I +CNc1cc[nH+]c(c1)I +CNc1ccnc(c1)I +c1cncc(c1CN)I +CNc1cccc(n1)I +CNc1cccc([nH+]1)I +c1cnc(cc1C#N)I +CNc1cnccc1I +C1=NC(=O)NC(=C1I)N +C1=C(C(=NC(=O)N1)N)I +CCc1cc(ccn1)I +COc1ccccc1I +c1cncc(c1I)CN +c1ccc(c(c1)C#N)I +CC(=O)C1=NC(=CN1)I +CC(=O)C1=[NH+]C(=CN1)I +CSc1ccncc1I +C1=NNC(=O)C(=C1[O-])I +C1=NNC(=C(C1=O)I)O +c1cncc(c1I)C#N +c1cnc(c(n1)C=O)I +CC1=CSC(=C1I)C=O +c1cc(ncc1C[NH3+])I +CCc1cnccc1I +CN1C(=C(C=N1)I)C=O +c1cc(ncc1I)C#N +Cc1c(ccc(n1)N)I +CC1=CC(=CNC1=O)I +c1cc(c(cc1O)N)I +c1c(cc(cc1F)I)N +c1ccc(c(c1)CO)I +c1cnc(c(c1N)O)I +C1=NC(=C(N1)[N+](=O)[O-])I +C1=C(NN=C1C=O)CI +C1=C(NN=C1CI)C=O +c1c(c(ncn1)C=O)I +c1cnc(cc1I)C(=O)[O-] +CCc1cccc(c1I)C +c1cc(c(c(c1)O)I)C=O +CC(C)c1ccnc(c1)I +c1cc(c(cc1F)I)C=O +CC1=CC(=CN(C1=O)C)I +c1ccc2c(c1)NC(=N2)I +CN1C(=C(C(=N1)N)I)C=O +c1cc(c(c(c1N)I)F)F +CNCc1ccccc1I +C[NH2+]Cc1ccccc1I +Cc1cc(c(c(c1)I)N)C +CC1=C(C(=NN1C)C=O)I +CN(C)c1ccccc1I +c1cc(c(c(c1)I)C=O)O +c1cnc2c(c1I)C=NN2 +c1cnc2=NNC=c2c1I +c1cc(c(c(c1)I)C=O)F +Cc1cccc(c1I)C=O +c1c(cnc(c1N)I)C=O +CN1C(=O)C(=CN=C1N)I +CC(C)c1ccncc1I +CN(C)c1ccncc1I +CN(C)c1cc[nH+]cc1I +CN(C)c1cc(ccn1)I +c1cc(c(c(c1)I)C=O)Cl +CC(C)c1cc(cnc1)I +C1CN2C(=CN=C2I)CN1 +C1CN2C(=C[NH+]=C2I)C[NH2+]1 +c1cc(c(c(c1)F)I)C=O +CC#CC[NH+](C)CCCI +C1(=C(NC(=O)NC1=O)I)Cl +c1cc2c(nc1)C(=NN2)I +c1cc2=NNC(=c2nc1)I +CC1=C(C(=C(O1)C)I)C=O +CC1=C(NC(=C1C)I)C=O +CN(C)c1cnccc1I +CC(C)c1cnccc1I +c1cnc(c(c1I)C=O)Cl +Cc1c(c(ccc1N)I)C +CN(C)c1cccnc1I +CCN1C(=C(C=N1)I)C=O +c1cnc(c(c1I)C=O)F +COC1=NC(=O)NC=C1I +COC1=C(C=NC(=O)N1)I +CN(C)c1c(cccn1)I +c1cc(c(nc1)CC=O)I +COc1c(c(ccn1)I)N +c1cc(c(nc1)I)C(=O)N +CCNc1c(cccn1)I +COc1ccnc(c1I)N +CN1C=C(C(=O)NC1=O)I +c1cc(c(nc1)I)C(=O)[O-] +c1cc2c(cc1I)C=NN2 +c1cc2=NNC=c2cc1I +c1cncc(c1I)C(=O)[O-] +c1c2c(nc(n1)I)N=CN2 +c1c2c(nc(n1)I)NC=N2 +c1cc2=NNN=c2c(c1)I +c1cc2c(c(c1)I)NN=N2 +c1ccc2c(c1)C=C(N2)I +c1c2c(ncn1)N=C(N2)I +c1c2c(ncn1)NC(=N2)I +c1cncc(c1C(=O)N)I +c1cc(cc(c1)I)C(=O)N +c1ccc(c(c1)CC=O)I +CC1=C(C(=O)NC(=O)N1)I +CC(C)c1cccnc1I +CN(C)c1cccc(n1)I +CC1=C(NC(=C1C=O)C)I +c1cnc(cc1C(=O)N)I +c1cc2c(cc1I)OCO2 +CN(C)c1cccc(c1)I +c1cnc(cc1C(=O)[O-])I +c1cncc(c1C(=O)[O-])I +CN(C)c1ccc(nc1)I +CC1=C(NC(=O)NC1=O)I +c1cc2c(c(c1)I)CNC2 +c1cc2c(c(c1)I)C[NH2+]C2 +c1cncc(c1I)C(=O)N +c1cc(cc(c1)I)C(=O)[O-] +C1=NC(=C2C(=NC=N2)N1)I +c1nc2c(c(n1)I)N=CN2 +c1nc2c(c(n1)I)NC=N2 +c1cc2=CNN=c2cc1I +c1cc2c(cc1I)NN=C2 +c1cc(c(c(c1)N)I)C=O +c1ccc(c(c1)C=NN)I +c1ccc(c(c1)CN=N)I +c1cc(c(nc1)C(=O)N)I +c1cc(ccc1S(=O)[O-])I +CN(C)c1cc(cnc1)I +c1cc(c(cc1F)C=O)I +Cc1ccc(c(c1N)C)I +Cc1cccc(c1C=O)I +c1ccc2c(c1)C(=NN2)I +c1ccc2=NNC(=c2c1)I +c1ccc(c(c1)C(=O)[O-])I +c1cnc(cc1I)C(=O)N +C1(=C(NN=C1N)C(=O)[O-])I +C1(=C(NN=C1C(=O)[O-])N)I +c1ccc2c(c1)C(=CN2)I +c1cc(c(nc1)C(=O)[O-])I +c1cc(cc(c1)I)C=NN +c1cc(cc(c1)I)CN=N +CN1C(=CC(=O)NC1=O)I +c1ccc(c(c1)C(=O)N)I +Cc1cc(c(c(c1)I)N)F +c1c(cncc1I)C(=O)[O-] +CC1=C(C(=C(S1)C)I)C=O +CN1C(=O)C(=CNC1=O)I +CC(=O)c1ccc(cc1)I +Cc1c(cccc1I)C=O +c1ccc(c(c1)S(=O)[O-])I +Cc1cc(c(cc1N)I)C +COc1c(cc[nH+]c1I)N +COc1c(ccnc1I)N +C1=Nc2c(nc(nc2Cl)I)N1 +C1=Nc2c(c(nc(n2)I)Cl)N1 +c1cc(c(nc1)I)C(F)(F)F +CNc1cc(cc(c1)I)C=O +c1cc(c(c(c1F)C=O)F)I +c1ccc(c(c1)C(CO)[NH3+])I +Cc1c(cc(cc1I)C=O)F +c1cnc(cc1I)S(=O)(=O)N +c1nc(c2c(n1)NN=C2I)N +c1nc(c2=C(NN=c2n1)I)N +c1cncc(c1I)C(F)(F)F +c1cc2c(cncn2)c(c1)I +c1ccc(c(c1)S(=O)(=O)N)I +c1c(c(c(c(n1)N)I)C#N)F +CCN1C(=C(C(=N1)C)I)C=O +CC1=C(c2ccccc2N1)I +c1c(cc(c(c1Cl)I)Cl)C=O +c1c(cnc2c1C=C(N2)I)F +c1cc(c(nc1)S(=O)(=O)N)I +C(=O)C12C3C4C1C5C2C3C45I +c1cc(c(c(c1)C=O)I)C=O +C(=O)c1c(nc(c(n1)I)N)N +CN1C(=C(C(=O)NC1=O)Cl)I +CC(C)[NH2+]CC1=CC=C(O1)I +c1cncc(c1I)S(=O)(=O)N +Cc1c(ccc(c1C=O)I)F +c1cc(ccc1C=O)C#CI +CC1=C(SC(=C1C#N)I)C=O +c1cc2c(c(c1)I)C(=O)NC2 +c1c(cc(c(c1C=O)N)I)Cl +c1cc(c(c(c1C=O)O)I)N +C(=O)C1=C(C(=O)NC(=O)N1)I +C1=C(N2C=C(SC2=N1)C=O)I +C1=C(N2C=C(SC2=[NH+]1)C=O)I +c1cc(cc(c1)I)S(=O)(=O)N +c1c(c(c2c(n1)NC=C2)I)F +c1cc(nc(c1)I)S(=O)(=O)N +c1cc2c(cc1F)C(=CN2)I +c1cc(c(c(c1F)C=O)I)F +CN1C=Nc2c1nc(nc2)I +c1cnc(c2c1NN=C2I)Cl +c1cnc(c2=C(NN=c21)I)Cl +c1c(cc(c(c1C=O)N)I)F +CC1=C(N(C(=C1I)C)C)C=O +CC1=C(N(C(=O)NC1=O)C)I +c1c(c(c(c(c1F)F)I)F)F +Cc1ccc(c(c1)I)S(=O)[O-] +c1cc(c(nc1)C(F)(F)F)I +COc1cc(cc(c1)I)CO +COc1ccc(c(c1)I)C=O +CNc1ccc(cc1I)C=O +c1cncc(c1C(F)(F)F)I +c1cc(c(cc1Cl)I)S(=O)[O-] +c1cnc(c2=C(NN=c21)I)N +c1cnc(c2c1NN=C2I)N +c1cc(c(c2c1C=NN2)I)O +c1cc(c(c2=NNC=c21)I)O +C1C(C=CN=C1I)S(=O)(=O)N +C1C=NC(=CC1S(=O)(=O)N)I +c1cnc(cc1S(=O)(=O)N)I +c1cc(c(cc1Cl)S(=O)[O-])I +c1cc(c(nc1)I)S(=O)(=O)N +CC(=O)c1cc(nc(c1)I)N +Cc1ccc(cc1I)C(=O)[O-] +COc1cc(cc(c1)I)C#N +c1c(cncc1I)C(F)(F)F +c1c(cc(c(c1O)I)O)C=O +c1cc2c(cc1I)NC(=O)N2 +CNc1ccc(c(c1I)F)F +c1cnc(cc1C(F)(F)F)I +Cc1cnc2c(c1I)C=CN2 +c1cc(c(c(c1)I)C=O)C=O +c1nc(c2c(n1)NC=C2I)N +c1cc2c(c(c1)I)C(=NO2)N +CC(=O)C1=C(C=C(N1)C=O)I +C1CC(=C(N=C1)I)S(=O)(=O)N +C1C=CN=C(C1S(=O)(=O)N)I +c1cc(ccc1C(CO)[NH3+])I +c1cc(ncc1S(=O)(=O)N)I +C1=C(C(=O)NC(=O)N1)CCI +c1c2c(cc(c1F)I)NCC2 +Cc1cc(cc(c1N)I)C=O +c1cc(c2c(c1)N=C(S2)I)C=O +COc1ccc(cc1I)S(=O)[O-] +CCOc1cc(cc(c1)I)C#N +c1cc(nc2c1NC(=O)CO2)I +C1CCC2(CC=CCC2(C1)[NH3+])I +C1CCC2(CC=CCC2(C1)N)I +c1ccc2c(c1)C(=C(N2)I)C=O +COc1cc(cc(c1)I)C(=O)N +CC(C)C1=NN(C(=C1I)C=O)C +CC(=O)c1cc(cc(n1)I)C=O +CN(C)c1ccc(cc1I)C=O +c1cc2c(cc(cc2Cl)I)nc1 +COc1cc(cc(c1O)I)C#N +COc1cc(cc(c1[O-])I)C#N +CCC1=CNc2c1cc(cc2)I +CN1C(=C(C(=N1)C2CC2)I)C=O +CN1C(=C(C(=N1)C=O)I)C2CC2 +CCc1ccc(c(c1N)CC)I +C(=O)C1=C(NN=C1C(F)(F)F)I +C(=O)C1=C(NN=C1I)C(F)(F)F +COc1ccc(c(c1)CC=O)I +c1(c(c(c(c(c1F)F)I)F)F)[O-] +c1(c(c(c(c(c1F)F)I)F)F)O +c1cc(c(cc1C=O)I)C2CC2 +CCNc1ccc(c(c1I)F)F +c1cc(c(cc1C(=O)[O-])I)CO +c1cc(c(c2c1NN=C2)C=O)I +c1cc(c(c2=CNN=c21)C=O)I +C1=CN2C(=C(N=C2N=C1)C=O)I +COc1c2c(nc(n1)I)NC=N2 +COc1c2c(nc(n1)I)N=CN2 +COc1cc(cc(c1N)I)C=O +c1c(c(c(c(c1F)F)I)F)C=O +COc1ccc2c(c1)C=C(N2)I +Cc1cc(c(cc1C)I)S(=O)[O-] diff --git a/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/enumerated.smi b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/enumerated.smi new file mode 100644 index 00000000..41a0c7c0 --- /dev/null +++ b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/enumerated.smi @@ -0,0 +1,526 @@ +[H]C([H])([H])C([H])([H])I +[H]C(I)=C([H])C([H])([H])[H] +[H]C(=O)C([H])([H])I +[H]C([H])([H])C#CI +[H]C#CC([H])([H])I +[H]C(=O)C#CI +[H]C([H])([H])OC([H])([H])C([H])([H])I +[H]C([H])(C#CO[H])I +[H]c1nc(I)oc1[H] +[H]c1c(I)nnn1[H] +[H]C1=NN(N=C1I)[H] +[H]C1=C(ON=C1I)[H] +[H]C1=C(N(C(=N1)I)[H])[H] +[H]C1=C(C(=NN1[H])[H])I +[H]n1nnnc1I +C1(=NN=N[N-]1)I +[H]C1=C(C(=NO1)[H])I +[H]C1=C(N=C(O1)[H])I +[H]c1nc(I)nn1[H] +[H]C1=NN(C(=N1)I)[H] +[H]n1nnc(I)n1 +[H]C1=C(N(N=C1I)[H])[H] +[H]C1=C(N(N=C1[H])[H])I +[H]C(=O)C([H])(N([H])[H])C([H])([H])I +[H]C(=O)C([H])(C([H])([H])I)[N+]([H])([H])[H] +[H]c1nnc(I)n1[H] +[H]C1=C(OC(=C1[H])I)[H] +[H]C1=C(N=C(N1[H])[H])I +[H]c1nc([H])n([H])c1I +[H]c1nc([H])c(I)s1 +[H]C([H])([H])C([H])([H])OC([H])([H])C([H])([H])I +[H]c1nnn([H])c1I +[H]C(C(F)(F)F)(F)I +[H]c1c(I)c([H])n([H])c1C([H])([H])[H] +[H]c1c(c(nc(c1[H])I)[H])[H] +[H]c1onc(C([H])([H])[H])c1I +[H]C1=NN(C(=C1I)N([H])[H])[H] +[H]c1c(I)c(N([H])[H])nn1[H] +[H]c1c(nc(nc1I)[H])[H] +[H]c1c(nc(c(n1)[H])I)[H] +[H]c1c(nc(c(c1I)[H])[H])[H] +[H]c1c([H])c([H])c(I)c([H])c1[H] +[H]C1=NN(N=C1C([H])([H])I)[H] +[H]c1c(C([H])([H])I)nnn1[H] +[H]C1=C(N(N=C1I)[H])C([H])([H])[H] +[H]C1=C(N(N=C1C([H])([H])[H])[H])I +[H]c1c(c(nc(n1)[H])[H])I +[H]C1=C(N=C(C(C1([H])[H])([H])[H])[H])I +[H]C1=C([H])C([H])([H])C([H])([H])C(I)=N1 +[H]C(C(F)(F)I)(F)F +[H]C1=NOC(=C1I)C([H])([H])[H] +[H]C1=C(SC(=N1)N([H])[H])I +[H]C1=C(C(=C(S1)[H])I)N([H])[H] +[H]C1=NN(C(=C1I)C([H])([H])[H])[H] +[H]c1c(I)c(C([H])([H])[H])nn1[H] +[H]c1c(I)oc(C([H])([H])[H])c1[H] +[H]c1nc([H])c(I)c([H])c1[H] +[H]c1c([H])c([H])[n+]([H])c([H])c1I +[H]C1=C(C(C(C(=C1[H])[H])([H])I)([H])[H])[H] +[H]C1=C(N(C(=N1)[H])C([H])([H])[H])I +[H]n1nnc(I)c1C([H])([H])[H] +[H]C([H])([H])C1=NN(N=C1I)[H] +[H]N1C([H])([H])C([H])([H])C(I)(C([H])([H])[H])C([H])([H])C1([H])[H] +[H]C1(C([N+](C(C(C1(C([H])([H])[H])I)([H])[H])([H])[H])([H])[H])([H])[H])[H] +[H]c1nc(C([H])([H])[H])c(I)c([H])c1[H] +[H]c1nc(I)c([H])c(Br)c1[H] +[H]c1c(c(c(c(c1C([H])([H])[H])[H])[H])I)[H] +[H]c1nc([H])c(C([H])([H])[H])c(I)c1[H] +[H]C(=O)c1nc([H])sc1I +[H]c1c(I)nc(N([H])[H])c([H])c1[H] +[H]C(=O)C1=NN(N=C1I)[H] +[H]C(=O)c1nnn([H])c1I +[H]c1nc([H])c(I)c([H])c1Cl +[H]c1nc(I)c(Cl)c([H])c1[H] +[H]c1c([n+](c(c(c1N([H])[H])I)[H])[H])[H] +[H]c1nc([H])c(I)c(N([H])[H])c1[H] +[H]c1c(c(nc(c1I)[H])C([H])([H])[H])[H] +[H]C([H])([H])C1=C(C(=NN1[H])N([H])[H])I +[H]N([H])c1c(I)c(C([H])([H])[H])nn1[H] +[H]c1c([H])c([H])c(C([H])([H])[H])c(I)c1[H] +[H]c1c(c(nc(c1I)[H])F)[H] +[H]c1c(c(c(nc1[H])I)N([H])[H])[H] +[H]c1nc(Br)c([H])c(I)c1[H] +[H]c1nn([H])c(C#N)c1I +[H]C1=C(C(=NN1[H])C#N)I +[H]c1nc(I)c([H])c(C([H])([H])[H])c1[H] +[H]c1c([H])c([H])c(I)c(F)c1[H] +[H]c1c([n+](c(c(c1N([H])[H])[H])I)[H])[H] +[H]c1nc(I)c([H])c(N([H])[H])c1[H] +[H]C1=C(SC(=C1I)C([H])([H])[H])C([H])([H])[H] +[H]c1nc([H])c(I)c(Cl)c1[H] +[H]c1nc([H])c(Cl)c(I)c1[H] +[H]OC([H])([H])C1([H])OC([H])([H])C([H])([H])C1([H])I +[H]C([H])([H])C([H])([H])C([H])([H])[N+](C([H])([H])[H])(C([H])([H])[H])C([H])([H])I +[H]c1nc([H])c(I)c([H])c1Br +[H]C(=O)c1nc(I)n([H])n1 +[H]C(=O)C1=NC(=NN1[H])I +[H]c1nc([H])c(C([H])([H])[H])c([H])c1I +[H]c1nc(I)c(F)c([H])c1[H] +[H]c1c(c(c(nc1[H])I)Br)[H] +[H]c1nc(F)c(I)c([H])c1[H] +[H]c1c(nc(c(c1C([H])([H])[H])I)[H])[H] +[H]c1nc(I)c([H])c(Cl)c1[H] +[H]Oc1c(I)nc([H])c([H])c1[H] +[H]Oc1c([H])c([H])c([H])c(I)c1[H] +[H]c1nc(N([H])[H])nc([H])c1I +[H]C(=O)c1c([H])sc(I)c1[H] +[H]c1c(nc(c(c1F)[H])I)[H] +[H]c1c(c(c(c(c1[H])N([H])[H])I)[H])[H] +[H]c1c(nc(c(c1I)[H])F)[H] +[H]c1c(c(nc(c1I)[H])N([H])[H])[H] +[H]c1c(c(c(nc1[H])Br)I)[H] +[H]C([H])([H])C1=C(SC(=N1)N([H])[H])I +[H]c1c(nc(c(c1I)Br)[H])[H] +[H]c1c(nc(c(c1Br)I)[H])[H] +[H]c1nc(N([H])[H])nc(I)c1[H] +[H]c1c(c(nc(c1[H])I)F)[H] +[H]c1c([H])c(N([H])[H])c([H])c([H])c1I +[H]c1nc(N([H])[H])c([H])c(I)c1[H] +[H]C1=C(C(=NN(C1=O)[H])[H])I +[H]c1c(c(nc(c1I)[H])[H])N([H])[H] +[H]c1c(c(nc(c1I)[H])[H])F +[H]C(=O)c1sc([H])c([H])c1I +[H]OC1(I)C([H])=C([H])C([H])=C([H])C1([H])[H] +[H]C1=C(C(=NN1[H])I)C(=O)[H] +[H]C1=NN(C(=C1C(=O)[H])I)[H] +[H]C1=C(C(=NN1[H])C(=O)[H])I +[H]C1=NN(C(=C1I)C(=O)[H])[H] +[H]c1c(c(c(c(c1O[H])[H])[H])I)[H] +[H]c1nc(N([H])[H])c(I)c([H])c1[H] +[H]n1nc(C([H])([H])[H])c(I)c1C([H])([H])[H] +[H]c1noc(C#N)c1I +[H]c1c(nc(c(n1)I)[H])Cl +[H]c1c(c(nc(c1Br)[H])I)[H] +[H]c1c(nc(c(c1F)I)[H])[H] +[H]c1c(c(c(nc1[H])I)C([H])([H])[H])[H] +[H]C1=C([N+](=C(N1[H])C(=O)[H])[H])I +[H]C(=O)c1nc(I)c([H])n1[H] +[H]c1c(c(nc(c1I)[H])Cl)[H] +[H]c1c(c(c(c(c1[H])O[H])I)[H])[H] +[H]C1(C(=O)N(C(C1([H])C([H])([H])I)([H])[H])[H])[H] +[H]c1c(c(c(c(c1[H])I)[H])N([H])[H])[H] +[H]c1c(c(c(c(c1[H])I)[H])F)[H] +[H]c1c(I)c([H])[n+]([H])c([H])c1N([H])[H] +[H]C([H])([H])C1=C(N(C(=N1)C([H])([H])[H])[H])I +[H]n1c(C([H])([H])[H])nc(I)c1C([H])([H])[H] +[H]c1nc(=O)n([H])c([H])c1I +[H]c1nc(Cl)c([H])c(I)c1[H] +[H]C(=O)c1oc(I)c([H])c1[H] +[H]c1c(nc(c(c1I)N([H])[H])[H])[H] +[H]c1c(c(nc(c1[H])I)C([H])([H])[H])[H] +[H]C(=O)c1nc(I)oc1[H] +[H]c1c(c(nc(c1I)[H])N([H])C([H])([H])[H])[H] +[H]c1c(c(nc(c1I)[H])[H])SC([H])([H])[H] +[H]c1nc([H])c(OC([H])([H])[H])c(I)c1[H] +[H]c1nc(I)c([H])c(SC([H])([H])[H])c1[H] +[H]C(=O)c1c([H])c([H])c(I)c([H])c1[H] +[H]c1c(nc(c(c1C([H])([H])[N+]([H])([H])[H])I)[H])[H] +[H]c1c(c(c(nc1[H])I)C([H])([H])C([H])([H])[H])[H] +[H]N1C(=O)C(=NN(C1=O)[H])I +[H]c1c(I)nc(C([H])([H])[N+]([H])([H])[H])c([H])c1[H] +[H]c1c(c(c(c(c1C([H])([H])[H])I)[H])N([H])[H])[H] +[H]C1=NN(C(=C1I)C(=O)[O-])[H] +[H]C1=C(C(=NN1[H])C(=O)[O-])I +[H]c1nc([H])c(OC([H])([H])[H])c([H])c1I +[H]c1c(c(nc(c1I)[H])C([H])([H])[N+]([H])([H])[H])[H] +[H]c1c(c(c(c(c1[H])I)[H])C#N)[H] +[H]c1c(c(nc(c1I)[H])[H])C([H])([H])[N+]([H])([H])[H] +[H]OC([H])(C([H])([H])[H])C([H])([H])[N+](C([H])([H])[H])(C([H])([H])[H])C([H])([H])I +[H]c1c([H])c([H])c(C([H])([H])[N+]([H])([H])[H])c(I)c1[H] +[H]c1c(nc(c(c1I)[H])N([H])C([H])([H])[H])[H] +[H]C1=C(C(=O)N(C(=N1)N([H])[H])[H])I +[H]c1nc(N([H])[H])nc([O-])c1I +[H]C(=O)c1c([H])c(I)c([H])n1C([H])([H])[H] +[H]c1nc(I)c(C([H])([H])[N+]([H])([H])[H])c([H])c1[H] +[H]c1c(c(c(c(c1[H])I)[H])C(=O)[H])[H] +[H]C(=O)c1oc(I)nc1C([H])([H])[H] +[H]c1c(I)c(=O)n([H])c(=O)n1[H] +[H]c1nc([H])c(N([H])C([H])([H])[H])c([H])c1I +[H]c1c(c(c(c(c1[H])N([H])C([H])([H])[H])I)[H])[H] +[H]c1c(c(c(c(c1[H])I)[H])C([H])([H])[N+]([H])([H])[H])[H] +[H]c1c(C([H])([H])[H])n([H])c([H])c(I)c1=O +[H]C1=C(C(=O)C(=C(C1=O)[H])I)[H] +[H]c1c(nc(c(c1C#N)I)[H])[H] +[H]C(=O)c1c([H])nc([H])c(I)c1[H] +[H]c1c([H])c([H])[n+]([H])c(I)c1C([H])([H])N([H])[H] +[H]C(=O)c1nc(Cl)sc1I +[H]c1c(nc(c(c1I)C([H])([H])[N+]([H])([H])[H])[H])[H] +[H]c1c(nc(c(c1I)[H])C([H])([H])[N+]([H])([H])[H])[H] +[H]c1c([n+](c(c(c1N([H])[H])O[H])I)[H])[H] +[H]c1nc(I)c([O-])c(N([H])[H])c1[H] +[H]c1nc(I)c([H])c(C([H])([H])C([H])([H])[H])c1[H] +[H]c1c(I)sc(S(=O)[O-])c1[H] +[H]c1c(c(nc(c1Br)[H])I)O[H] +[H]C1=C(C(=C(S1)I)Br)C(=O)[H] +[H]c1c(nc(c(c1I)[H])C#N)[H] +[H]C1=C(C(=NN1C([H])([H])[H])C(=O)[H])I +[H]c1c([H])c(N([H])[H])c([H])c(I)c1Br +[H]c1c(nc(c(c1C([H])([H])[N+]([H])([H])[H])[H])I)[H] +[H]c1c(nc(c(c1C(=O)[H])I)[H])[H] +[H]c1nc(I)c(OC([H])([H])[H])c([H])c1[H] +[H]C1=NC(=C(C(=O)N1[H])I)N([H])[H] +[H]c1c(I)sc(C([H])([H])C([H])([H])N([H])[H])c1[H] +[H]C1=C(SC(=C1[H])I)C([H])([H])C([H])([H])[N+]([H])([H])[H] +[H]Oc1nc(=O)n([H])c([H])c1I +[H]C1=C(C(=O)C(=C(N1[H])[H])I)N([H])[H] +[H]c1c(c(c(nc1[H])OC([H])([H])[H])I)[H] +[H]C(=O)c1sc(I)nc1C([H])([H])[H] +[H]c1c(c(c(nc1[H])C([H])([H])[N+]([H])([H])[H])I)[H] +[H]c1c(c(nc(n1)N([H])[H])C([H])([H])[H])I +[H]c1nc(C([H])([H])C([H])([H])[H])c(I)c([H])c1[H] +[H]c1nc(I)c([H])c([H])c1SC([H])([H])[H] +[H]c1c(c(nc(c1I)N([H])[H])F)[H] +[H]C(=O)c1c(I)nc([H])c([H])c1[H] +[H]c1c(c(nc(c1I)N([H])[H])[H])F +[H]C1=C(C(=NN1[H])C2(C(C2([H])[H])([H])[H])[H])I +[H]C1=NN(C(=C1I)C2(C(C2([H])[H])([H])[H])[H])[H] +[H]c1c(c(nc(c1N([H])C([H])([H])[H])[H])I)[H] +[H]c1c(c(c(nc1[H])SC([H])([H])[H])I)[H] +[H]C1=C(N(N=C1C(=O)[H])C([H])([H])[H])I +[H]C1=C(C(=O)N(C(=C1F)[H])[H])I +[H]C1=C(SC(=C1N([H])[H])C(=O)[H])I +[H]c1c(c(nc(c1C([H])([H])C([H])([H])[H])[H])I)[H] +[H]c1c(c(c(nc1[H])N([H])C([H])([H])[H])I)[H] +[H]Oc1c([H])c([H])c([H])c(F)c1I +[H]C1=C(N(C(=O)N(C1=O)[H])[H])I +[H]C(=O)c1c([H])nc([H])c([H])c1I +[H]c1c(I)nc(C#N)c([H])c1[H] +[H]c1c(c(c(c(c1[H])I)[H])OC([H])([H])[H])[H] +[H]c1c(c(c(nc1[H])I)N([H])C([H])([H])[H])[H] +[H]c1nc(C#N)c(I)c([H])c1[H] +[H]C([H])([H])C1=C(C(=O)N(N1C([H])([H])[H])[H])I +[H]c1nc([H])c(I)c(C([H])([H])C([H])([H])[H])c1[H] +[H]c1nc(SC([H])([H])[H])c([H])c(I)c1[H] +[H]c1nc(C([H])([H])[H])nc(C([H])([H])[H])c1I +[H]c1c(c(c(c(c1[H])C(=O)[H])I)[H])[H] +[H]c1c(c(nc(c1[H])I)SC([H])([H])[H])[H] +[H]C1=C(OC(=C1I)C(=O)[H])Br +[H]C([H])([H])C1=C(C(=NN1C([H])([H])[H])N([H])[H])I +[H]C1=NC(=C(N1[H])I)C([H])([H])C([H])([H])[N+]([H])([H])[H] +[H]c1nc(C([H])([H])C([H])([H])N([H])[H])c(I)n1[H] +[H]C1=NC(=C(N1[H])C([H])([H])C([H])([H])[N+]([H])([H])[H])I +[H]c1nc(I)c(SC([H])([H])[H])c([H])c1[H] +[H]Oc1c(I)c([H])c([H])c([H])c1N([H])[H] +[H]c1c(c(c(c(c1[H])I)[H])N([H])C([H])([H])[H])[H] +[H]c1c(nc(c(c1OC([H])([H])[H])[H])I)[H] +[H]c1c(I)c(C(=O)N([H])[H])nn1[H] +[H]C1=NN(C(=C1I)C(=O)N([H])[H])[H] +[H]c1c(nc(c(c1I)[H])OC([H])([H])[H])[H] +[H]c1nc(I)c(C#N)c([H])c1[H] +[H]c1nc([H])c(SC([H])([H])[H])c(I)c1[H] +[H]c1c(c(c(c(c1[H])Cl)I)N([H])[H])[H] +[H]c1c(c(c(c(c1[H])I)C([H])([H])[H])N([H])[H])[H] +[H]C1=NC(=C(C(=O)N1[H])I)C([H])([H])[H] +[H]c1c(c(nc(c1I)[H])[H])C#N +[H]c1c(c(c(c(c1N([H])[H])I)[H])F)[H] +[H]c1c(c(c(nc1[H])C(=O)[H])I)[H] +[H]c1c([n+](c(c(c1N([H])C([H])([H])[H])[H])I)[H])[H] +[H]c1nc(I)c([H])c(N([H])C([H])([H])[H])c1[H] +[H]c1nc([H])c(I)c(C([H])([H])N([H])[H])c1[H] +[H]c1c(c(nc(c1[H])I)N([H])C([H])([H])[H])[H] +[H]c1c([H])c(I)[n+]([H])c(N([H])C([H])([H])[H])c1[H] +[H]c1c(nc(c(c1C#N)[H])I)[H] +[H]c1nc([H])c(N([H])C([H])([H])[H])c(I)c1[H] +[H]C1=NC(=O)N(C(=C1I)N([H])[H])[H] +[H]C1=C(C(=NC(=O)N1[H])N([H])[H])I +[H]c1c(nc(c(c1I)[H])C([H])([H])C([H])([H])[H])[H] +[H]c1c(c(c(c(c1[H])OC([H])([H])[H])I)[H])[H] +[H]c1nc([H])c(C([H])([H])N([H])[H])c(I)c1[H] +[H]c1c(c(c(c(c1[H])C#N)I)[H])[H] +[H]c1c(I)nc(C(=O)C([H])([H])[H])n1[H] +[H]C1=C([N+](=C(N1[H])C(=O)C([H])([H])[H])[H])I +[H]c1c(nc(c(c1SC([H])([H])[H])I)[H])[H] +[H]C1=NN(C(=O)C(=C1[O-])I)[H] +[H]Oc1c(I)c(=O)c([H])nn1[H] +[H]c1nc([H])c(C#N)c(I)c1[H] +[H]c1c(nc(c(n1)C(=O)[H])I)[H] +[H]C(=O)c1sc([H])c(C([H])([H])[H])c1I +[H]c1nc(I)c([H])c([H])c1C([H])([H])[N+]([H])([H])[H] +[H]c1c(nc(c(c1I)C([H])([H])C([H])([H])[H])[H])[H] +[H]C1=NN(C(=C1I)C(=O)[H])C([H])([H])[H] +[H]c1nc(C#N)c([H])c([H])c1I +[H]c1c(N([H])[H])nc(C([H])([H])[H])c(I)c1[H] +[H]C1=C(C(=O)N(C(=C1I)[H])[H])C([H])([H])[H] +[H]c1c(c(c(c(c1O[H])[H])N([H])[H])I)[H] +[H]c1c(F)c([H])c(N([H])[H])c([H])c1I +[H]c1c(c(c(c(c1[H])C([H])([H])O[H])I)[H])[H] +[H]Oc1c(I)nc([H])c([H])c1N([H])[H] +[H]c1nc(I)c([N+](=O)[O-])n1[H] +[H]C1=C(N(N=C1C(=O)[H])[H])C([H])([H])I +[H]C1=C(N(N=C1C([H])([H])I)[H])C(=O)[H] +[H]C(=O)c1nc([H])nc([H])c1I +[H]c1c(nc(c(c1I)[H])C(=O)[O-])[H] +[H]c1c([H])c(C([H])([H])[H])c(I)c(C([H])([H])C([H])([H])[H])c1[H] +[H]c1c(c(c(c(c1[H])O[H])I)C(=O)[H])[H] +[H]c1nc(I)c([H])c(C([H])(C([H])([H])[H])C([H])([H])[H])c1[H] +[H]c1c(c(c(c(c1C(=O)[H])I)[H])F)[H] +[H]C1=C(C(=O)N(C(=C1I)[H])C([H])([H])[H])C([H])([H])[H] +[H]c1c(c(c2c(c1[H])N=C(N2[H])I)[H])[H] +[H]C(=O)C1=C(C(=NN1C([H])([H])[H])N([H])[H])I +[H]c1c([H])c(N([H])[H])c(I)c(F)c1F +[H]c1c([H])c([H])c(C([H])([H])N([H])C([H])([H])[H])c(I)c1[H] +[H]c1c(c(c(c(c1[H])C([H])([H])[N+]([H])([H])C([H])([H])[H])I)[H])[H] +[H]c1c(I)c(N([H])[H])c(C([H])([H])[H])c([H])c1C([H])([H])[H] +[H]C(=O)c1nn(C([H])([H])[H])c(C([H])([H])[H])c1I +[H]c1c(c(c(c(c1[H])N(C([H])([H])[H])C([H])([H])[H])I)[H])[H] +[H]Oc1c([H])c([H])c([H])c(I)c1C([H])=O +[H]c1nc2c(c([H])nn2[H])c(I)c1[H] +[H]c1c(nc2=NN(C(=c2c1I)[H])[H])[H] +[H]c1c(c(c(c(c1[H])I)C(=O)[H])F)[H] +[H]c1c(c(c(c(c1[H])C([H])([H])[H])I)C(=O)[H])[H] +[H]C(=O)c1c([H])nc(I)c(N([H])[H])c1[H] +[H]c1nc(N([H])[H])n(C([H])([H])[H])c(=O)c1I +[H]c1c(nc(c(c1C([H])(C([H])([H])[H])C([H])([H])[H])I)[H])[H] +[H]c1nc([H])c(I)c(N(C([H])([H])[H])C([H])([H])[H])c1[H] +[H]c1c([n+](c(c(c1N(C([H])([H])[H])C([H])([H])[H])I)[H])[H])[H] +[H]c1nc(N(C([H])([H])[H])C([H])([H])[H])c([H])c(I)c1[H] +[H]C(=O)c1c(Cl)c([H])c([H])c([H])c1I +[H]c1nc([H])c(C([H])(C([H])([H])[H])C([H])([H])[H])c([H])c1I +[H]c1nc(I)n2c1C([H])([H])N([H])C([H])([H])C2([H])[H] +[H]C1=C2C([N+](C(C(N2C(=[N+]1[H])I)([H])[H])([H])[H])([H])[H])([H])[H] +[H]C(=O)c1c([H])c([H])c([H])c(F)c1I +[H]C([H])([H])C#CC([H])([H])[N+]([H])(C([H])([H])[H])C([H])([H])C([H])([H])C([H])([H])I +[H]n1c(I)c(Cl)c(=O)n([H])c1=O +[H]c1c(c2c(nc1[H])C(=NN2[H])I)[H] +[H]c1c(c2=NN(C(=c2nc1[H])I)[H])[H] +[H]C(=O)C1=C(OC(=C1I)C([H])([H])[H])C([H])([H])[H] +[H]C(=O)c1c(C([H])([H])[H])c(C([H])([H])[H])c(I)n1[H] +[H]c1nc([H])c(N(C([H])([H])[H])C([H])([H])[H])c(I)c1[H] +[H]c1nc([H])c(C([H])(C([H])([H])[H])C([H])([H])[H])c(I)c1[H] +[H]c1c(nc(c(c1I)C(=O)[H])Cl)[H] +[H]c1c([H])c(N([H])[H])c(C([H])([H])[H])c(C([H])([H])[H])c1I +[H]c1c(c(c(nc1[H])I)N(C([H])([H])[H])C([H])([H])[H])[H] +[H]C1=NN(C(=C1I)C(=O)[H])C([H])([H])C([H])([H])[H] +[H]c1c(nc(c(c1I)C(=O)[H])F)[H] +[H]c1c(I)c(OC([H])([H])[H])nc(=O)n1[H] +[H]C1=NC(=O)N(C(=C1I)OC([H])([H])[H])[H] +[H]c1nc(N(C([H])([H])[H])C([H])([H])[H])c(I)c([H])c1[H] +[H]C(=O)C([H])([H])c1nc([H])c([H])c([H])c1I +[H]c1c(nc(c(c1I)N([H])[H])OC([H])([H])[H])[H] +[H]c1c(c(c(nc1[H])I)C(=O)N([H])[H])[H] +[H]c1c(c(c(nc1[H])N([H])C([H])([H])C([H])([H])[H])I)[H] +[H]c1nc(N([H])[H])c(I)c(OC([H])([H])[H])c1[H] +[H]C1=C(C(=O)N(C(=O)N1C([H])([H])[H])[H])I +[H]c1nc(I)c(C(=O)[O-])c([H])c1[H] +[H]c1c(I)c([H])c2c([H])nn([H])c2c1[H] +[H]c1c(c(c(c2=C(N(N=c12)[H])[H])[H])I)[H] +[H]c1nc([H])c(C(=O)[O-])c(I)c1[H] +[H]c1c2c(nc(n1)I)N=C(N2[H])[H] +[H]c1c2c(nc(n1)I)N(C(=N2)[H])[H] +[H]c1c(c2=NN(N=c2c(c1[H])I)[H])[H] +[H]c1c([H])c(I)c2c(nnn2[H])c1[H] +[H]c1c([H])c([H])c2c(c1[H])c([H])c(I)n2[H] +[H]c1c2c(nc(n1)[H])N=C(N2[H])I +[H]c1c2c(nc(n1)[H])N(C(=N2)I)[H] +[H]c1nc([H])c(I)c(C(=O)N([H])[H])c1[H] +[H]c1c(c(c(c(c1[H])I)[H])C(=O)N([H])[H])[H] +[H]C(=O)C([H])([H])c1c([H])c([H])c([H])c([H])c1I +[H]C([H])([H])C1=C(C(=O)N(C(=O)N1[H])[H])I +[H]c1c(c(c(nc1[H])I)C([H])(C([H])([H])[H])C([H])([H])[H])[H] +[H]c1c(I)nc(N(C([H])([H])[H])C([H])([H])[H])c([H])c1[H] +[H]C(=O)c1c(C([H])([H])[H])c(I)n([H])c1C([H])([H])[H] +[H]c1c(nc(c(c1C(=O)N([H])[H])[H])I)[H] +[H]c1c([H])c2c(c([H])c1I)OC([H])([H])O2 +[H]c1c(c(c(c(c1[H])I)[H])N(C([H])([H])[H])C([H])([H])[H])[H] +[H]c1c(nc(c(c1C(=O)[O-])[H])I)[H] +[H]c1c(nc(c(c1C(=O)[O-])I)[H])[H] +[H]c1c(c(nc(c1N(C([H])([H])[H])C([H])([H])[H])[H])I)[H] +[H]n1c(I)c(C([H])([H])[H])c(=O)n([H])c1=O +[H]c1c([H])c(I)c2c(c1[H])C([H])([H])N([H])C2([H])[H] +[H]c1c(c2c(c(c1[H])I)C([N+](C2([H])[H])([H])[H])([H])[H])[H] +[H]c1c(nc(c(c1I)C(=O)N([H])[H])[H])[H] +[H]c1c(c(c(c(c1[H])I)[H])C(=O)[O-])[H] +[H]c1nc2c(I)nc([H])n([H])c-2n1 +[H]c1nc2c(c(n1)I)N=C(N2[H])[H] +[H]c1nc2c(c(n1)I)N(C(=N2)[H])[H] +[H]c1c(c(c(c2=NN(C(=c12)[H])[H])[H])I)[H] +[H]c1c(I)c([H])c2c(c([H])nn2[H])c1[H] +[H]c1c(c(c(c(c1[H])N([H])[H])I)C(=O)[H])[H] +[H]C(=NN([H])[H])c1c([H])c([H])c([H])c([H])c1I +[H]c1c(c(c(c(c1[H])C([H])([H])N=N[H])I)[H])[H] +[H]c1c(c(c(nc1[H])C(=O)N([H])[H])I)[H] +[H]c1c([H])c(S(=O)[O-])c([H])c([H])c1I +[H]c1nc([H])c(N(C([H])([H])[H])C([H])([H])[H])c([H])c1I +[H]c1c(c(c(c(c1F)[H])C(=O)[H])I)[H] +[H]c1c([H])c(C([H])([H])[H])c(N([H])[H])c(C([H])([H])[H])c1I +[H]C(=O)c1c(I)c([H])c([H])c([H])c1C([H])([H])[H] +[H]c1c([H])c([H])c2c(c(I)nn2[H])c1[H] +[H]c1c(c(c2=NN(C(=c2c1[H])I)[H])[H])[H] +[H]c1c([H])c([H])c(C(=O)[O-])c(I)c1[H] +[H]c1nc(C(=O)N([H])[H])c([H])c(I)c1[H] +[H]N1C(=C(C(=N1)N([H])[H])I)C(=O)[O-] +[H]N1C(=C(C(=N1)C(=O)[O-])I)N([H])[H] +[H]c1c(c(c2c(c1[H])C(=C(N2[H])[H])I)[H])[H] +[H]c1nc(C(=O)[O-])c(I)c([H])c1[H] +[H]C(=NN([H])[H])c1c([H])c([H])c([H])c(I)c1[H] +[H]c1c(c(c(c(c1[H])I)[H])C([H])([H])N=N[H])[H] +[H]C1=C(N(C(=O)N(C1=O)[H])C([H])([H])[H])I +[H]c1c([H])c([H])c(C(=O)N([H])[H])c(I)c1[H] +[H]c1c(F)c(N([H])[H])c(I)c([H])c1C([H])([H])[H] +[H]c1c(c(nc(c1I)[H])[H])C(=O)[O-] +[H]C(=O)c1c(C([H])([H])[H])sc(C([H])([H])[H])c1I +[H]c1c(I)c(=O)n(C([H])([H])[H])c(=O)n1[H] +[H]c1c([H])c(C(=O)C([H])([H])[H])c([H])c([H])c1I +[H]c1c(c(c(c(c1[H])I)C([H])([H])[H])C(=O)[H])[H] +[H]c1c(c(c(c(c1[H])S(=O)[O-])I)[H])[H] +[H]c1c(c(c(c(c1C([H])([H])[H])I)[H])N([H])[H])C([H])([H])[H] +[H]c1c([n+](c(c(c1N([H])[H])OC([H])([H])[H])I)[H])[H] +[H]c1nc(I)c(OC([H])([H])[H])c(N([H])[H])c1[H] +[H]C1=Nc2c(nc(nc2Cl)I)N1[H] +[H]C1=Nc2c(c(nc(n2)I)Cl)N1[H] +[H]c1nc(I)c(C(F)(F)F)c([H])c1[H] +[H]C(=O)c1c([H])c(I)c([H])c(N([H])C([H])([H])[H])c1[H] +[H]C(=O)c1c(F)c([H])c([H])c(I)c1F +[H]OC([H])([H])C([H])(c1c([H])c([H])c([H])c([H])c1I)[N+]([H])([H])[H] +[H]C(=O)c1c([H])c(F)c(C([H])([H])[H])c(I)c1[H] +[H]c1nc(S(=O)(=O)N([H])[H])c([H])c(I)c1[H] +[H]c1nc(N([H])[H])c2c(I)nn([H])c2n1 +[H]c1nc2=NN(C(=c2c(n1)N([H])[H])I)[H] +[H]c1nc([H])c(C(F)(F)F)c(I)c1[H] +[H]c1nc([H])c2c(I)c([H])c([H])c([H])c2n1 +[H]c1c(c(c(c(c1[H])S(=O)(=O)N([H])[H])I)[H])[H] +[H]c1c(c(c(c(n1)N([H])[H])I)C#N)F +[H]C(=O)c1c(I)c(C([H])([H])[H])nn1C([H])([H])C([H])([H])[H] +[H]c1c([H])c([H])c2c(c1[H])c(I)c(C([H])([H])[H])n2[H] +[H]c1c(c(c(c(c1Cl)I)Cl)[H])C(=O)[H] +[H]c1c2c(nc(c1F)[H])N(C(=C2[H])I)[H] +[H]c1c(c(c(nc1[H])S(=O)(=O)N([H])[H])I)[H] +[H]C(=O)C12C3(C4(C1(C5(C2(C3(C45I)[H])[H])[H])[H])[H])[H] +[H]c1c(c(c(c(c1[H])C(=O)[H])I)C(=O)[H])[H] +[H]C(=O)c1nc(I)c(N([H])[H])nc1N([H])[H] +[H]n1c(=O)c(Cl)c(I)n(C([H])([H])[H])c1=O +[H]C1=C(OC(=C1[H])I)C([H])([H])[N+]([H])([H])C([H])(C([H])([H])[H])C([H])([H])[H] +[H]c1c(nc(c(c1I)S(=O)(=O)N([H])[H])[H])[H] +[H]c1c(c(c(c(c1F)C([H])([H])[H])C(=O)[H])I)[H] +[H]C(=O)c1c([H])c([H])c(C#CI)c([H])c1[H] +[H]C(=O)c1sc(I)c(C#N)c1C([H])([H])[H] +[H]c1c(c2c(c(c1[H])I)C(=O)N(C2([H])[H])[H])[H] +[H]C(=O)c1c([H])c(Cl)c([H])c(I)c1N([H])[H] +[H]c1c(c(c(c(c1C(=O)[H])O[H])I)N([H])[H])[H] +[H]C(=O)c1c(I)c(=O)n([H])c(=O)n1[H] +[H]C(=O)c1sc2nc([H])c(I)n2c1[H] +[H]C1=C(SC2=[N+](C(=C(N12)I)[H])[H])C(=O)[H] +[H]c1c([H])c(I)c([H])c(S(=O)(=O)N([H])[H])c1[H] +[H]c1nc2c(c([H])c([H])n2[H])c(I)c1F +[H]c1c(I)nc(S(=O)(=O)N([H])[H])c([H])c1[H] +[H]c1c(c(c(c2c1N(C(=C2I)[H])[H])[H])F)[H] +[H]C(=O)c1c(F)c([H])c([H])c(F)c1I +[H]c1nc(I)nc2c1nc([H])n2C([H])([H])[H] +[H]c1nc(Cl)c2c(I)nn([H])c2c1[H] +[H]c1c(nc(c2=C(N(N=c12)[H])I)Cl)[H] +[H]c1c(c(c(c(c1F)[H])I)N([H])[H])C(=O)[H] +[H]C(=O)C1=C(C(=C(N1C([H])([H])[H])C([H])([H])[H])I)C([H])([H])[H] +[H]C([H])([H])C1=C(N(C(=O)N(C1=O)[H])C([H])([H])[H])I +[H]c1c(c(c(c(c1F)F)I)F)F +[H]c1c([H])c(C([H])([H])[H])c([H])c(I)c1S(=O)[O-] +[H]c1nc(C(F)(F)F)c(I)c([H])c1[H] +[H]c1c(c(c(c(c1OC([H])([H])[H])[H])I)[H])C([H])([H])O[H] +[H]C(=O)c1c([H])c([H])c(OC([H])([H])[H])c([H])c1I +[H]C(=O)c1c([H])c([H])c(N([H])C([H])([H])[H])c(I)c1[H] +[H]c1c(nc(c(c1C(F)(F)F)I)[H])[H] +[H]c1c(c(c(c(c1S(=O)[O-])I)[H])Cl)[H] +[H]c1c(nc(c2=C(N(N=c12)[H])I)N([H])[H])[H] +[H]c1nc(N([H])[H])c2c(I)nn([H])c2c1[H] +[H]c1c(c(c(c2c1C(=NN2[H])[H])I)O[H])[H] +[H]c1c(c(c(c2=NN(C(=c12)[H])[H])I)O[H])[H] +[H]C1=C(N=C(C(C1([H])S(=O)(=O)N([H])[H])([H])[H])I)[H] +[H]C1=C(N=C(C(C1([H])S(=O)(=O)N([H])[H])([H])[H])[H])I +[H]c1c(nc(c(c1S(=O)(=O)N([H])[H])[H])I)[H] +[H]c1c([H])c(I)c(S(=O)[O-])c([H])c1Cl +[H]c1c(c(c(nc1[H])I)S(=O)(=O)N([H])[H])[H] +[H]c1c(c(c(nc1N([H])[H])I)[H])C(=O)C([H])([H])[H] +[H]c1c(c(c(c(c1C(=O)[O-])[H])I)C([H])([H])[H])[H] +[H]c1c(I)c([H])c(OC([H])([H])[H])c([H])c1C#N +[H]c1nc([H])c(C(F)(F)F)c([H])c1I +[H]c1c(c(c(c(c1O[H])I)O[H])[H])C(=O)[H] +[H]c1c(I)c([H])c2c(c1[H])n([H])c(=O)n2[H] +[H]c1c(c(c(c(c1N([H])C([H])([H])[H])I)F)F)[H] +[H]c1c(nc(c(c1C(F)(F)F)[H])I)[H] +[H]c1c(c(c2c(n1)N(C(=C2[H])[H])[H])I)C([H])([H])[H] +[H]C(=O)c1c([H])c([H])c([H])c(I)c1C([H])=O +[H]c1nc(N([H])[H])c2c(I)c([H])n([H])c2n1 +[H]c1c(c2c(c(c1[H])I)C(=NO2)N([H])[H])[H] +[H]C(=O)c1c([H])c(I)c(C(=O)C([H])([H])[H])n1[H] +[H]C1=NC(=C(C(C1([H])[H])([H])[H])S(=O)(=O)N([H])[H])I +[H]C1=C(N=C(C(C1([H])[H])([H])S(=O)(=O)N([H])[H])I)[H] +[H]c1c(c(c(c(c1C([H])(C([H])([H])O[H])[N+]([H])([H])[H])[H])[H])I)[H] +[H]c1c(c(nc(c1S(=O)(=O)N([H])[H])[H])I)[H] +[H]C1=C(C(=O)N(C(=O)N1[H])[H])C([H])([H])C([H])([H])I +[H]c1c(I)c(F)c([H])c2c1N([H])C([H])([H])C2([H])[H] +[H]C(=O)c1c([H])c(I)c(N([H])[H])c(C([H])([H])[H])c1[H] +[H]C(=O)c1c([H])c([H])c([H])c2nc(I)sc12 +[H]c1c(c(c(c(c1OC([H])([H])[H])I)[H])S(=O)[O-])[H] +[H]c1c(c(c(c(c1OC([H])([H])C([H])([H])[H])[H])I)[H])C#N +[H]c1c(I)nc2c(c1[H])N([H])C(=O)C([H])([H])O2 +[H]C1=C(C(C2(C(C(C(C(C2(C1([H])[H])[N+]([H])([H])[H])([H])[H])([H])[H])([H])[H])([H])[H])I)([H])[H])[H] +[H]C1=C([H])C([H])([H])C2(N([H])[H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C2(I)C1([H])[H] +[H]C(=O)c1c(I)n([H])c2c([H])c([H])c([H])c([H])c12 +[H]c1c(c(c(c(c1OC([H])([H])[H])[H])I)[H])C(=O)N([H])[H] +[H]C(=O)C1=C(C(=NN1C([H])([H])[H])C([H])(C([H])([H])[H])C([H])([H])[H])I +[H]C(=O)c1c([H])c(I)nc(C(=O)C([H])([H])[H])c1[H] +[H]c1c(c(c(c(c1C(=O)[H])[H])I)N(C([H])([H])[H])C([H])([H])[H])[H] +[H]c1c(c2c(c(c(c(c2Cl)[H])I)[H])nc1[H])[H] +[H]Oc1c(I)c([H])c(C#N)c([H])c1OC([H])([H])[H] +[H]c1c(c(c(c(c1OC([H])([H])[H])[O-])I)[H])C#N +[H]c1c(I)c([H])c2c(C([H])([H])C([H])([H])[H])c([H])n([H])c2c1[H] +[H]C(=O)c1c(I)c(C2([H])C([H])([H])C2([H])[H])nn1C([H])([H])[H] +[H]C(=O)C1=NN(C(=C1I)C2(C(C2([H])[H])([H])[H])[H])C([H])([H])[H] +[H]c1c([H])c(C([H])([H])C([H])([H])[H])c(N([H])[H])c(C([H])([H])C([H])([H])[H])c1I +[H]C(=O)C1=C(N(N=C1C(F)(F)F)[H])I +[H]C(=O)C1=C(N(N=C1I)[H])C(F)(F)F +[H]C(=O)C([H])([H])c1c([H])c(OC([H])([H])[H])c([H])c([H])c1I +c1(c(c(c(c(c1F)F)I)F)F)[O-] +[H]Oc1c(F)c(F)c(I)c(F)c1F +[H]C(=O)c1c([H])c([H])c(C2([H])C([H])([H])C2([H])[H])c(I)c1[H] +[H]c1c(c(c(c(c1N([H])C([H])([H])C([H])([H])[H])I)F)F)[H] +[H]OC([H])([H])c1c([H])c([H])c(C(=O)[O-])c([H])c1I +[H]C(=O)c1c(I)c([H])c([H])c2c1c([H])nn2[H] +[H]c1c(c(c(c2=C(N(N=c12)[H])[H])C(=O)[H])I)[H] +[H]C(=O)c1nc2nc([H])c([H])c([H])n2c1I +[H]C1=Nc2c(nc(nc2OC([H])([H])[H])I)N1[H] +[H]C1=Nc2c(c(nc(n2)I)OC([H])([H])[H])N1[H] +[H]c1c(c(c(c(c1OC([H])([H])[H])N([H])[H])I)[H])C(=O)[H] +[H]c1c(c(c(c(c1F)F)I)F)C(=O)[H] +[H]c1c(OC([H])([H])[H])c([H])c2c([H])c(I)n([H])c2c1[H] +[H]c1c(c(c(c(c1S(=O)[O-])I)[H])C([H])([H])[H])C([H])([H])[H] \ No newline at end of file diff --git a/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/full-environment.yaml b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/full-environment.yaml new file mode 100644 index 00000000..752e70ac --- /dev/null +++ b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/full-environment.yaml @@ -0,0 +1,383 @@ +name: i-frag-submit +channels: + - openeye + - conda-forge + - defaults +dependencies: + - ambertools=23.6=cuda_None_nompi_py312hc98840c_105 + - annotated-types=0.7.0=pyhd8ed1ab_0 + - anyio=4.4.0=pyhd8ed1ab_0 + - appnope=0.1.4=pyhd8ed1ab_0 + - apsw=3.46.0.1=py312h77d72a6_0 + - archspec=0.2.3=pyhd8ed1ab_0 + - argcomplete=3.5.0=pyhd8ed1ab_0 + - argon2-cffi=23.1.0=pyhd8ed1ab_0 + - argon2-cffi-bindings=21.2.0=py312hb553811_5 + - arpack=3.9.1=nompi_hf81eadf_101 + - arrow=1.3.0=pyhd8ed1ab_0 + - asttokens=2.4.1=pyhd8ed1ab_0 + - astunparse=1.6.3=pyhd8ed1ab_0 + - async-lru=2.0.4=pyhd8ed1ab_0 + - attrs=24.2.0=pyh71513ae_0 + - babel=2.14.0=pyhd8ed1ab_0 + - basis_set_exchange=0.10=pyhd8ed1ab_1 + - beautifulsoup4=4.12.3=pyha770c72_0 + - black=24.8.0=py312hb401068_0 + - bleach=6.1.0=pyhd8ed1ab_0 + - blosc=1.21.6=h7d75f6d_0 + - boltons=24.0.0=pyhd8ed1ab_0 + - brotli=1.1.0=h00291cd_2 + - brotli-bin=1.1.0=h00291cd_2 + - brotli-python=1.1.0=py312h5861a67_2 + - bson=0.5.9=py_0 + - bzip2=1.0.8=hfdf4475_7 + - c-ares=1.33.1=h44e7173_0 + - c-blosc2=2.15.1=hb9356d3_0 + - ca-certificates=2024.8.30=h8857fd0_0 + - cached-property=1.5.2=hd8ed1ab_1 + - cached_property=1.5.2=pyha770c72_1 + - cachetools=5.5.0=pyhd8ed1ab_0 + - cairo=1.18.0=h37bd5c4_3 + - certifi=2024.8.30=pyhd8ed1ab_0 + - cffi=1.17.1=py312hf857d28_0 + - cfgv=3.3.1=pyhd8ed1ab_0 + - chardet=5.2.0=py312hb401068_2 + - charset-normalizer=3.3.2=pyhd8ed1ab_0 + - click=8.1.7=unix_pyh707e725_0 + - cloudpickle=3.0.0=pyhd8ed1ab_0 + - cmiles=0.1.6=ha770c72_2 + - cmiles-base=0.1.6=pyhd8ed1ab_2 + - colorama=0.4.6=pyhd8ed1ab_0 + - comm=0.2.2=pyhd8ed1ab_0 + - conda=24.7.1=py312hb401068_0 + - conda-libmamba-solver=24.7.0=pyhd8ed1ab_0 + - conda-pack=0.8.0=pyhd8ed1ab_0 + - conda-package-handling=2.3.0=pyh7900ff3_0 + - conda-package-streaming=0.10.0=pyhd8ed1ab_0 + - contourpy=1.3.0=py312hc5c4d5f_1 + - coverage=7.6.1=py312hb553811_1 + - cycler=0.12.1=pyhd8ed1ab_0 + - debugpy=1.8.5=py312h5861a67_1 + - decorator=5.1.1=pyhd8ed1ab_0 + - defusedxml=0.7.1=pyhd8ed1ab_0 + - distlib=0.3.8=pyhd8ed1ab_0 + - distro=1.9.0=pyhd8ed1ab_0 + - entrypoints=0.4=pyhd8ed1ab_0 + - exceptiongroup=1.2.2=pyhd8ed1ab_0 + - execnet=2.1.1=pyhd8ed1ab_0 + - executing=2.1.0=pyhd8ed1ab_0 + - expat=2.6.3=hac325c4_0 + - fftw=3.3.10=nompi_h292e606_110 + - filelock=3.16.0=pyhd8ed1ab_0 + - flake8=7.1.1=pyhd8ed1ab_0 + - fmt=10.2.1=h7728843_0 + - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 + - font-ttf-inconsolata=3.000=h77eed37_0 + - font-ttf-source-code-pro=2.038=h77eed37_0 + - font-ttf-ubuntu=0.83=h77eed37_2 + - fontconfig=2.14.2=h5bb23bf_0 + - fonts-conda-ecosystem=1=0 + - fonts-conda-forge=1=0 + - fonttools=4.53.1=py312hb553811_1 + - forcebalance=1.9.6=py312hafa5229_2 + - fqdn=1.5.1=pyhd8ed1ab_0 + - freetype=2.12.1=h60636b9_2 + - freetype-py=2.3.0=pyhd8ed1ab_0 + - frozendict=2.4.4=py312hbd25219_0 + - future=1.0.0=pyhd8ed1ab_0 + - geometric=1.0.2=pyhd8ed1ab_0 + - greenlet=3.0.3=py312hede676d_0 + - h11=0.14.0=pyhd8ed1ab_0 + - h2=4.1.0=pyhd8ed1ab_0 + - hdf4=4.2.15=h8138101_7 + - hdf5=1.14.3=nompi_h687a608_105 + - hpack=4.0.0=pyh9f0ad1d_0 + - httpcore=1.0.5=pyhd8ed1ab_0 + - httpx=0.27.2=pyhd8ed1ab_0 + - hyperframe=6.0.1=pyhd8ed1ab_0 + - icu=75.1=h120a0e1_0 + - identify=2.6.0=pyhd8ed1ab_0 + - idna=3.8=pyhd8ed1ab_0 + - importlib-metadata=8.4.0=pyha770c72_0 + - importlib_metadata=8.4.0=hd8ed1ab_0 + - importlib_resources=6.4.5=pyhd8ed1ab_0 + - iniconfig=2.0.0=pyhd8ed1ab_0 + - ipdb=0.13.13=pyhd8ed1ab_0 + - ipykernel=6.29.5=pyh57ce528_0 + - ipython=8.27.0=pyh707e725_0 + - ipywidgets=8.1.5=pyhd8ed1ab_0 + - isoduration=20.11.0=pyhd8ed1ab_0 + - isort=5.13.2=pyhd8ed1ab_0 + - jedi=0.19.1=pyhd8ed1ab_0 + - jinja2=3.1.4=pyhd8ed1ab_0 + - joblib=1.4.2=pyhd8ed1ab_0 + - json5=0.9.25=pyhd8ed1ab_0 + - jsonpatch=1.33=pyhd8ed1ab_0 + - jsonpointer=3.0.0=py312hb401068_1 + - jsonschema=4.23.0=pyhd8ed1ab_0 + - jsonschema-specifications=2023.12.1=pyhd8ed1ab_0 + - jsonschema-with-format-nongpl=4.23.0=hd8ed1ab_0 + - jupyter=1.1.1=pyhd8ed1ab_0 + - jupyter-lsp=2.2.5=pyhd8ed1ab_0 + - jupyter_client=8.6.2=pyhd8ed1ab_0 + - jupyter_console=6.6.3=pyhd8ed1ab_0 + - jupyter_core=5.7.2=py312hb401068_0 + - jupyter_events=0.10.0=pyhd8ed1ab_0 + - jupyter_server=2.14.2=pyhd8ed1ab_0 + - jupyter_server_terminals=0.5.3=pyhd8ed1ab_0 + - jupyterlab=4.2.5=pyhd8ed1ab_0 + - jupyterlab_pygments=0.3.0=pyhd8ed1ab_1 + - jupyterlab_server=2.27.3=pyhd8ed1ab_0 + - jupyterlab_widgets=3.0.13=pyhd8ed1ab_0 + - khronos-opencl-icd-loader=2023.04.17=h37ebe6b_1 + - kiwisolver=1.4.7=py312hc5c4d5f_0 + - krb5=1.21.3=h37d8d59_0 + - lcms2=2.16=ha2f27b4_0 + - lerc=4.0.0=hb486fe8_0 + - libaec=1.1.3=h73e2aa4_0 + - libarchive=3.7.4=h20e244c_0 + - libblas=3.9.0=22_osx64_openblas + - libboost=1.84.0=hbe88bda_6 + - libboost-python=1.84.0=py312h082b758_6 + - libbrotlicommon=1.1.0=h00291cd_2 + - libbrotlidec=1.1.0=h00291cd_2 + - libbrotlienc=1.1.0=h00291cd_2 + - libcblas=3.9.0=22_osx64_openblas + - libcurl=8.9.1=hfcf2730_0 + - libcxx=18.1.8=hd876a4e_7 + - libdeflate=1.21=hfdf4475_0 + - libedit=3.1.20191231=h0678c8f_2 + - libev=4.33=h10d778d_2 + - libexpat=2.6.3=hac325c4_0 + - libffi=3.4.2=h0d85af4_5 + - libgfortran=5.0.0=13_2_0_h97931a8_3 + - libgfortran5=13.2.0=h2873a65_3 + - libglib=2.80.3=h736d271_2 + - libiconv=1.17=hd75f5a5_2 + - libintl=0.22.5=hdfe23c8_3 + - libjpeg-turbo=3.0.0=h0dc2134_1 + - liblapack=3.9.0=22_osx64_openblas + - libmamba=1.5.9=hd44d3b3_0 + - libmambapy=1.5.9=py312haab923c_0 + - libnetcdf=4.9.2=nompi_h7334405_114 + - libnghttp2=1.58.0=h64cf6d3_1 + - libopenblas=0.3.27=openmp_h8869122_1 + - libpng=1.6.43=h92b6c6a_0 + - libpq=16.4=h75a757a_1 + - librdkit=2024.03.5=hbc19afa_3 + - libsodium=1.0.20=hfdf4475_0 + - libsolv=0.7.30=h69d5d9b_0 + - libsqlite=3.46.0=h1b8f9f3_0 + - libssh2=1.11.0=hd019ec5_0 + - libtiff=4.6.0=h603087a_4 + - libwebp-base=1.4.0=h10d778d_0 + - libxcb=1.16=h00291cd_1 + - libxml2=2.12.7=heaf3512_4 + - libxslt=1.1.39=h03b04e6_0 + - libzip=1.10.1=hc158999_3 + - libzlib=1.3.1=h87427d6_1 + - llvm-openmp=18.1.8=h15ab845_1 + - lxml=5.3.0=py312h4feaf87_1 + - lz4-c=1.9.4=hf0c8a7f_0 + - lzo=2.10=h10d778d_1001 + - mamba=1.5.9=py312ha12221d_0 + - markdown-it-py=3.0.0=pyhd8ed1ab_0 + - markupsafe=2.1.5=py312hb553811_1 + - matplotlib-base=3.9.2=py312h0d5aeb7_0 + - matplotlib-inline=0.1.7=pyhd8ed1ab_0 + - mccabe=0.7.0=pyhd8ed1ab_0 + - mda-xdrlib=0.2.0=pyhd8ed1ab_0 + - mdtraj=1.10.0=py312h00f8f5a_0 + - mdurl=0.1.2=pyhd8ed1ab_0 + - menuinst=2.1.2=py312hb401068_1 + - mistune=3.0.2=pyhd8ed1ab_0 + - msgpack-python=1.1.0=py312hc5c4d5f_0 + - munkres=1.1.4=pyh9f0ad1d_0 + - mypy_extensions=1.0.0=pyha770c72_0 + - nbclient=0.10.0=pyhd8ed1ab_0 + - nbconvert-core=7.16.4=pyhd8ed1ab_1 + - nbformat=5.10.4=pyhd8ed1ab_0 + - ncurses=6.5=hf036a51_1 + - ndcctools=7.13.0=py312h216efed_0 + - nest-asyncio=1.6.0=pyhd8ed1ab_0 + - netcdf-fortran=4.6.1=nompi_h3f3c442_106 + - networkx=3.3=pyhd8ed1ab_1 + - nglview=3.1.2=pyhceb8b5e_1 + - nodeenv=1.9.1=pyhd8ed1ab_0 + - notebook=7.2.2=pyhd8ed1ab_0 + - notebook-shim=0.2.4=pyhd8ed1ab_0 + - numexpr=2.10.0=py312h1171441_0 + - numpy=1.26.4=py312he3a82b2_0 + - ocl_icd_wrapper_apple=1.0.0=hbcb3906_0 + - openeye-toolkits=2024.1.0=py312_0 + - openff-amber-ff-ports=0.0.4=pyhca7485f_0 + - openff-forcefields=2024.07.0=pyhff2d567_0 + - openff-interchange=0.3.29=pyhd8ed1ab_0 + - openff-interchange-base=0.3.29=pyhd8ed1ab_0 + - openff-models=0.1.2=pyhca7485f_0 + - openff-qcsubmit=0.53.0=pyhd8ed1ab_0 + - openff-toolkit=0.16.0=pyhd8ed1ab_0 + - openff-toolkit-base=0.16.0=pyhd8ed1ab_0 + - openff-units=0.2.2=pyhca7485f_0 + - openff-utilities=0.1.12=pyhd8ed1ab_0 + - openjpeg=2.5.2=h7310d3a_0 + - openmm=8.1.2=py312hacce00b_2_khronos + - openmmforcefields=0.14.1=pyhd8ed1ab_0 + - openssl=3.3.2=hd23fc13_0 + - overrides=7.7.0=pyhd8ed1ab_0 + - packaging=24.1=pyhd8ed1ab_0 + - pandas=2.2.2=py312h1171441_1 + - pandocfilters=1.5.0=pyhd8ed1ab_0 + - panedr=0.8.0=pyhd8ed1ab_0 + - parmed=4.2.2=py312h444b7ae_1 + - parso=0.8.4=pyhd8ed1ab_0 + - pathspec=0.12.1=pyhd8ed1ab_0 + - patsy=0.5.6=pyhd8ed1ab_0 + - pcre2=10.44=h7634a1b_2 + - perl=5.32.1=7_h10d778d_perl5 + - pexpect=4.9.0=pyhd8ed1ab_0 + - pickleshare=0.7.5=py_1003 + - pillow=10.4.0=py312hbd70edc_0 + - pint=0.23=pyhd8ed1ab_1 + - pip=24.2=pyh8b19718_1 + - pixman=0.43.4=h73e2aa4_0 + - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_1 + - platformdirs=4.3.2=pyhd8ed1ab_0 + - pluggy=1.5.0=pyhd8ed1ab_0 + - pre-commit=3.8.0=pyha770c72_1 + - prometheus_client=0.20.0=pyhd8ed1ab_0 + - prompt-toolkit=3.0.47=pyha770c72_0 + - prompt_toolkit=3.0.47=hd8ed1ab_0 + - psutil=6.0.0=py312hb553811_1 + - pthread-stubs=0.4=hc929b4f_1001 + - ptyprocess=0.7.0=pyhd3deb0d_0 + - pure_eval=0.2.3=pyhd8ed1ab_0 + - py-cpuinfo=9.0.0=pyhd8ed1ab_0 + - pybind11-abi=4=hd8ed1ab_3 + - pycairo=1.27.0=py312hc3eca63_0 + - pycalverter=1.6.1=pyhd8ed1ab_1 + - pycodestyle=2.12.1=pyhd8ed1ab_0 + - pycosat=0.6.6=py312h104f124_0 + - pycparser=2.22=pyhd8ed1ab_0 + - pydantic=2.9.1=pyhd8ed1ab_0 + - pydantic-core=2.23.3=py312h669792a_0 + - pyedr=0.8.0=pyhd8ed1ab_0 + - pyflakes=3.2.0=pyhd8ed1ab_0 + - pygments=2.18.0=pyhd8ed1ab_0 + - pyjwt=2.9.0=pyhd8ed1ab_1 + - pymbar=3.1.1=py312hd903386_3 + - pyobjc-core=10.3.1=py312hab44e94_1 + - pyobjc-framework-cocoa=10.3.1=py312hab44e94_1 + - pyparsing=3.1.4=pyhd8ed1ab_0 + - pysocks=1.7.1=pyha2e5f31_6 + - pytables=3.10.1=py312h205d3a4_1 + - pytest=8.3.3=pyhd8ed1ab_0 + - pytest-cov=5.0.0=pyhd8ed1ab_0 + - pytest-randomly=3.15.0=pyhd8ed1ab_0 + - pytest-timeout=2.3.1=pyhd8ed1ab_1 + - pytest-xdist=3.6.1=pyhd8ed1ab_0 + - python=3.12.5=h37a9e06_0_cpython + - python-constraint=1.4.0=py_0 + - python-dateutil=2.9.0=pyhd8ed1ab_0 + - python-fastjsonschema=2.20.0=pyhd8ed1ab_0 + - python-json-logger=2.0.7=pyhd8ed1ab_0 + - python-tzdata=2024.1=pyhd8ed1ab_0 + - python_abi=3.12=5_cp312 + - pytz=2024.1=pyhd8ed1ab_0 + - pyyaml=6.0.2=py312hb553811_1 + - pyzmq=26.2.0=py312h54d5c6a_2 + - qcelemental=0.28.0=pyhd8ed1ab_0 + - qcengine=0.30.0=pyhd8ed1ab_0 + - qcportal=0.56=pyhd8ed1ab_1 + - qhull=2020.2=h3c5361c_5 + - qubekit=2.1.0=pyhd8ed1ab_0 + - rdkit=2024.03.5=py312hcfd6466_3 + - readline=8.2=h9e318b2_1 + - referencing=0.35.1=pyhd8ed1ab_0 + - regex=2024.7.24=py312hb553811_1 + - reportlab=4.2.2=py312hbd25219_0 + - reproc=14.2.4.post0=h10d778d_1 + - reproc-cpp=14.2.4.post0=h93d8f39_1 + - requests=2.32.3=pyhd8ed1ab_0 + - rfc3339-validator=0.1.4=pyhd8ed1ab_0 + - rfc3986-validator=0.1.1=pyh9f0ad1d_0 + - rich=13.7.1=pyhd8ed1ab_0 + - rlpycairo=0.2.0=pyhd8ed1ab_0 + - rpds-py=0.20.0=py312h669792a_1 + - ruamel.yaml=0.18.6=py312h41838bb_0 + - ruamel.yaml.clib=0.2.8=py312h41838bb_0 + - scipy=1.14.1=py312he82a568_0 + - seaborn=0.13.2=hd8ed1ab_2 + - seaborn-base=0.13.2=pyhd8ed1ab_2 + - send2trash=1.8.3=pyh31c8845_0 + - setuptools=73.0.1=pyhd8ed1ab_0 + - six=1.16.0=pyh6c4a22f_0 + - smirnoff-plugins=2024.07.0=pyhd8ed1ab_0 + - smirnoff99frosst=1.1.0=pyh44b312d_0 + - snappy=1.2.1=he1e6707_0 + - sniffio=1.3.1=pyhd8ed1ab_0 + - soupsieve=2.5=pyhd8ed1ab_1 + - sqlalchemy=2.0.34=py312hb553811_0 + - sqlite=3.46.0=h28673e1_0 + - stack_data=0.6.2=pyhd8ed1ab_0 + - statsmodels=0.14.2=py312h5dc8b90_0 + - tabulate=0.9.0=pyhd8ed1ab_1 + - terminado=0.18.1=pyh31c8845_0 + - threadpoolctl=3.5.0=pyhc1e730c_0 + - tinycss2=1.3.0=pyhd8ed1ab_0 + - tinydb=4.8.0=pyhd8ed1ab_0 + - tk=8.6.13=h1abcd95_1 + - toml=0.10.2=pyhd8ed1ab_0 + - tomli=2.0.1=pyhd8ed1ab_0 + - tornado=6.4.1=py312hb553811_1 + - torsiondrive=1.1.0=pyhd8ed1ab_0 + - tqdm=4.66.5=pyhd8ed1ab_0 + - traitlets=5.14.3=pyhd8ed1ab_0 + - truststore=0.9.2=pyhd8ed1ab_0 + - types-python-dateutil=2.9.0.20240906=pyhd8ed1ab_0 + - typing-extensions=4.12.2=hd8ed1ab_0 + - typing_extensions=4.12.2=pyha770c72_0 + - typing_utils=0.1.0=pyhd8ed1ab_0 + - tzdata=2024a=h8827d51_1 + - ukkonen=1.0.1=py312hc5c4d5f_5 + - unidecode=1.3.8=pyhd8ed1ab_0 + - uri-template=1.3.0=pyhd8ed1ab_0 + - urllib3=2.2.2=pyhd8ed1ab_1 + - validators=0.34.0=pyhd8ed1ab_0 + - virtualenv=20.26.4=pyhd8ed1ab_0 + - wcwidth=0.2.13=pyhd8ed1ab_0 + - webcolors=24.8.0=pyhd8ed1ab_0 + - webencodings=0.5.1=pyhd8ed1ab_2 + - websocket-client=1.8.0=pyhd8ed1ab_0 + - wheel=0.44.0=pyhd8ed1ab_0 + - widgetsnbextension=4.0.13=pyhd8ed1ab_0 + - xmltodict=0.13.0=pyhd8ed1ab_0 + - xorg-kbproto=1.0.7=h35c211d_1002 + - xorg-libice=1.1.1=h0dc2134_0 + - xorg-libsm=1.2.4=h0dc2134_0 + - xorg-libx11=1.8.9=h7022169_1 + - xorg-libxau=1.0.11=h0dc2134_0 + - xorg-libxdmcp=1.1.3=h35c211d_0 + - xorg-libxext=1.3.4=hb7f2c08_2 + - xorg-libxt=1.3.0=h0dc2134_1 + - xorg-xextproto=7.3.0=hb7f2c08_1003 + - xorg-xproto=7.0.31=h35c211d_1007 + - xz=5.2.6=h775f41a_0 + - yaml=0.2.5=h0d85af4_2 + - yaml-cpp=0.8.0=he965462_0 + - zeromq=4.3.5=hb33e954_5 + - zipp=3.20.1=pyhd8ed1ab_0 + - zlib=1.3.1=h87427d6_1 + - zlib-ng=2.2.1=hf036a51_0 + - zstandard=0.23.0=py312h7122b0e_1 + - zstd=1.5.6=h915ae27_0 + - pip: + - amberutils==21.0 + - edgembar==0.2 + - mmpbsa-py==16.0 + - packmol-memgen==2024.2.9 + - pdb4amber==22.0 + - pymsmt==22.0 + - pytraj==2.0.6 + - sander==22.0 +prefix: /Users/lexiemcisaac/miniconda3/envs/i-frag-submit diff --git a/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/generate-dataset.ipynb b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/generate-dataset.ipynb new file mode 100644 index 00000000..835a69dc --- /dev/null +++ b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/generate-dataset.ipynb @@ -0,0 +1,670 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "1fd519b4-ac84-4546-8413-0fccbc86540d", + "metadata": {}, + "source": [ + "# Dataset generation\n", + "\n", + "This notebook documents the creation of a dataset of small I-containing molecules to be optimized and later used for ESP generation. \n", + "\n", + "All I-containing molecules were selected from the ZINC, enamine, and CHEMBL datasets. These molecules were then fragmented, and small fragments containing I were kept. Protomers were then enumerated. The results of this process are stored in `enumerated.smi`. \n", + "\n", + "In this document we generate ELF conformers for each molecule and create an OptimizationDataset." + ] + }, + { + "cell_type": "markdown", + "id": "4aa26fc7-5d75-4e95-af1e-20780a5cfee0", + "metadata": {}, + "source": [ + "# Import" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6160c2ad-5bdd-46aa-b66b-27a65e4a689d", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:25:04.436619Z", + "iopub.status.busy": "2024-09-10T23:25:04.436327Z", + "iopub.status.idle": "2024-09-10T23:25:05.419283Z", + "shell.execute_reply": "2024-09-10T23:25:05.418783Z", + "shell.execute_reply.started": "2024-09-10T23:25:04.436602Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "OpenFF QCSubmit: 0.53.0\n", + "OpenFF Toolkit: 0.16.4\n", + "OpenEye: 2024.1.0\n", + "QCElemental: 0.28.0\n", + "QCPortal: 0.56\n" + ] + } + ], + "source": [ + "import openff.qcsubmit\n", + "import openff.toolkit\n", + "import openeye\n", + "import qcelemental\n", + "import qcportal\n", + "\n", + "print(\"OpenFF QCSubmit:\", openff.qcsubmit.__version__)\n", + "print(\"OpenFF Toolkit:\", openff.toolkit.__version__)\n", + "print(\"OpenEye:\", openeye.__version__)\n", + "print(\"QCElemental:\", qcelemental.__version__)\n", + "print(\"QCPortal:\", qcportal.__version__)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "a86eab00-2df2-4169-bbaf-44fea8879a22", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:25:05.420389Z", + "iopub.status.busy": "2024-09-10T23:25:05.420077Z", + "iopub.status.idle": "2024-09-10T23:25:09.254055Z", + "shell.execute_reply": "2024-09-10T23:25:09.253637Z", + "shell.execute_reply.started": "2024-09-10T23:25:05.420364Z" + } + }, + "outputs": [], + "source": [ + "import tqdm\n", + "\n", + "from openff.units import unit\n", + "\n", + "from openff.toolkit import Molecule\n", + "from openff.toolkit.utils import OpenEyeToolkitWrapper, ToolkitRegistry\n", + "\n", + "from openff.qcsubmit.datasets import OptimizationDataset\n", + "from openff.qcsubmit.factories import OptimizationDatasetFactory\n", + "\n", + "from qcelemental.models.results import WavefunctionProtocolEnum" + ] + }, + { + "cell_type": "markdown", + "id": "c8228662-e606-4a07-9a16-9594ecc55c3c", + "metadata": {}, + "source": [ + "# Setting up dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "afaa6f02-ef9b-45d7-967a-fb0204e04c33", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:25:09.255069Z", + "iopub.status.busy": "2024-09-10T23:25:09.254817Z", + "iopub.status.idle": "2024-09-10T23:25:09.257627Z", + "shell.execute_reply": "2024-09-10T23:25:09.257225Z", + "shell.execute_reply.started": "2024-09-10T23:25:09.255056Z" + } + }, + "outputs": [], + "source": [ + "dataset_factory = OptimizationDatasetFactory()\n", + "provenance = dataset_factory.provenance(ToolkitRegistry([OpenEyeToolkitWrapper]))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "38e4fa20-357a-44f2-a177-abda9ceafe29", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:25:09.258644Z", + "iopub.status.busy": "2024-09-10T23:25:09.258463Z", + "iopub.status.idle": "2024-09-10T23:25:09.263729Z", + "shell.execute_reply": "2024-09-10T23:25:09.263273Z", + "shell.execute_reply.started": "2024-09-10T23:25:09.258631Z" + } + }, + "outputs": [], + "source": [ + "dataset = OptimizationDataset(\n", + " dataset_name=\"OpenFF Iodine Fragment Opt v1.0\",\n", + " dataset_tagline=\"B3LYP-D3BJ/DZVP optimized conformers for a variety of I-containing fragment molecules\", # add method\n", + " description=(\n", + " \"A dataset containing fragments of molecules from the \"\n", + " \"Zinc, Enamine 10240, Enamine 50240, and CHEMBL datasets optimized at the B3LYP-D3BJ/DZVP level of theory. \"\n", + " \"Molecules containing I were fragmented into small fragments. \"\n", + " \"Fragments containing I then had protomers enumerated.\\n\\n\"\n", + " \"For each resulting molecule, a set of up to 5 conformers were generated by:\\n\"\n", + " \" * generating a set of up to 1000 conformers with a RMS cutoff of 0.5 Å \"\n", + " \"using the OpenEye backend of the OpenFF toolkit\\n\"\n", + " \" * applying ELF conformer selection (max 5 conformers) using OpenEye\\n\\n\"\n", + " ),\n", + " provenance=provenance\n", + ")\n", + "dataset.metadata.submitter = \"amcisaac\"\n", + "dataset.metadata.long_description_url = (\n", + " \"https://github.com/openforcefield/qca-dataset-submission/tree/master/\"\n", + " \"submissions/\"\n", + " \"2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0\"\n", + " )\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a8757cdb-0c3e-4560-b4fa-59c03366a2c0", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:25:09.264527Z", + "iopub.status.busy": "2024-09-10T23:25:09.264388Z", + "iopub.status.idle": "2024-09-10T23:25:09.267468Z", + "shell.execute_reply": "2024-09-10T23:25:09.267015Z", + "shell.execute_reply.started": "2024-09-10T23:25:09.264514Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'default': QCSpec(method='B3LYP-D3BJ', basis='DZVP', program='psi4', spec_name='default', spec_description='Standard OpenFF optimization quantum chemistry specification.', store_wavefunction=, implicit_solvent=None, maxiter=200, scf_properties=[, , , ], keywords={})}\n" + ] + } + ], + "source": [ + "print(dataset.qc_specifications)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "f95c526d-634e-46ed-8f7f-13cdc70844d5", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:25:09.270235Z", + "iopub.status.busy": "2024-09-10T23:25:09.270031Z", + "iopub.status.idle": "2024-09-10T23:25:09.272542Z", + "shell.execute_reply": "2024-09-10T23:25:09.272199Z", + "shell.execute_reply.started": "2024-09-10T23:25:09.270220Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A dataset containing fragments of molecules from the Zinc, Enamine 10240, Enamine 50240, and CHEMBL datasets optimized at the B3LYP-D3BJ/DZVP level of theory. Molecules containing I were fragmented into small fragments. Fragments containing I then had protomers enumerated.\n", + "\n", + "For each resulting molecule, a set of up to 5 conformers were generated by:\n", + " * generating a set of up to 1000 conformers with a RMS cutoff of 0.5 Å using the OpenEye backend of the OpenFF toolkit\n", + " * applying ELF conformer selection (max 5 conformers) using OpenEye\n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(dataset.description)" + ] + }, + { + "cell_type": "markdown", + "id": "e8139334-9894-4e0b-b9b2-40d039ddf9ae", + "metadata": {}, + "source": [ + "# Generate conformers" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "a398badb-2831-4652-85ee-c41addf81619", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:25:09.273432Z", + "iopub.status.busy": "2024-09-10T23:25:09.273206Z", + "iopub.status.idle": "2024-09-10T23:25:09.276889Z", + "shell.execute_reply": "2024-09-10T23:25:09.276388Z", + "shell.execute_reply.started": "2024-09-10T23:25:09.273419Z" + } + }, + "outputs": [], + "source": [ + "with open(\"enumerated.smi\", \"r\") as f:\n", + " smiles = [x.strip() for x in f.readlines()]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "b85c5e9f-4051-4151-bf0f-e8618f568c06", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:25:09.277653Z", + "iopub.status.busy": "2024-09-10T23:25:09.277508Z", + "iopub.status.idle": "2024-09-10T23:25:09.281154Z", + "shell.execute_reply": "2024-09-10T23:25:09.280678Z", + "shell.execute_reply.started": "2024-09-10T23:25:09.277641Z" + } + }, + "outputs": [], + "source": [ + "# Taken from the multi-Br optimization submission\n", + "def generate_conformers(smiles: str) -> Molecule:\n", + " wrapper = OpenEyeToolkitWrapper()\n", + " \n", + " mol = Molecule.from_smiles(\n", + " smiles,\n", + " allow_undefined_stereo=True,\n", + " toolkit_registry=wrapper,\n", + " )\n", + " # generate max 1000 conformers with OpenEye\n", + " mol.generate_conformers(\n", + " n_conformers=1000,\n", + " rms_cutoff=0.5 * unit.angstrom,\n", + " toolkit_registry=wrapper,\n", + " )\n", + " \n", + " # prune based on ELF method, max 5 conformers output\n", + " mol.apply_elf_conformer_selection(\n", + " percentage=2.0,\n", + " limit=5,\n", + " toolkit_registry=wrapper\n", + " )\n", + " \n", + " assert mol.n_conformers > 0\n", + " \n", + " return mol" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "92555fd2-a935-43b5-ac92-26dbdbbf6cdc", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:25:09.282048Z", + "iopub.status.busy": "2024-09-10T23:25:09.281867Z", + "iopub.status.idle": "2024-09-10T23:26:23.736668Z", + "shell.execute_reply": "2024-09-10T23:26:23.736135Z", + "shell.execute_reply.started": "2024-09-10T23:25:09.282034Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "generating conformers: 0%| | 1/526 [00:01<11:40, 1.33s/it]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 4%|██▍ | 23/526 [00:04<01:03, 7.87it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 5%|██▌ | 24/526 [00:04<01:08, 7.37it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 6%|███▎ | 32/526 [00:05<01:04, 7.66it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 11%|██████ | 58/526 [00:08<01:01, 7.63it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 17%|█████████▌ | 92/526 [00:13<00:59, 7.32it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 23%|████████████▋ | 123/526 [00:17<00:51, 7.78it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 27%|██████████████▎ | 140/526 [00:19<00:51, 7.50it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 32%|█████████████████▏ | 168/526 [00:23<00:48, 7.45it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 37%|███████████████████▋ | 192/526 [00:27<00:50, 6.63it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 61%|█████████████████████████████████ | 322/526 [00:45<00:29, 6.92it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 72%|██████████████████████████████████████▉ | 379/526 [00:53<00:19, 7.44it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 72%|███████████████████████████████████████ | 380/526 [00:53<00:19, 7.41it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 73%|███████████████████████████████████████▏ | 382/526 [00:53<00:19, 7.38it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 75%|████████████████████████████████████████▌ | 395/526 [00:55<00:18, 7.14it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 75%|████████████████████████████████████████▋ | 396/526 [00:55<00:18, 7.11it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 77%|█████████████████████████████████████████▌ | 405/526 [00:56<00:17, 7.01it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 79%|██████████████████████████████████████████▌ | 414/526 [00:58<00:15, 7.06it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 87%|██████████████████████████████████████████████▋ | 455/526 [01:03<00:10, 7.06it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 88%|███████████████████████████████████████████████▎ | 461/526 [01:04<00:09, 7.09it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 89%|███████████████████████████████████████████████▊ | 466/526 [01:05<00:08, 7.23it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 89%|███████████████████████████████████████████████▉ | 467/526 [01:05<00:08, 6.82it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 89%|████████████████████████████████████████████████▏ | 469/526 [01:05<00:08, 6.71it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 92%|█████████████████████████████████████████████████▊ | 485/526 [01:08<00:06, 6.78it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 92%|█████████████████████████████████████████████████▉ | 486/526 [01:08<00:06, 6.56it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 94%|██████████████████████████████████████████████████▌ | 492/526 [01:09<00:04, 7.07it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 94%|██████████████████████████████████████████████████▊ | 495/526 [01:09<00:04, 6.80it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 94%|██████████████████████████████████████████████████▉ | 496/526 [01:10<00:05, 5.19it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 100%|█████████████████████████████████████████████████████▉| 525/526 [01:14<00:00, 7.11it/s]Warning: : Failed due to unspecified stereochemistry\n", + "generating conformers: 100%|██████████████████████████████████████████████████████| 526/526 [01:14<00:00, 7.07it/s]\n" + ] + } + ], + "source": [ + "for smi in tqdm.tqdm(smiles, desc=\"generating conformers\"):\n", + " mol = generate_conformers(smi)\n", + " dataset.add_molecule(\n", + " dataset_factory.create_index(molecule=mol),\n", + " mol\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "9d231cc1-7244-4a6a-bf66-e10cb0599b11", + "metadata": {}, + "source": [ + "# Exporting dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "845d69f3-b940-4a73-9c54-43996ec6770f", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:26:23.737667Z", + "iopub.status.busy": "2024-09-10T23:26:23.737476Z", + "iopub.status.idle": "2024-09-10T23:26:25.308064Z", + "shell.execute_reply": "2024-09-10T23:26:25.307655Z", + "shell.execute_reply.started": "2024-09-10T23:26:23.737650Z" + } + }, + "outputs": [], + "source": [ + "dataset.export_dataset(\"dataset.json.bz2\")\n", + "dataset.molecules_to_file('dataset.smi', 'smi')\n", + "dataset.visualize(\"dataset.pdf\", columns=8)\n" + ] + }, + { + "cell_type": "markdown", + "id": "9a657203-5a63-4b9b-a29b-20293026aa2e", + "metadata": {}, + "source": [ + "# Dataset information" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "38e6f7ba-3f64-4ef4-aa97-fa5c405e180e", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:26:25.308871Z", + "iopub.status.busy": "2024-09-10T23:26:25.308738Z", + "iopub.status.idle": "2024-09-10T23:26:25.660037Z", + "shell.execute_reply": "2024-09-10T23:26:25.659632Z", + "shell.execute_reply.started": "2024-09-10T23:26:25.308856Z" + } + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "from collections import Counter\n", + "from matplotlib import pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "d1014446-cfeb-43b0-b30b-0b7147ac1ef1", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:26:25.661039Z", + "iopub.status.busy": "2024-09-10T23:26:25.660692Z", + "iopub.status.idle": "2024-09-10T23:26:27.723170Z", + "shell.execute_reply": "2024-09-10T23:26:27.722787Z", + "shell.execute_reply.started": "2024-09-10T23:26:25.661024Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "* Number of unique molecules: 526\n", + "* Number of conformers: 531\n", + "* Number of conformers per molecule (min, mean, max): 1, 1.01, 5\n", + "* Molecular weight (min, mean, max): (155.97, 242.52, 316.94)\n", + "* Charges: [-1.0, 0.0, 1.0, 2.0]\n" + ] + } + ], + "source": [ + "confs = np.array([len(mol.conformers) for mol in dataset.molecules])\n", + "\n", + "print(\"* Number of unique molecules:\", dataset.n_molecules)\n", + "print(\"* Number of conformers:\", sum(confs))\n", + "print(\"* Number of conformers per molecule (min, mean, max): \"\n", + " f\"{confs.min()}, {confs.mean():.2f}, {confs.max()}\")\n", + "\n", + "masses = [\n", + " [\n", + " sum([atom.mass.m for atom in molecule.atoms])\n", + " for molecule in dataset.molecules\n", + " ]\n", + "]\n", + "print(f'* Molecular weight (min, mean, max): ({np.min(np.array(masses)):.2f}, {np.mean(np.array(masses)):.2f}, {np.max(np.array(masses)):.2f})')\n", + "print(\"* Charges:\", sorted(set(m.total_charge.m for m in dataset.molecules)))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "4d1e2b6e-8b55-4dfe-802a-04ba522f3a56", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:26:27.725239Z", + "iopub.status.busy": "2024-09-10T23:26:27.725115Z", + "iopub.status.idle": "2024-09-10T23:26:27.728651Z", + "shell.execute_reply": "2024-09-10T23:26:27.728242Z", + "shell.execute_reply.started": "2024-09-10T23:26:27.725226Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "## Metadata\n", + "* Elements: {S, C, N, F, I, Cl, H, O, Br}\n", + "* Spec: default\n", + "\t* basis: DZVP\n", + "\t* implicit_solvent: None\n", + "\t* keywords: {}\n", + "\t* maxiter: 200\n", + "\t* method: B3LYP-D3BJ\n", + "\t* program: psi4\n", + "\t* SCF properties:\n", + "\t\t* dipole\n", + "\t\t* quadrupole\n", + "\t\t* wiberg_lowdin_indices\n", + "\t\t* mayer_indices\n" + ] + } + ], + "source": [ + "print(\"## Metadata\")\n", + "print(f\"* Elements: {{{', '.join(dataset.metadata.dict()['elements'])}}}\")\n", + "\n", + "def print_field(od, field): print(f\"\\t* {field}: {od[field]}\")\n", + "\n", + "fields = [\"basis\", \"implicit_solvent\", \"keywords\", \"maxiter\", \"method\", \"program\"]\n", + "for spec, obj in dataset.qc_specifications.items():\n", + " od = obj.dict()\n", + " print(\"* Spec:\", spec)\n", + " for field in fields:\n", + " print_field(od, field)\n", + " print(\"\\t* SCF properties:\")\n", + " for field in od[\"scf_properties\"]:\n", + " print(f\"\\t\\t* {field}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "5f6afdb8-888e-43a4-ad91-7dde944f29d6", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:26:27.729352Z", + "iopub.status.busy": "2024-09-10T23:26:27.729230Z", + "iopub.status.idle": "2024-09-10T23:26:27.818848Z", + "shell.execute_reply": "2024-09-10T23:26:27.818451Z", + "shell.execute_reply.started": "2024-09-10T23:26:27.729339Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.hist(masses)\n", + "plt.ylabel('Count')\n", + "plt.xlabel('MW (Da)')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "0b0f710b-4030-4ef3-837d-bf82bef21e39", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:26:27.819562Z", + "iopub.status.busy": "2024-09-10T23:26:27.819436Z", + "iopub.status.idle": "2024-09-10T23:26:28.431074Z", + "shell.execute_reply": "2024-09-10T23:26:28.430690Z", + "shell.execute_reply.started": "2024-09-10T23:26:27.819550Z" + } + }, + "outputs": [], + "source": [ + "all_atoms = [atom.symbol\n", + " for mol in dataset.molecules\n", + " for atom in mol.atoms]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "ab21f263-b5fc-4a3d-b1be-c47156477f6f", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:26:28.431857Z", + "iopub.status.busy": "2024-09-10T23:26:28.431716Z", + "iopub.status.idle": "2024-09-10T23:26:28.511867Z", + "shell.execute_reply": "2024-09-10T23:26:28.511497Z", + "shell.execute_reply.started": "2024-09-10T23:26:28.431844Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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rdZWPGPpyy+/VGv/888/RVBQkHB0dBQmJibC2dlZdO7cWaxYsULuUzzL7I8//lD7bPEMsCeXJkhKShLdu3cX1tbW8lR3IYT46quvRNu2bUX16tWFqampqFmzphg+fLhISkp67u+x+Bg//vhjqdsPHz4sevXqJezs7ISJiYlwc3MTvXr1UutfPMssLi5O9O7dW1hZWQlra2vxzjvviNu3b6vt71m/UyGEuHPnjggJCRGenp7CxMRE2NnZiRYtWojPPvtMZGdnCyGEWLdunejUqZNwcnISpqamwtXVVQQFBYmzZ88q3tez/p0JUfJ7mJeXJ95//33h4OAgJEkSAERiYqK8/bvvvhOtW7cWlpaWwsLCQtSuXVsMHjxYnDp1Su5TVFQk5syZI9zd3YWpqalo3Lix2LlzZ6nfUSKlJCGE0E8pRkREwOOFGadPn447d+6U6Z4yItI8TrsnIiIig8eCiIiIiAweL5kRERGRweMIERERERk8FkRERERk8FgQERERkcHjwoxlVFRUhH/++QfW1talLptPRERErx4hBO7fvw9XV1dUqfLscSAWRGX0zz//lOsRCURERKR/ycnJz11hnQVRGRU/sDI5ORk2NjZ6TkNERERlkZWVBXd39xc+eJoFURkVXyazsbFhQURERFTBvOh2F95UTURERAaPBREREREZPBZEREREZPBYEBEREZHBY0FEREREBo8FERERERk8FkRERERk8FgQERERkcFjQUREREQGjwURERERGTwWRERERGTwWBARERGRwWNBRERERAaPBREREREZPGN9B6DKp9bkX/Qd4YWS5vbSdwQiInqF6HWEaPny5WjcuDFsbGxgY2MDX19f/Prrr/J2IQTCw8Ph6uoKCwsLdOzYERcuXFDbR15eHsaMGYPq1avD0tISgYGBuHnzplqf9PR0BAcHQ6VSQaVSITg4GBkZGbo4RSIiIqoA9FoQ1ahRA3PnzsWpU6dw6tQpdO7cGW+++aZc9MyfPx8LFy7E0qVL8ccff8DZ2RndunXD/fv35X2EhoZi27Zt2LJlC44cOYLs7GwEBASgsLBQ7jNw4EDEx8cjOjoa0dHRiI+PR3BwsM7Pl4iIiF5NkhBC6DvEk+zs7PDll1/ivffeg6urK0JDQzFp0iQAj0eDnJycMG/ePIwcORKZmZlwcHDAhg0bMGDAAADAP//8A3d3d+zevRt+fn5ISEhAo0aNcPz4cbRu3RoAcPz4cfj6+uLSpUuoX79+mXJlZWVBpVIhMzMTNjY22jn5SoKXzIiI6FVR1r/fr8xN1YWFhdiyZQtycnLg6+uLxMREpKamonv37nIfMzMzdOjQAceOHQMAxMXFoaCgQK2Pq6srvL295T6xsbFQqVRyMQQAbdq0gUqlkvuUJi8vD1lZWWovIiIiqpz0XhCdO3cOVlZWMDMzw4cffoht27ahUaNGSE1NBQA4OTmp9XdycpK3paamwtTUFLa2ts/t4+joWOK4jo6Ocp/SzJkzR77nSKVSwd3d/aXOk4iIiF5dei+I6tevj/j4eBw/fhwfffQRhgwZgosXL8rbJUlS6y+EKNH2tKf7lNb/RfuZMmUKMjMz5VdycnJZT4mIiIgqGL0XRKampqhTpw5atmyJOXPmoEmTJvjvf/8LZ2dnACgxipOWliaPGjk7OyM/Px/p6enP7XP79u0Sx71z506J0acnmZmZybPfil9ERERUOem9IHqaEAJ5eXnw9PSEs7MzYmJi5G35+fk4fPgw2rZtCwBo0aIFTExM1PqkpKTg/Pnzch9fX19kZmbi5MmTcp8TJ04gMzNT7kNERESGTa8LM3766afw9/eHu7s77t+/jy1btuDQoUOIjo6GJEkIDQ1FREQE6tati7p16yIiIgJVq1bFwIEDAQAqlQrDhw9HWFgY7O3tYWdnhwkTJsDHxwddu3YFADRs2BA9evTAiBEjsHLlSgDABx98gICAgDLPMCMiIqLKTa8F0e3btxEcHIyUlBSoVCo0btwY0dHR6NatGwBg4sSJyM3NxahRo5Ceno7WrVtj7969sLa2lvexaNEiGBsbIygoCLm5uejSpQsiIyNhZGQk99m0aRNCQkLk2WiBgYFYunSpbk+WiIiIXlmv3DpEryquQ1R2XIeIiIheFRVuHSIiIiIifVFcEM2YMQMPHjwo0Z6bm4sZM2ZoJBQRERGRLikuiKZPn47s7OwS7Q8ePMD06dM1EoqIiIhIlxQXRM9a0PDPP/+EnZ2dRkIRERER6VKZZ5nZ2tpCkiRIkoR69eqpFUWFhYXIzs7Ghx9+qJWQRERERNpU5oJo8eLFEELgvffew/Tp06FSqeRtpqamqFWrFnx9fbUSkoiIiEibylwQDRkyBADg6emJdu3awdhYr0sYEREREWmM4nuIOnTogBs3buDzzz/HO++8g7S0NABAdHQ0Lly4oPGARERERNqmuCA6fPgwfHx8cOLECURFRckzzs6ePYtp06ZpPCARERGRtikuiCZPnoxZs2YhJiYGpqamcnunTp0QGxur0XBEREREuqC4IDp37hz69u1bot3BwQF3797VSCgiIiIiXVJcEFWrVg0pKSkl2s+cOQM3NzeNhCIiIiLSJcUF0cCBAzFp0iSkpqZCkiQUFRXh6NGjmDBhAgYPHqyNjERERERapXju/OzZszF06FC4ublBCIFGjRqhsLAQAwcOxOeff66NjEREampN/kXfEV4oaW4vfUcgIgUUF0QmJibYtGkTZs6cidOnT6OoqAjNmjVD3bp1tZGPiIiISOvKvbqil5cXvLy8UFhYiHPnziE9PR22traazEZERESkE4rvIQoNDcWaNWsAPH6GWYcOHdC8eXO4u7vj0KFDms5HREREpHWKC6KffvoJTZo0AQDs3LkT169fx6VLlxAaGorPPvtM4wGJiIiItE1xQfTvv//C2dkZALB7924EBQWhXr16GD58OM6dO6fxgERERETaprggcnJywsWLF1FYWIjo6Gh07doVAPDgwQMYGRlpPCARERGRtim+qXrYsGEICgqCi4sLJElCt27dAAAnTpxAgwYNNB6QiIiISNsUF0Th4eHw9vZGcnIy3n77bZiZmQEAjIyMMHnyZI0HJCIiItK2ck2779+/f4m2IUOGvHQYIiIiIn0oV0GUk5ODw4cP4++//0Z+fr7atpCQEI0EIyIiItIVxQXRmTNn0LNnTzx48AA5OTmws7PDv//+i6pVq8LR0ZEFEREREVU4imeZjRs3Dr1798a9e/dgYWGB48eP48aNG2jRogUWLFigjYxEREREWqW4IIqPj0dYWBiMjIxgZGSEvLw8uLu7Y/78+fj000+1kZGIiIhIqxQXRCYmJpAkCcDjNYn+/vtvAIBKpZJ/JiIiIqpIFN9D1KxZM5w6dQr16tVDp06d8MUXX+Dff//Fhg0b4OPjo42MRERERFqleIQoIiICLi4uAICZM2fC3t4eH330EdLS0rBy5UqNByQiIiLSNsUjRC1btpR/dnBwwO7duzUaiIiIiEjXFI8Qde7cGRkZGSXas7Ky0LlzZ01kIiIiItIpxQXRoUOHSizGCAAPHz7E77//rpFQRERERLpU5ktmZ8+e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SNjY2KBfv37P7RsVFaWRYERERES6UqaCSKVSyfcHqVQqrQYiIiIi0rUyFURr164t9WciIiKiyoD3EBEREZHBY0FEREREBo8FERERERk8FkRERERk8DRSEGVkZGhiN0RERER6obggmjdvHrZu3Sq/DwoKgr29Pdzc3PDnn39qNBwRERGRLiguiFauXAl3d3cAQExMDGJiYvDrr7/C398fn3zyicYDEhEREWmb4meZpaSkyAXRrl27EBQUhO7du6NWrVpo3bq1xgMSERERaZviESJbW1skJycDAKKjo9G1a1cAgBAChYWFmk1HREREpAOKR4j69euHgQMHom7durh79y78/f0BAPHx8ahTp47GAxIRERFpm+KCaNGiRfD09MTff/+N+fPnw8rKCsDjS2mjRo3SeEAiIiIibVNUEBUUFOCDDz7A1KlT4eXlpbYtNDRUk7mIiIiIdEbRPUQmJibYtm2btrIQERER6YXim6r79u2L7du3ayEKERERkX4ovoeoTp06mDlzJo4dO4YWLVrA0tJSbXtISIjGwhERERHpguKCaPXq1ahWrRri4uIQFxentk2SJBZEREREVOEoLogSExO1kYOIiIhIb/i0eyIiIjJ4ikeIAODmzZvYsWMH/v77b+Tn56ttW7hwoUaCEREREemK4oJo//79CAwMhKenJy5fvgxvb28kJSVBCIHmzZtrIyMRERGRVim+ZDZlyhSEhYXh/PnzMDc3x88//4zk5GR06NABb7/9tjYyEhEREWmV4oIoISEBQ4YMAQAYGxsjNzcXVlZWmDFjBubNm6fxgERERETaprggsrS0RF5eHgDA1dUV165dk7f9+++/mktGREREpCOK7yFq06YNjh49ikaNGqFXr14ICwvDuXPnEBUVhTZt2mgjIxEREZFWKS6IFi5ciOzsbABAeHg4srOzsXXrVtSpUweLFi3SeEAiIiIibVNcED35lPuqVati2bJlGg1EREREpGvlWpgxIyMDq1evxpQpU3Dv3j0AwOnTp3Hr1i2NhiMiIiLSBcUjRGfPnkXXrl2hUqmQlJSEESNGwM7ODtu2bcONGzewfv16beQkIiIi0hrFI0Tjx4/H0KFDceXKFZibm8vt/v7++O233zQajoiIiEgXFBdEf/zxB0aOHFmi3c3NDampqRoJRURERKRLigsic3NzZGVllWi/fPkyHBwc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74tvYh4yZAiWL1+Oc+fOYf369cjIyICLiws6deqErVu3wtraWv7MokWLYGxsjKCgIOTm5qJLly6IjIyU1yACgE2bNiEkJESejRYYGIilS5eWOzcRERFVLpIQQij5QGFhISIiIrBixQrcvn0bf/31F7y8vDB16lTUqlULw4cP11ZWvcrKyoJKpUJmZiZsbGz0HeeVVmvyL/qO8EJJc3vpOwK9BH7HiKisyvr3W/E6RLNnz0ZkZCTmz5+vtmq0j48PVq9eXb60RERERHqkuCBav349Vq1ahUGDBqldlmrcuDEuXbqk0XBEREREuqC4ILp161apaxAVFRWhoKBAI6GIiIiIdElxQfTaa6/h999/L9H+448/olmzZhoJRURERKRLimeZTZs2DcHBwbh16xaKiooQFRWFy5cvY/369di1a5c2MhIRERFpleIRot69e2Pr1q3YvXs3JEnCF198gYSEBOzcuRPdunXTRkYiIiIirSrXOkR+fn7w8/PTdBYiIiIivVA8QkRERERU2ZRphMjW1va5T4Z/0r17914qEBEREZGulakgWrx4sZZjEBEREelPmQqiIUOGaDsHERERkd6U6x6ia9eu4fPPP8c777yDtLQ0AEB0dDQuXLig0XBEREREuqC4IDp8+DB8fHxw4sQJREVFITs7GwBw9uxZTJs2TeMBiYiIiLRNcUE0efJkzJo1CzExMWoPd+3UqRNiY2M1Go6IiIhIFxQXROfOnUPfvn1LtDs4OODu3bsaCUVERESkS4oLomrVqiElJaVE+5kzZ+Dm5qaRUERERES6pLggGjhwICZNmoTU1FRIkoSioiIcPXoUEyZMwODBg7WRkYiIiEirFBdEs2fPRs2aNeHm5obs7Gw0atQI7du3R9u2bfH5559rIyMRERGRVil+lpmJiQk2bdqEmTNn4vTp0ygqKkKzZs1Qt25dbeQjIiIi0rpyPdwVALy8vODl5aXJLERERER6wYe7EhERkcFjQUREREQGjwURERERGTwWRERERGTwFBdE0dHROHLkiPz+m2++QdOmTTFw4ECkp6drNBwRERGRLiguiD755BNkZWUBePwYj7CwMPTs2RPXr1/H+PHjNR6QiIiISNsUT7tPTExEo0aNAAA///wzAgICEBERgdOnT6Nnz54aD0hERESkbYpHiExNTfHgwQMAwL59+9C9e3cAgJ2d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SEBOTg4AYPr06cjOztZqKCIiIiJdKtMss6ZNm2LYsGF44403IITAggULYGVlVWrfL774QqMBiYiIiLStTAVRZGQkpk2bhl27dkGSJPz6668wNi75UUmSWBARERFRhVOmgqh+/frYsmULAKBKlSrYv39/iYe7EhEREVVUihdmLCoq0kYOIiIiIr1RXBABwLVr17B48WIkJCRAkiQ0bNgQY8eORe3atTWdj4iIiEjrFK9DtGfPHjRq1AgnT55E48aN4e3tjRMnTuC1115DTEyMNjISERERaZXiEaLJkydj3LhxmDt3bon2SZMmoVu3bhoLR0RERKQLiguihIQE/PDDDyXa33vvPSxevFgTmYiIqIKqNfkXfUd4oaS5vfQdgV5Bii+ZOTg4ID4+vkR7fHw8Z54RERFRhaR4hGjEiBH44IMPcP36dbRt2xaSJOHIkSOYN28ewsLCtJGRiIiISKsUF0RTp06FtbU1vvrqK0yZMgUA4OrqivDwcISEhGg8IBEREZG2KS6IJEnCuHHjMG7cONy/fx8AYG1trfFgRERERLpSrnWIirEQIiIiospA8U3VRERERJUNCyIiIiIyeCyIiIiIyOApKogKCgrQqVMn/PXXX9rKQ0RERKRzigoiExMTnD9/HpIkaSsPERERkc4pvmQ2ePBgrFmzRhtZiIiIiPRC8bT7/Px8rF69GjExMWjZsiUsLS3Vti9cuFBj4YiIiIh0QXFBdP78eTRv3hwAStxLxEtpREREVBEpLogOHjyojRxEREREelPuafdXr17Fnj17kJubCwAQQmgsFBEREZEuKS6I7t69iy5duqBevXro2bMnUlJSAADvv/8+n3ZPREREFZLigmjcuHEwMTHB33//japVq8rtAwYMQHR0tEbDEREREemC4nuI9u7diz179qBGjRpq7XXr1sWNGzc0FoyIiIhIVxSPEOXk5KiNDBX7999/YWZmppFQRERERLqkuCBq37491q9fL7+XJAlFRUX48ssv0alTJ42GIyIiItIFxZfMvvzyS3Ts2BGnTp1Cfn4+Jk6ciAsXLuDevXs4evSoNjISERERaZXiEaJGjRrh7NmzaNWqFbp164acnBz069cPZ86cQe3atbWRkYiIiEirFI8QAYCzszOmT5+u6SxEREREelGugig9PR1r1qxBQkICJElCw4YNMWzYMNjZ2Wk6HxEREZHWKb5kdvjwYXh6euLrr79Geno67t27h6+//hqenp44fPiwNjISERERaZXiEaLRo0cjKCgIy5cvh5GREQCgsLAQo0aNwujRo3H+/HmNhyQiIiLSJsUjRNeuXUNYWJhcDAGAkZERxo8fj2vXrmk0HBEREZEuKC6ImjdvjoSEhBLtCQkJaNq0qSYyEREREelUmQqis2fPyq+QkBCMHTsWCxYswJEjR3DkyBEsWLAA48aNQ2hoqEbDhYeHQ5IktZezs7O8XQiB8PBwuLq6wsLCAh07dsSFCxfU9pGXl4cxY8agevXqsLS0RGBgIG7evKnRnERERFSxlekeoqZNm0KSJAgh5LaJEyeW6Ddw4EAMGDBAc+kAvPbaa9i3b5/8/slLdfPnz8fChQsRGRmJevXqYdasWejWrRsuX74Ma2trAEBoaCh27tyJLVu2wN7eHmFhYQgICEBcXJzavoiI9KXW5F/0HeGFkub20ncEIq0qU0GUmJio7RzPZGxsrDYqVEwIgcWLF+Ozzz5Dv379AADr1q2Dk5MTvv/+e4wcORKZmZlYs2YNNmzYgK5duwIANm7cCHd3d+zbtw9+fn46PRciIiJ6NZWpIPLw8NB2jme6cuUKXF1dYWZmhtatWyMiIgJeXl5ITExEamoqunfvLvc1MzNDhw4dcOzYMYwcORJxcXEoKChQ6+Pq6gpvb28cO3bsuQVRXl4e8vLy5PdZWVnaOUEiIiLSu3ItzHjr1i0cPXoUaWlpKCoqUtsWEhKikWAA0Lp1a6xfvx716tXD7du3MWvWLLRt2xYXLlxAamoqAMDJyUntM05OTrhx4wYAIDU1FaamprC1tS3Rp/jzzzJnzhyuxk1ERGQgFBdEa9euxYcffghTU1PY29tDkiR5myRJGi2I/P395Z99fHzg6+uL2rVrY926dWjTpo18zCcJIUq0Pa0sfaZMmYLx48fL77OysuDu7q70FIiIiKgCUDzt/osvvsAXX3yBzMxMJCUlITExUX5dv35dGxlllpaW8PHxwZUrV+T7ip4e6UlLS5NHjZydnZGfn4/09PRn9nkWMzMz2NjYqL2IiIioclJcED148AD/93//hypVFH/0peXl5SEhIQEuLi7w9PSEs7MzYmJi5O35+fk4fPgw2rZtCwBo0aIFTExM1PqkpKTg/Pnzch8iIiIixVXN8OHD8eOPP2ojSwkTJkzA4cOHkZiYiBMnTqB///7IysrCkCFDIEkSQkNDERERgW3btuH8+fMYOnQoqlatioEDBwIAVCoVhg8fjrCwMOzfvx9nzpzBu+++Cx8fH3nWGREREZHie4jmzJmDgIAAREdHw8fHByYmJmrbFy5cqLFwN2/exDvvvIN///0XDg4OaNOmDY4fPy7Peps4cSJyc3MxatQopKeno3Xr1ti7d6+8BhEALFq0CMbGxggKCkJubi66dOmCyMhIrkFEREREMsUFUUREBPbs2YP69esDQImbqjVpy5Ytz90uSRLCw8MRHh7+zD7m5uZYsmQJlixZotFsREREVHkoLogWLlyI7777DkOHDtVCHCIiIiLdU3wPkZmZGdq1a6eNLERERER6obggGjt2LC8/ERERUaWi+JLZyZMnceDAAezatQuvvfZaiZuqo6KiNBaOiIiISBcUF0TVqlWTH6ZKREREVBmU69EdRERERJWJ7pebJiIiInrFKB4h8vT0fO56Q9p+nhkRERGRpikuiEJDQ9XeFxQU4MyZM4iOjsYnn3yiqVxEREREOqO4IBo7dmyp7d988w1OnTr10oGIiIiIdE1j9xD5+/vj559/1tTuiIiIiHRGYwXRTz/9BDs7O03tjoiIiEhnFF8ya9asmdpN1UIIpKam4s6dO1i2bJlGwxERERHpguKCqE+fPmrvq1SpAgcHB3Ts2BENGjTQVC4iIiK9qjX5F31HeKGkub30HaHSUFwQTZs2TRs5iIiIiPSGCzMSERGRwSvzCFGVKlWeuyAjAEiShEePHr10KCIiIiJdKnNBtG3btmduO3bsGJYsWQIhhEZCEREREelSmQuiN998s0TbpUuXMGXKFOzcuRODBg3CzJkzNRqOiIiISBfKdQ/RP//8gxEjRqBx48Z49OgR4uPjsW7dOtSsWVPT+YiIiIi0TlFBlJmZiUmTJqFOnTq4cOEC9u/fj507d8Lb21tb+YiIiIi0rsyXzObPn4958+bB2dkZmzdvLvUSGhEREVFFVOaCaPLkybCwsECdOnWwbt06rFu3rtR+UVFRGgtHREREpAtlLogGDx78wmn3RERERBVRmQuiyMhILcYgIiIi0h+uVE1EREQGjwURERERGTwWRERERGTwWBARERGRwWNBRERERAaPBREREREZPBZEREREZPBYEBEREZHBY0FEREREBo8FERER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dOjKcA5Er4K5c+di586dOHbsmL6jKGZvb49u3bph2bJlJf57nJqaik2bNmHAgAEVaoSoNI0aNSr1v3MVDQuiSiAvLw+pqalITU1FQkICxowZg+zsbPTu3Vvf0cpt2bJlKCwsRKtWrfDzzz/jypUrSEhIwNdffw1fX199xyuTynAORPrm4+ODQYMGYcmSJfqOUi5Lly5FXl4e/Pz88NtvvyE5ORnR0dHo1q0b3NzcMHv2bH1HLLO7d++ic+fO2LhxI86ePYvExET8+OOPmD9/Pt588019x3tpnHZfCURHR8uXLKytrdGgQQP8+OOP6NixI5KSkvQbrpw8PT1x+vRpzJ49G2FhYUhJSYGDgwNatGhRYaaoVoZzIHoVzJw5Ez/88IO+Y5RL3bp1cerUKYSHh2PAgAG4e/cunJ2d0adPH0ybNg12dnb6jlhmVlZWaN26NRYtWoRr166hoKAA7u7uGDFiRIW9rPkkSVSU+X5EREREWsJLZkRERGTwWBARERGRwWNBRERERAaPBREREREZPBZEREREZPBYEBEREZHBY0FEREREBo8FERERERk8FkRERERk8FgQERERkcFjQUREREQG7/8DF1BAm93XsAgAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "all_atoms_labels, all_atoms_counts = np.unique(all_atoms,return_counts=True)\n", + "plt.plot()\n", + "plt.bar(all_atoms_labels,all_atoms_counts)\n", + "plt.ylabel('Number of times element appears in dataset')\n", + "plt.title('Total elements represented')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "fbab3f42-d451-44b9-85b1-effdcc727857", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:26:28.512712Z", + "iopub.status.busy": "2024-09-10T23:26:28.512574Z", + "iopub.status.idle": "2024-09-10T23:26:29.186604Z", + "shell.execute_reply": "2024-09-10T23:26:29.186169Z", + "shell.execute_reply.started": "2024-09-10T23:26:28.512698Z" + } + }, + "outputs": [], + "source": [ + "atoms = []\n", + "for mol in dataset.molecules:\n", + " atoms.extend(np.unique([atom.symbol for atom in mol.atoms]))" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "b1a71a11-34ef-4a89-81b2-b3a5ad758ccb", + "metadata": { + "execution": { + "iopub.execute_input": "2024-09-10T23:26:29.187210Z", + "iopub.status.busy": "2024-09-10T23:26:29.187092Z", + "iopub.status.idle": "2024-09-10T23:26:29.256076Z", + "shell.execute_reply": "2024-09-10T23:26:29.255729Z", + "shell.execute_reply.started": "2024-09-10T23:26:29.187197Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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tav8/f2dv5dnn31Wqamp1zyMlPt6K5+jXr16qVy5//vPT+5nNPew0uXjx44du2aG/JQrV06PPPKI1qxZ41zHjz/+qPj4eI0YMUIOh8Nl/oABA+Tj4+N87ufnp759++rTTz9Vdna25d8xSg/KDkoFh8Oh+++/X8uWLdPChQvVqFEjdezYMd+5qampCg4OzvMPVY0aNVS+fHmlpqZe8X1+/fVX7du3T56eni4PPz8/GWN08uRJSdJvv/0mDw8PBQcH27eRl+WQpLFjx+bJMmLECElyZnnppZf05JNP6sMPP1Tnzp0VEBCg/v3764cffrjqe/z222+qXbv2Veekpqbme9VSSEiIc/mfBQYGujzPPQm4IAXs2LFj6tixo37++We9+OKL+uyzz7Rr1y7nuQ4FWcfl75+bwa7XpqamKigoKM+8/MYul5qaqkuXLmnevHl5fqe9evWS9H+/0/fff18DBw5UrVq1tGzZMn3++efOgn/x4kXnOq18Dgv7s9m5c6e6d+8uSXrttde0fft27dq1SxMnTpRUsN+L1c9RQECAy3MvL6+rjv/5Z2LVsGHD5Ovrq4ULF0r647wxX1/ffP9nKr+fc3BwsDIzM3X+/HlLv2OULuVLOgCQKzo6Ws8++6wWLlyoqVOnXnFeYGCgvvzySxljXApPSkqKLl26pGrVql3xtdWqVZOvr+8VT9zMfW316tWVnZ2t5OTkq17C7O3tne9J0VcrXH9+nwkTJmjAgAH5zrnuuuskSRUrVtTkyZM1efJk/frrr869PH379tV///vfK75H9erVdeLEiavmCAwMVFJSUp7xX375xSWnHT788ENduHBB77//vkJDQ53je/fute09iiowMNDl5O1cycnJ13xt1apV5eHhoSFDhlxxT0xYWJgkadmyZQoLC9PKlStdPsOXf5YK+jksihUrVsjT01Nr1qxx2avx4YcfFngdf+XnyCp/f38NHTpUr7/+usaOHas333xTgwcPVpUqVfLMze/3nJycLC8vL1WqVEmenp4F/h2jdGHPDkqNWrVq6YknnlDfvn01dOjQK87r0qWLzp8/n+cf46VLlzqXX0mfPn30448/KjAwUG3atMnzyL26pGfPnpKkBQsWXDVzvXr1tG/fPpexTZs26fz581d93XXXXafw8HB98803+eZo06ZNvt8vFBQUpOjoaN1zzz367rvv9Pvvv1/xPXr27KnNmzc7D4flp0uXLvr222/19ddfu4wvXbpUDodDnTt3vup25OdKe3ty/6P+50vCjTF67bXXLL9HcenUqZMOHDigb7/91mV8xYoV13xthQoV1LlzZ+3Zs0fNmzfP93eau/fF4XDIy8vLpegkJyfnuRqroJ/DonA4HCpfvrzL4cn09HS99dZbeeZeaU9RcXyOrLjWHsbHHntMJ0+e1J133qkzZ87okUceyXfe+++/77IX6dy5c1q9erU6duwoDw8PS79jlC7s2UGpMmPGjGvOue+++/Tyyy9r6NChOnLkiCIjI7Vt2zZNmzZNvXr1UteuXa/42piYGL333nu65ZZbNGrUKDVv3lw5OTk6duyY1q9frzFjxqhdu3bq2LGjhgwZoueff16//vqr+vTpI29vb+3Zs0cVKlTQo48+KkkaMmSInnnmGT377LPq1KmTvv32W82fP1/+/v7X3I5//etf6tmzp3r06KHo6GjVqlVLp06d0qFDh/T111/r3XfflSS1a9dOffr0UfPmzVW1alUdOnRIb731ltq3b68KFSpccf1TpkzR2rVrdcstt+ipp55SZGSkzpw5o/j4eI0ePVqNGzfWqFGjtHTpUvXu3VtTpkxRaGioPv74Y73yyiv6xz/+oUaNGl1zOy4XGRkpSZo5c6Z69uwpDw8PNW/eXN26dZOXl5fuuecejRs3ThcvXtSCBQt0+vRpy+9RXGJiYvTGG2+oZ8+emjJlioKCgrR8+XLnHrQ/n2eSnxdffFE333yzOnbsqH/84x+qV6+ezp07p8OHD2v16tXOc1f69Omj999/XyNGjNCdd96p48eP67nnnlPNmjVdDk8W9HNYFL1791ZcXJwGDx6shx56SKmpqfrnP/+Z7/cURUZGasWKFVq5cqXq168vHx8fRUZGFsvnyIorfeZyD4M1atRIt912m9auXaubb75ZLVq0yHc9Hh4e6tatm0aPHq2cnBzNnDlTaWlpLl9YWNDfMUqZEj09Gv/T/nw11tXkdwVIamqq+fvf/25q1qxpypcvb0JDQ82ECROclzjnuvyqKGOMOX/+vHn66afNddddZ7y8vJyXkY4aNcokJyc752VnZ5s5c+aYiIgI57z27dub1atXO+dkZGSYcePGmTp16hhfX1/TqVMns3fv3gJdjWWMMd98840ZOHCgqVGjhvH09DTB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pcWMGTO0evVq7dixo6SjWBIYGKhu3brplVdeyfPvcXJysv79739r0KBBZWrPTn6aNm2a779zZQ1lp5TLyMhQcnKykpOTdejQIT366KM6f/68+vbtW9LRCu2VV15Rdna22rZtq/fee08//PCDDh06pJdeeknt27cv6XgF4g7bAJQGkZGRuvfeezVv3rySjmLZ/PnzlZGRoR49eujTTz/V8ePHFR8fr27duqlWrVqaOnVqSUcssNTUVN16661atmyZ9u3bp8TERL377ruaNWuW/va3v5V0vCLj0vNSLj4+3nkYwc/PT40bN9a7776rqKgoHTlypGTDFVJYWJi+/vprTZ06VWPGjFFSUpKqV6+u1q1bl5nLNN1hG4DS4rnnntM777xT0jEsCw8P11dffaXY2FgNGjRIqampCg4OVv/+/TVp0iQFBASUdMQCq1Spktq1a6c5c+boxx9/VFZWlurUqaMHH3ywTB5mvJzDlJXr4gAAAAqBw1gAAMCtUXYAAIBbo+wAAAC3RtkBAABujbIDAADcGmUHAAC4NcoOAABwa5QdAADg1ig7AADArVF2AACAW6PsAAAAt/b/AZicQgmwMjLWAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "atoms_labels,atoms_counts = np.unique(atoms,return_counts=True)\n", + "\n", + "plt.plot()\n", + "plt.bar(atoms_labels,atoms_counts)\n", + "plt.ylabel('Number of molecules with this element')\n", + "plt.title(\"Molecules containing each atom type\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25101e66-af8a-4064-9e0c-d1c7f6bc7266", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.19" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/input-environment.yaml b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/input-environment.yaml new file mode 100644 index 00000000..9f1a452c --- /dev/null +++ b/submissions/2024-09-10-OpenFF-Iodine-Fragment-Opt-v1.0/input-environment.yaml @@ -0,0 +1,39 @@ +name: i-frag-submit +channels: + - conda-forge + - openeye +dependencies: + - python + - pip + - click + - openff-toolkit + - openff-qcsubmit + - openmmforcefields + - openeye::openeye-toolkits + - openff-interchange-base + - qcportal + - jupyter + - seaborn + - pandas + - pydantic =2 + - ipython + - ipdb + - pre-commit + - rich + - pytest + - pytest-cov + - pytest-xdist + - pytest-randomly + - pytest-timeout + - smirnoff-plugins + - tqdm + - openmm + - ambertools + - qubekit + - ndcctools + - cmiles + - black + - isort + - flake8 + - mamba + - nglview