Refmac/Cootのtorsion angle restraintとArg問題

monomer libraryとtorsion angle CCP4 monomer libraryにはねじれ角(torsion angle)の理想値・周期・標準偏差が記述されています. 例えばARGの定義は https://github.com/MonomerLibrary/monomers/blob/master/a/ARG.cif にありますが,現時点でのtorsion angle restraintsを眺めてみると,以下のようになっています. ARGの構造と原子名の対応についてはRCSB PDB - ARG Ligand Summary PageでLabelsボタンを押して確認してください. loop_ _chem_comp_tor.comp_id _chem_comp_tor.id _chem_comp_tor.atom_id_1 _chem_comp_tor.atom_id_2 _chem_comp_tor.atom_id_3 _chem_comp_tor.atom_id_4 _chem_comp_tor.value_angle _chem_comp_tor.value_angle_esd _chem_comp_tor.period ARG chi1 N CA CB CG -60.000 10.0 3 ARG chi2 CA CB CG CD 180.000 10.0 3 ARG chi3 CB CG CD NE -60.000 10.0 3 ARG chi4 CG CD NE CZ 180.000 10.0 6 ARG chi5 CD NE CZ NH2 180....

August 24, 2023 · (updated September 11, 2023)

Cootに元素を変更する機能を追加する

とりさんから一年前に約束した当該機能まだですかと聞かれ,全く身に覚えが無かったものの,実装したらDVD買ってあげるということで書きました. Coot 0.9.8.7で動作確認. def change_elem_ext(): def change_elem(atom_spec, elem): imol, chain, resi, ins, name, alt = atom_spec[1:] set_atom_string_attribute(imol, chain, resi, ins, name, alt, "element", elem) def f(elem): add_status_bar_text("Click an atom") user_defined_click(1, lambda x: change_elem(x, elem)) generic_single_entry("Element?", "", "OK", lambda text: f(text)) coot_toolbar_button("Change elem", change_elem_ext, None) 上記pythonコードを適当な名前(.py)で保存して Calculate - Run Script から実行するか,~/.coot-preferences 以下に置いておくと起動時に読まれます. 成功すればtoolbarに"Change elem"のボタンが追加されます. ちなみにこういったスクリプトを書くときにAPIを調べる方法ですが,体系的には把握してないので毎回ソースコードから探してます. Python側で定義されてる場合は.pyのファイルにあるのでそこから探し,今回は見つからなかったので src/coot_wrap_python.cc の方を見てatomでgrepしたらset_atom_attributeを見つけました. これは実数値を変更する関数だったのですが,下の方にset_atom_string_attributeを発見し,attribute_nameとしてelementを受け付けてくれることが分かりました. https://github.com/pemsley/coot/blob/abe4c5d9e372b91ba43d4bd9a7e924042c7f00ff/src/molecule-class-info-other.cc#L550 文字列をユーザに入力させるとか,クリックした原子の情報を取得するとかいった部分は,類似の他の機能のコードを探して真似します. 特に拡張的な機能はたいていpythonで書かれています.

May 30, 2023

Cootを使った核酸モデリングのtips

順次追記予定 注: Coot 0.9.8.92以上 (CCP4 8.0.016以上)を使ってください.0.9.8.6は核酸単体,0.9.8.7-8は核酸-タンパク複合体の精密化に深刻なバグがあります.0.9.8.91でもDNA-SERやDNA-TYRに由来する問題あり. base pair & stacking restraints LIBGを使う CCP4に含まれているプログラムLIBGで作製したrestraintをCootに読ませて使うことができる. LIBGの文献は以下を参照 Brown et al. “Tools for macromolecular model building and refinement into electron cryo-microscopy reconstructions” Acta Cryst. (2015). D71, 136-153 Kovalevskiy et al. “Overview of refinement procedures within REFMAC5: utilizing data from different sources” Acta Cryst. (2018). D74, 215-227 注: mmCIFの読み込みバグがCCP4 8.0.011で修正されているので,当バージョンの使用を推奨. 使い方は libg と打てば表示される.PDBファイルを使う場合は libg -p input.pdb -o libg.txt とするとRefmacのexternal restraintsが記述されたlibg.txtが作られる. 以下は2zm5を使った例 (抜粋): exte dist first chain C resi 23 ins ....

May 12, 2023 · (updated September 11, 2023)