Molfileフォーマットで書かれた分子の立体構造を入力ファイルとしてその分子のCANOST表記を出力する.
- gcc 4.0.1 (Mac OS X 10.5.8)
- gcc 4.0.1 (Mac OS X 10.5.8)
- gcc 3.3.6 (Vine Linux)
- main_canost-2.92.tar.gz を適当なディレクトリで展開します.
% gzip -cd main_canost-2.92.tar.gz | tar xvf -
- 環境に合わせて "Makefile" を編集し,'make' を実行します.
% cd main_canost-2.92
% make
これでできた 'main_canost' が実行プログラムです. Cygwin などの場合 'main_canost.exe'です.
% ./main_canost < output-format > < coding_level > [input-molfile-name] [output-filename]
output-format, coding_levelの指定は必要!!
-c CANOST表記を出力します.
-n シリアル番号列を出力します.
-p CANOST表記と分子ツリーの親子関係を出力します.
-s CANOST表記と平面構造として対称な部分構造を出力します.
-d CANOST表記と立体配座によってCANOST表記中における出現の順番
が決まった原子らを出力します.
-u 入力分子の規範的なCANOSTコードとそのCANOSTコードに対応する
シリアル番号列を一つ出力します.
-e 分子中の各原子を先頭とした規範的なCANOSTコードとそのCANOST
コードに対応するシリアル番号列を一つ出力します.
-ci 不自然な原子を許容して, -c オプションと同様な処理をします.
-ni 不自然な原子を許容して, -n オプションと同様な処理をします.
-pi 不自然な原子を許容して, -p オプションと同様な処理をします.
-si 不自然な原子を許容して, -s オプションと同様な処理をします.
-di 不自然な原子を許容して, -d オプションと同様な処理をします.
-ui 不自然な原子を許容して, -u オプションと同様な処理をします.
-ei 不自然な原子を許容して, -e オプションと同様な処理をします.
f 分子全体のCANOSTコードを出力します.
i レベル i までのCANOSTコードを出力します.
( i は 3,4,5,6,7,8,9,10 のいずれか)
Molfileフォーマット
[input-molfile-name]で指定されたMolfileを読み込み, その分子のCANOST表記,シリアル番号列,CANOST表記と分子ツリーに おける親子関係,対称な部分構造,規範的なCANOSTコードのいずれかを [output-filename]に出力します.
-c 各原子を先頭にするCANOST表記を出力します.さらに同じ原子を先頭と
して,複数の異なるCASNOST表記が生成される可能性がある場合,生成さ
れうるCANOST表記を次行に続けて出力します.異なるCANOST表記が生成
される可能性があるために,複数出力していますので,出力されたものが,
必ずしも異なるわけではありません.
-n -cによる出力の各行のCANOST表記に対応するシリアル番号列を出力します.
-p ひとつのCANOST表記に続けて,そのCANOST表記を生成した分子ツリーに
おける親子関係を出力します.
書式は各行が各レベルに対応し,上のレベルから出力されています.
(子)-(親);(子)-(親);
というように,-(ハイフン)の前が子にあたり,-(ハイフン)の後が
親になっています.;(セミコロン)が各原子の区切りになっています.
例)
1-root
10-1;2-1;35-1;36-1;
9-10;5-10;19-10;3-2;31-2;37-2;
8-9;11-9;43-9;4-5;6-5;41-5;56-19;57-19;58-19;&1-3;30-3;38-3;75-31;
7-8;14-8;12-11;44-11;45-11;&1-4;39-4;40-4;&2-6;28-6;74-30;
&2-7;42-7;13-14;15-14;32-14;&3-12;46-12;47-12;
-s 本プログラムにおいて対称と定義される平面構造として対称な部分構造
をシリアル番号で出力します.
※ doc_sym_search.pdfを参照してください!!!
書式はCANOST表記の前に,
*** symmetric substructures *** ← そのCANOST表記中の対称な部分構造
-------- 1 ← 対称な部分構造 その1
2, ← 各行が各レベルに対応
3,6,10,
7,11,14,
15,
----- ← ここまでひとつの部分構造
4,
3,8,12,
7,11,16,
15,
-----
5,
6,8,13,
7,14,16,
15,
----- ↓ 異なる対称な部分構造があれば続けて出力
-------- 2 ← 対称な部分構造 その2
1,
4,5,9,
8,12,13,
16,
-----
3,
4,7,11,
8,12,15,
16,
-----
6,
5,7,14,
8,13,15,
16,
-----
*******************************
注意!!
本プログラムの方法では対称性の識別が不十分であることもわかってい
ます.したがって,場合によっては,対称ではないのに,ひとつの対称
な部分構造として出力されることも考えられます.
しかし,このようなことは,一般のグラフの場合には起こり得るが,
分子を取り扱う限り問題にならないと考えています.
もし,問題が発生するようでしたらおしらせ下さい.
-d ひとつのCANOST表記に続けて,そのCANOST表記において,出現する順番が
入力ファイルのMolfileにある立体配座によって決まったものであれば,
それらの原子らのシリアル番号を出力します.
※ 詳しい説明は doc_depend_conformation.pdf,doc_ordering_rule.pdf
を見て下さい.
-u 規範的なCANOSTコード,すなわち,入力された分子と1対1に対応する
CANOSTコードを出力します.また,そのCANOSTコードに対応するシリア
ル番号列を一つ出力します.規範的なCANOSTコードに対応するシリアル
番号列は必ずしも一つではなく,多数有り得るので,一つのみを出力す
る仕様になっています.
分子が同じであるかの判定がこの規範的なCANOSTコードを比較すること
で可能です.
-e 分子中の各原子を先頭とした規範的なCANOSTコードを出力します.また,
そのCANOSTコードに対応するシリアル番号列を一つ出力します.
部分構造の等しいかの判定がレベル指定などと合わせることによって
可能となります.
CANOSTコードで先頭となる原子からの結合数を指定することで, その結合範囲にある部分構造から生成されるCANOSTコードを出力 します. coding_levelは中心の原子から3結合の範囲でしたら,4を指定してくださ い.
- 20-Hydroxyecdysone.mol
- cubic.mol