質問するログイン新規登録

質問編集履歴

1

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

2019/04/05 01:41

投稿

kak
kak

スコア28

title CHANGED
File without changes
body CHANGED
@@ -58,4 +58,72 @@
58
58
 
59
59
  ```
60
60
  polarcontacts(filenames)をどのようにしたらテキストまたはCSVに保存してPandasで処理できるようにできるでしょうか。
61
- 初歩的な質問で申し訳ありませんが、お願いします。
61
+ 初歩的な質問で申し訳ありませんが、お願いします。
62
+
63
+ 以下Polarpairsに関しての追記です。
64
+ 長くなるので省略しましたがご容赦ください。
65
+ https://pymolwiki.org/index.php/Polarpairs
66
+ 上記サイトにて得られるモジュールなのですが、
67
+ Exampleの内容に入力pdbファイル情報やchain選択コマンドなどを加えPolarcontacts.pyとして保存して実行するようにしました。
68
+ Example内最終行のprint(p, 'Distance: %.2f' % (dist))はprint(p)に変えた出力が上記結果です。
69
+ 細かく変更したので見落としがあるかもしれません。
70
+
71
+
72
+
73
+
74
+ ```ここに言語を入力
75
+ Example
76
+ pairs = polarpairs('chain A', 'chain B')
77
+ for p in pairs:
78
+ dist = cmd.get_distance('(%s`%s)' % p[0], '(%s`%s)' % p[1])
79
+ print(p, 'Distance: %.2f' % (dist))
80
+
81
+
82
+ The Script
83
+ '''
84
+ (c) 2011 Thomas Holder, MPI for Developmental Biology
85
+ '''
86
+
87
+ from pymol import cmd
88
+
89
+ def polarpairs(sel1, sel2, cutoff=4.0, angle=63.0, name='', state=1, quiet=1):
90
+ '''
91
+ ARGUMENTS
92
+
93
+ sel1, sel2 = string: atom selections
94
+
95
+ cutoff = float: distance cutoff
96
+
97
+ angle = float: h-bond angle cutoff in degrees. If angle="default", take
98
+ "h_bond_max_angle" setting. If angle=0, do not detect h-bonding.
99
+
100
+ name = string: If given, also create a distance object for visual representation
101
+
102
+ SEE ALSO
103
+
104
+ cmd.find_pairs, cmd.distance
105
+ '''
106
+ cutoff = float(cutoff)
107
+ quiet = int(quiet)
108
+ state = int(state)
109
+ if angle == 'default':
110
+ angle = cmd.get('h_bond_max_angle', cmd.get_object_list(sel1)[0])
111
+ angle = float(angle)
112
+ mode = 1 if angle > 0 else 0
113
+ x = cmd.find_pairs('(%s) and donors' % sel1, '(%s) and acceptors' % sel2,
114
+ state, state,
115
+ cutoff=cutoff, mode=mode, angle=angle) + \
116
+ cmd.find_pairs('(%s) and acceptors' % sel1, '(%s) and donors' % sel2,
117
+ state, state,
118
+ cutoff=cutoff, mode=mode, angle=angle)
119
+ x = sorted(set(x))
120
+ if not quiet:
121
+ print('Settings: cutoff=%.1fangstrom angle=%.1fdegree' % (cutoff, angle))
122
+ print('Found %d polar contacts' % (len(x)))
123
+ if len(name) > 0:
124
+ for p in x:
125
+ cmd.distance(name, '(%s`%s)' % p[0], '(%s`%s)' % p[1])
126
+ return x
127
+
128
+ cmd.extend('polarpairs', polarpairs)
129
+ ```