1 # ======================================================================
2 # demo.tcl --
3 #
4 # CCP4Interface
5 #
6 # =======================================================================
7
8 # procedure which is run automatically before drawing the interface
9 # used to set up variables, menus etc
10 #---------------------------------------------------------------------
11 proc demo1_setup { typedefVar arrayname } {
12 #---------------------------------------------------------------------
13 upvar #0 $typedefVar typedef
14 upvar #0 $arrayname array
15
16 # Define the 'refinement type' and 'input phase' menus
17
18 DefineMenu _demo_refine_type [list "full refinement" \
19 "quick refinement" ] \
20 [ list FULL \
21 FAST ]
22
23 DefineMenu _demo_restrain_mode [ list loose medium tight ]
24
25 DefineMenu _demo_input_phase [list "input phases" \
26 "no phase input" ] \
27 [list PHASE \
28 NO ]
29
30 # procedure must return sucess code (1) for drawing task window to continue
31 return 1
32 }
33
34 #---------------------------------------------------------------------
35 proc demo1_run { arrayname } {
36 #---------------------------------------------------------------------
37 # this procedure is run when user clicks the 'Run' button
38 # used to check user input and where necessary convert parameters
39 # to form required by the program run script
40
41 upvar #0 $arrayname array
42
43 #The labin depends on the INPUT_PHASE mode selected by the user
44 #Get the 'alias' for the currently selected value of INPUT_PHASE
45 # and if it matchs "PHASE" then include the phase labels in the labin
46
47 if [regexp PHASE [GetValue $arrayname INPUT_PHASE]] {
48 set array(LABIN) "FP SIGFP PHIB FOMB"
49 } else {
50 set array(LABIN) "FP SIGFP"
51 }
52
53 # procedure must return sucess code (1) for running job to continue
54 return 1
55 }
56
57 #---------------------------------------------------------------------
58 proc demo1_refine_range { arrayname counter } {
59 #---------------------------------------------------------------------
60 #procedure to draw one line of the 'refinement range' extending frame
61 upvar #0 $arrayname array
62
63 CreateLine line \
64 message "Enter range of residues to refine" \
65 label "Use" \
66 widget RESTRAIN_MODE \
67 label "restraints for chain" \
68 widget CHAIN \
69 label "from residue" \
70 widget FIRST_RES \
71 label "to residue" \
72 widget LAST_RES
73
74 }
75
76 # procedure to draw task window
77 #---------------------------------------------------------------------
78 proc demo1_task_window { arrayname } {
79 #---------------------------------------------------------------------
80 upvar #0 $arrayname array
81
82 if { [CreateTaskWindow $arrayname \
83 "Task Interface Demo One" "Demo 1" \
84 [ list "Required Parameters" \
85 "Define Protein Ranges to Refine" \
86 "Crystal Parameters" ] ] == 0 } return
87
88 # Set the name of the CCP4 program help file to use
89 # (set it to refmac because it is most suitable program for this example!)
90 SetProgramHelpFile "refmac"
91
92 #=PROTOCOL==============================================================
93
94 OpenFolder protocol
95
96 CreateTitleLine line TITLE
97
98 CreateLine line \
99 message "Refinement method (REFI TYPE)" \
100 help refi_type \
101 label "Do" \
102 widget REFINE_TYPE \
103 label "using" \
104 widget INPUT_PHASE
105
106 #=FILES================================================================
107
108 OpenFolder file
109
110 CreateInputFileLine line \
111 "Enter input MTZ file name (HKLIN)" \
112 "MTZ in" \
113 HKLIN DIR_HKLIN \
114 -fileout HKLOUT DIR_HKLOUT "_demo" \
115 -setfileparam space_group_name SPACE_GROUP \
116 -setfileparam cell_4 CELL_1 \
117 -setfileparam cell_4 CELL_2 \
118 -setfileparam cell_4 CELL_3 \
119 -setfileparam cell_4 CELL_4 \
120 -setfileparam cell_5 CELL_5 \
121 -setfileparam cell_6 CELL_6 \
122 -setfileparam resolution_min EXCLUDE_RESOLUTION_MIN \
123 -setfileparam resolution_max EXCLUDE_RESOLUTION_MAX
124
125 CreateLabinLine line \
126 "Observed amplitude (FP) and obligatory sigma (SIGFP)" \
127 HKLIN FP FP [list FP F_P] \
128 -sigma Sigma SIGFP [list SIGFP SIGF_P SIGP]
129
130 CreateLabinLine line \
131 "Input phase (PHIB) and figure of merit (FOMB)" \
132 HKLIN PHIB PHIB PHIB \
133 -sigma FOMB FOMB FOMB \
134 -toggle_display INPUT_PHASE open PHASE
135
136 CreateOutputFileLine line \
137 "Output MTZ File" \
138 "MTZ out" \
139 HKLOUT DIR_HKLOUT
140
141 CreateInputFileLine line \
142 "Enter input coordinate file name (XYZIN)" \
143 "PDB in" \
144 XYZIN DIR_XYZIN \
145 -fileout XYZOUT DIR_XYZOUT "_refmac"
146
147 CreateOutputFileLine line \
148 "Output coordinate file" \
149 "PDB out" \
150 XYZOUT DIR_XYZOUT
151
152 #-----------------------------------------------------Required parameters
153
154 OpenFolder 1
155
156 CreateLine line \
157 message "Number of cycles of refinement (NCYC)" \
158 help refi_ncyc \
159 label "Number of refinement cycles" \
160 widget NCYCLES \
161 -width 3
162
163 CreateLine line \
164 message "Apply resolution limits (REFI RESOlution)" \
165 help refi_reso \
166 widget EXCLUDE_RESOLUTION \
167 message "Minimum resolution" \
168 label "Resolution range from minimum" \
169 widget EXCLUDE_RESOLUTION_MIN \
170 message "Maximum resolution" \
171 label " to " \
172 widget EXCLUDE_RESOLUTION_MAX
173
174 #--------------------------------------------------------refinement range
175
176 OpenFolder 2
177
178 CreateExtendingFrame NRANGES demo1_refine_range \
179 "Define range(s) of residue ranges to refine" \
180 "Add Residue Range" \
181 [ list RESTRAIN_MODE \
182 CHAIN \
183 FIRST_RES \
184 LAST_RES ]
185
186
187 #-------------------------------------------------------------cell parameters
188
189 OpenFolder 3 closed
190
191 CreateLine line \
192 message "Space group (default from MTZ) (SYMM)" \
193 label "Space group" \
194 widget SPACE_GROUP
195
196 CreateLine line \
197 message "Cell dimensions (default from MTZ) (CELL)" \
198 label "Cell a" \
199 widget CELL_1 \
200 label "b" \
201 widget CELL_2 \
202 label "c" \
203 widget CELL_3 \
204 label "alpha" \
205 widget CELL_4 \
206 label "beta" \
207 widget CELL_5 \
208 label "gamma" \
209 widget CELL_6
210
211 }
212