-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathani-surrogate.yaml
131 lines (120 loc) · 3.47 KB
/
ani-surrogate.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Copyright IBM Inc. 2015, 2019. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
# Author(s):
# James McDonagh
# Michael Johnston
# Vassilis Vassiliadis
platforms:
- default
- openshift
- openshift-kubeflux
blueprint:
openshift-kubeflux:
global:
resourceManager:
kubernetes:
podSpec:
schedulerName: kubeflux
environments:
# Platforms that do not override the environments, use the ones that default defines
default:
PYTHON: {}
components:
## This gets the row number index to read for each replica
- stage: 0
name: GetMoleculeIndex
command:
arguments: -c \"print(%(startIndex)s + %(replica)s),\"
executable: python
workflowAttributes:
replicate: '%(numberMolecules)s'
## Note row is used to name the output sdf and xyz files used later make the input files. This will give each one a unique name
## over the replicas here
- stage: 0
name: SMILESToXYZ
command:
arguments: --input input_smiles.csv --row GetMoleculeIndex:output
environment: python
executable: bin/rdkit_smiles2coordinates.py
references:
- input/input_smiles.csv:copy
- GetMoleculeIndex:output
resourceManager:
config:
backend: '%(backend)s'
kubernetes:
image: quay.io/st4sd/community-applications/rdkit-st4sd:2019.09.1
## This runs a geometry optimization using ANI
- stage: 0
name: GeometryOptimisationANI
command:
arguments: --xyz_path stage0.SMILESToXYZ:ref -xyz stage0.GetMoleculeIndex:output
--ani_model %(ani-model)s -o bfgs -i %(iterations)s --temperature %(thermo-chem-T)s
--pressure %(thermo-chem-P)s --force_tolerance %(force-tol)s
--outname stage0.GetMoleculeIndex:output
environment: python
executable: bin/optimize_ani.py
references:
- stage0.SMILESToXYZ:ref
- stage0.GetMoleculeIndex:output
workflowAttributes:
shutdownOn:
- KnownIssue
resourceManager:
config:
backend: '%(backend)s'
walltime: "%(ani-walltime)s"
kubernetes:
gracePeriod: "%(ani-grace-period)s"
image: quay.io/st4sd/community-applications/ani-torch-st4sd:2.2.2
resourceRequest:
memory: '%(mem)s'
numberThreads: '%(number-processors)s'
threadsPerCore: 1
- stage: 0
name: XYZToGAMESS
command:
arguments: -xp stage0.GeometryOptimisationANI:ref -xf stage0.GetMoleculeIndex:output
-g input/input_molecule.txt:ref -sp stage0.SMILESToXYZ:ref
-sf stage0.GetMoleculeIndex:output
environment: python
executable: bin/make_gamess_input_from_template_and_xyz.py
references:
- stage0.GeometryOptimisationANI:ref
- input/input_molecule.txt:ref
- stage0.SMILESToXYZ:ref
- stage0.GetMoleculeIndex:output
resourceManager:
config:
backend: '%(backend)s'
kubernetes:
image: quay.io/st4sd/community-applications/rdkit-st4sd:2019.09.1
variables:
default:
global:
mem: '4295000000'
backend: local
number-processors: '1'
startIndex: '0'
numberMolecules: '1'
ani-model: "ani2x"
force-tol: 0.005
iterations: 1000
# For ANI walltime (in minutes), gracePeriod (in seconds) (compatible with k8s backend)
ani-walltime: 700
ani-grace-period: 1800
# For thermochemistry
thermo-chem-T: 298.15
thermo-chem-P: 101325.0
stages:
0:
stage-name: SMILES_to_GAMESS
openshift:
global:
backend: kubernetes
openshift-cpu:
global:
backend: kubernetes
openshift-kubeflux:
global:
backend: kubernetes