CNS Error Tips
CNSではインプットファイルの設定によってはエラーで処理が流れないことがあります。だいたいはちょっとしたことなんですが・・・そんなエラーの対応方法をまとめてみます。
ERROR: There are too many trees.
精密化をしようとすると以下のようなエラーで止まることがあります。
Torsion Topology> end Torsion Dynamics> nstep=0 Torsion Dynamics> cmremove=true Torsion Dynamics> end -------------------------- Torsion Topology ----------------------------------- ERROR: There are too many trees. Please increase MAXTREE and re-run. %TORSION:TOPOLOGY error encountered: Fatal Topology Error (CNS is in mode: SET ABORT=NORMal END) ***************************************************** ABORT mode will terminate program execution. ***************************************************** Program will stop immediately.
解決方法
そんな時はインプットファイル中の以下の部分を修正してみましょう。
{* maximum unbranched chain length *} {* increase for long stretches of polyalanine *} {===>} torsion_maxlength=50; {* maximum number of distinct bodies *} {===>} torsion_maxtree=10; <-- この数値を増やしてみる(50とか) {* maximum number of chains (increase for large molecules) {===>} torsion_maxchain=1000; {* maximum number of bonds to an atom *} {===>} torsion_maxbond=6;
このtorsion_maxtreeを適当に増やせば問題は解消します。
Reference:X-PLOR ML#2162
ERROR: There are no suitable base groups.
トポロジーファイルおよびパラメータファイルを配置しているのにrefine.inpで以下のエラーが出る。
ERROR: There are no suitable base groups. This problem can be caused by isolated bonding networks with undefined or weak dihedral force constants. The atoms that cannot be placed in a tree are listed below: %atoms "T "-1 -TRS -C ...
みたいな。
解決?
CNSBB #170によるとdihedrals関連で出る、というようなことが書いてあります。
it seems to complain about "bonding networks with undefined or weak dihedral force constants". a tris molecule doesn't have any strongly restrained dihedrals, so i would leave it out from the torsion-angle refinement altogether
ってことらしいです。オリジナルメッセージではTrisで出ると書いてありました。私の場合はグルコースで適当に糖を作ったときにgenerate.inpでCarbohydrate linksでB14のパッチを適用後、refine.inpを流したときに出ました。
とりあえず、torsion-angleを外せと書いてあるので、refine.inpのatom selectionセクションで、
{* select atoms to be treated as rigid groups during torsion angle dynamics *} {===>} atom_rigid=(resname GLC);
として、グルコースをrigidにしてみました。でも、これでいいのかはわかりませんが、とりあえず。
CNSBB #172では、
I don't think it makes any sense to refine small molecules with torsion angle dynamics, because the whole molecule may need to move. You could try either omitting the tris, or switch to cartesian dynamics.
って言われてみればそんな気もしますね。
CNS FAQの解決方法
CNSのFAQによると、
Q. I have a ligand molecule in my structure that is a long unbranched chain (HOCH2CH2CH2CH2OH) without any hydrogen atoms included. When I try to run torsion angle dynamics the program stops with an error:
ERROR: There are no suitable base groups. This problem can be caused by isolated bonding networks with undefined or weak dihedral force constants.A. The problem is that the torsion angle algorithm needs to have a rigid group of bonded atoms which contains at least 3 atoms. In the case of the long linear molecule described above there is no such group. The following solutions are possible:
- Only perform energy minimization (this is reasonable if the building of the ligand has been left until the end of crystallographic refinement).
- Keep the ligand as a rigid group during the torsion angle dynamics - this would be appropriate if the ligand had been included early on in the refinement of a crystal structure.
- Include hydrogens for the ligand molecule. This would mean creating a separate PDB/MTF file for the protein (with no hydrogens) and the ligand (with hydrogens) and then merging them prior to use.
っていう風になってます。上の解決方法はここのKeep the ligand as a rigid group during the torsion angle dynamicsにあたるようですね。その他、エネルギー最小化しかしない、水素原子を追加する、の方法があるようです。
%READC-ERR: atom A 2 ILE CD1 not found in molecular structure
generate.inp(refine.inpも同様)でILE残基のCD1をうまく認識しない。
シンプルな問題ですが意外と悩みました・・・
この行がだーっと出ている上の方(かなり前になります)を見ると、
MAPIC: Atom numbers being modified MAPIC: Atom numbers being modified SEGMNT: 722 residues were inserted into segment "A " MAPIC: Atom numbers being modified MAPIC: Atom numbers being modified SEGMNT: 722 residues were inserted into segment "B " MAPIC: Atom numbers being modified MAPIC: Atom numbers being modified SEGMNT: 722 residues were inserted into segment "C " CHAIN> end SEGMENT> if ( &BLANK%ile_CD_becomes = false ) then %SEGMENT-ERR: unrecognized command: if ^^ %SEGMENT-ERR: unrecognized command: if ( ^
こんなエラーが出てると思います。その時はCNSのスクリプトがきちんと動作していません。特に、エラーが出ているのはILEの原子CDをCD1とするよ、っていう部分なのでタチが悪いです。これは、PDBファイルの末尾にENDがないことで起こっているようです。
読み込ませているPDBファイルの最後に
END
を追加してください。
%CHAIN-ERR: unrecognized command
2010-02-23 by どぶお
unrecognized commandエラーには比較的よく遭遇すると思いますが(上の%READC-ERRも同様のエラー)、大体はPDBファイルフォーマットの問題のようです。今回遭遇した問題は「原子の座標がぶっ飛んでる!」でした。例えば入力PDBファイルに以下のような行があると、
ATOM 2438 CD ILE C 71 9997.7009998.064******** 1.00 20.00 C C
refine.inpを流したときに以下のようなエラーが出ました。
%CHAIN-ERR: unrecognized command: ATOM 2438 ^^^^ %CHAIN-ERR: unrecognized command: ATOM 2438 CD ^^ %CHAIN-ERR: unrecognized command: ATOM 2438 CD ILE ^^^ %CHAIN-ERR: unrecognized command: ATOM 2438 CD ILE C ^ %CHAIN-ERR: unrecognized command: ATOM 2438 CD ILE C 71 ^^ %CHAIN-ERR: unrecognized command: ATOM 2438 CD ILE C 71 9997.7009998.064******** ^^^^^^^^^^^^^^^^^^^^^^^^
こんな感じのがだーっと流れます。精密化の途中でなぜか座標がおかしくなったときに発生するようです。特にREFMACとCNSを併用する場合ILEのCδ原子で起こります。これはILEのCδの原子名がCNSではCDで定義されている(protein.topファイル中)のに対し、CCP4ではCD1と定義されているためと思われます。実際は、CNSのインプットファイル中では
{* delta carbon in isoleucine is named CD in CNS what is it currently called in the coordinate file? *} {* this will not be changed if left blank *} {===>} ile_CD_becomes="CD1";
という定義があり、内部的に置換されるようですが、何らかの理由でCDという名前になってしまった後、REFMACなどを座標がおかしくなるようです。この時は座標がおかしくなるのでILEを再度置き直すなど、ちょっとした手間がかかります・・・