質問編集履歴

1

polarpairsの内容を追記しました。

2019/04/05 01:41

投稿

kak
kak

スコア27

test CHANGED
File without changes
test CHANGED
@@ -119,3 +119,139 @@
119
119
  polarcontacts(filenames)をどのようにしたらテキストまたはCSVに保存してPandasで処理できるようにできるでしょうか。
120
120
 
121
121
  初歩的な質問で申し訳ありませんが、お願いします。
122
+
123
+
124
+
125
+ 以下Polarpairsに関しての追記です。
126
+
127
+ 長くなるので省略しましたがご容赦ください。
128
+
129
+ https://pymolwiki.org/index.php/Polarpairs
130
+
131
+ 上記サイトにて得られるモジュールなのですが、
132
+
133
+ Exampleの内容に入力pdbファイル情報やchain選択コマンドなどを加えPolarcontacts.pyとして保存して実行するようにしました。
134
+
135
+ Example内最終行のprint(p, 'Distance: %.2f' % (dist))はprint(p)に変えた出力が上記結果です。
136
+
137
+ 細かく変更したので見落としがあるかもしれません。
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+ ```ここに言語を入力
148
+
149
+ Example
150
+
151
+ pairs = polarpairs('chain A', 'chain B')
152
+
153
+ for p in pairs:
154
+
155
+ dist = cmd.get_distance('(%s`%s)' % p[0], '(%s`%s)' % p[1])
156
+
157
+ print(p, 'Distance: %.2f' % (dist))
158
+
159
+
160
+
161
+
162
+
163
+ The Script
164
+
165
+ '''
166
+
167
+ (c) 2011 Thomas Holder, MPI for Developmental Biology
168
+
169
+ '''
170
+
171
+
172
+
173
+ from pymol import cmd
174
+
175
+
176
+
177
+ def polarpairs(sel1, sel2, cutoff=4.0, angle=63.0, name='', state=1, quiet=1):
178
+
179
+ '''
180
+
181
+ ARGUMENTS
182
+
183
+
184
+
185
+ sel1, sel2 = string: atom selections
186
+
187
+
188
+
189
+ cutoff = float: distance cutoff
190
+
191
+
192
+
193
+ angle = float: h-bond angle cutoff in degrees. If angle="default", take
194
+
195
+ "h_bond_max_angle" setting. If angle=0, do not detect h-bonding.
196
+
197
+
198
+
199
+ name = string: If given, also create a distance object for visual representation
200
+
201
+
202
+
203
+ SEE ALSO
204
+
205
+
206
+
207
+ cmd.find_pairs, cmd.distance
208
+
209
+ '''
210
+
211
+ cutoff = float(cutoff)
212
+
213
+ quiet = int(quiet)
214
+
215
+ state = int(state)
216
+
217
+ if angle == 'default':
218
+
219
+ angle = cmd.get('h_bond_max_angle', cmd.get_object_list(sel1)[0])
220
+
221
+ angle = float(angle)
222
+
223
+ mode = 1 if angle > 0 else 0
224
+
225
+ x = cmd.find_pairs('(%s) and donors' % sel1, '(%s) and acceptors' % sel2,
226
+
227
+ state, state,
228
+
229
+ cutoff=cutoff, mode=mode, angle=angle) + \
230
+
231
+ cmd.find_pairs('(%s) and acceptors' % sel1, '(%s) and donors' % sel2,
232
+
233
+ state, state,
234
+
235
+ cutoff=cutoff, mode=mode, angle=angle)
236
+
237
+ x = sorted(set(x))
238
+
239
+ if not quiet:
240
+
241
+ print('Settings: cutoff=%.1fangstrom angle=%.1fdegree' % (cutoff, angle))
242
+
243
+ print('Found %d polar contacts' % (len(x)))
244
+
245
+ if len(name) > 0:
246
+
247
+ for p in x:
248
+
249
+ cmd.distance(name, '(%s`%s)' % p[0], '(%s`%s)' % p[1])
250
+
251
+ return x
252
+
253
+
254
+
255
+ cmd.extend('polarpairs', polarpairs)
256
+
257
+ ```