官能基の有無を調べるソフトにOpenBabelなどありますが、
特定の官能基の有無はわかるのですが、その数を指定することはできる
のでしょうか。
たとえば[OH]が5つ存在するものをSMILESとうからとって来れるのでしょうか。
COC1=C(C=CC(=C1)CC=C)O
CC(=O)NC1=CC=C(C=C1)CC(=O)O
CCOC1=CC2=C(C3=C(C=C(C=C3)N)N=C2C=C1)N
C(C(C1C(=O)C(=C(O1)O)O)O)O
CC(=O)OC1=CC=CC=C1C(=O)O
CC(=O)NC1=NN=C(S1)S(=O)(=O)N
C1=NC2=C(N1)C(=NC=N2)N
C1=NC2=C(C(=N1)N)N=CN2C3C(C(C(O3)CO)O)O
例えばこれらのデータから[OH]が2つ以上含む化合物は判別できますでしょうか。
No.1ベストアンサー
- 回答日時:
OpenBabelGUIを使う(あまりスマートではないけどとりあえず思いついた)やり方。
Add hydrogens (make explicit) と
Output explicit hydrogens as such に
チェックを入れて、質問文のデータをコンバートすると
[CH3]Oc1c([cH][cH]c([cH]1)[CH2][CH]=[CH2])[OH]
[CH3]C(=O)[NH]c1[cH][cH]c([cH][cH]1)[CH2]C(=O)[OH]
[CH3][CH2]Oc1[cH]c2c(c3c([cH]c([cH][cH]3)[NH2])nc2[cH][cH]1)[NH2]
[CH2]([CH]([CH]1C(=O)C(=C(O1)[OH])[OH])[OH])[OH]
[CH3]C(=O)Oc1[cH][cH][cH][cH]c1C(=O)[OH]
[CH3]C(=O)[NH]c1nnc(s1)S(=O)(=O)[NH2]
[cH]1nc2c([nH]1)c(n[cH]n2)[NH2]
[cH]1nc2c(c(n1)[NH2])n[cH]n2[CH]1[CH]([CH]([CH](O1)[CH2][OH])[OH])[OH]
のように変換されますから、あとはPerlなどを使って各データの[OH]を数えればいいんじゃないかと思います。
ただし、このやり方だとカルボキシ基CO2Hやスルホ基SO3Hなどもヒドロキシ基OHとしてカウントされますので注意してください。
ありがとうございます。
[OH]の数を数えることはプログラム組めばできそうですね。
ちなみにカルボキシル基の場合はC(=O)[OH]
スルホ基の場合は、S(=O)(=O)[OH],
アミドやアミンの場合はどのような文字列で表示されるのでしょうか。
そもそも
Add hydrogens (make explicit) と
Output explicit hydrogens as such の処理は何を施しているのでしょうか。
No.4
- 回答日時:
とりあえず突っ込むだけだとアレなので本題もちょっと考えてみる (苦笑).
もとの SMILES式だけから調べようとすると, 「どのような構造が欲しいのか」をちゃんと考えないといけないし, 調べかたもその構造に依存するような感じがします.
例えばヒドロキシ基 1つをとっても, 「何がヒドロキシ基なのか」は意外と難しかったりします. 例えば NNO (ヒドロキシルアミン) の OH がヒドロキシ基か? って言われると微妙だし, ClO (次亜塩素酸) だともっと困る.
まあヒドロキシ基は単純なので, 「構造が正しいかどうかは無視」「アルコールかフェノールかは気にしない」「互変異性は違うものとみなす」などいくつかの条件を付ければそれなりにできそうです.
まず, 潜在的なヒドロキシ基に含まれる酸素を見付けます. これは「先頭の O で O(...)なんか という形でないもの」か「最後の O」か「O)」です.
ここからその酸素につながる元素, さらにそこに隣接する元素を調べてチェックすれば多分 OK. 本質的にはアミンも同じことになります. アミドもできるといえばできるけどちょっと面倒な感じ. そろそろ「SMILES式からきちんと構造を作りあげる」必要がありそうです.
ちなみに OpenBabel GUI で遊んでみた感じでは蟻酸がちょっといやなことになったような.
No.3
- 回答日時:
> Add hydrogens (make explicit) と
> Output explicit hydrogens as such の処理は何を施しているのでしょうか。
#2さんの仰るとおり、見たまま字のままだと思います。よく分からなかったら、
CO
[CH3]O
C[OH]
[CH3][OH]
を入力データにして、チェックを入れたり外したりしたときに出力がどうなるかを試してみて下さい。
> アミドやアミンの場合はどのような文字列で表示されるのでしょうか。
結合の手が1本しかない1級アミド C(=O)[NH2] や1級アミン [NH2](ただし1級アミドも含まれる)を文字列で表すのは簡単です。しかし、結合の手が2本,3本になると、Perlなどの正規表現を使ったとしても、ひとつの文字列で表すのは無理なんじゃないかなと思います(少なくとも私には無理です、ごめんなさい)。
Daylightのページにあるように、SMARTS を使えば
アミドは [NX3][CX3](=[OX1])[#6]
アミン(一級または二級,アミドを含まない)は [NX3;H2,H1;!$(NC=O)]
のように簡単に表すことができるのですが。
http://www.daylight.com/dayhtml_tutorials/langua …
つきなみなアドバイスで申し訳ありませんが、ひとつの文字列で表すのにこだわらずに、SMARTSでやるところ、正規表現でやるところ、プログラムを組んでやるところ、手作業でやるところに適当に分けて、問題に取り組んだらいいんじゃないでしょうか。
No.2
- 回答日時:
Add hydrogens (make explicit) とか
Output explicit hydrogens as such とかを日本語に直せば分かるのでは? あるいは, 入力と出力を比較しても分かるはず.
アミドやアミンは例の中にありますね.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 建設業・製造業 歯車の製造の仕事の難度 1 2022/07/25 19:04
- 数学 a1,a2, a3をベクトル空間Vのベクトルとする。a1+a2,a2+a3,a3+a1が一次独立のと 2 2022/10/02 15:55
- 数学 座標平面上に放物線 C1: y=ax^2+b^x+4 がある。 C1と直線 y=1に関して対称で あ 1 2023/07/16 22:27
- その他(プログラミング・Web制作) FANUC(Series 0)のNCプログラムにて、下記のようなWhile文のネスト構造にすることは 1 2023/07/20 20:41
- C言語・C++・C# numpyスライス機能を使った数値計算 2 2023/05/08 16:01
- コーヒーメーカー・電気ケトル・電気ポット パナソニック コーヒーメーカー 2 2023/01/11 20:18
- カスタマイズ(車) NCロードスターのオートマRHTについて。 中古で11万キロで納車したのですが、エンジンかけた時や吹 3 2023/05/13 18:05
- Excel(エクセル) エクセル関数について 2 2022/05/30 14:36
- 建設業・製造業 nc旋盤やレーザー加工機を使うには様々なプログラムを覚えなくてはいけないと思うのですが、やはり記憶力 3 2023/06/29 20:53
- 建設業・製造業 nc旋盤やレザー加工機などを使用している製造の会社は見た目陰キャラくさいような人が多いイメージなんで 1 2023/07/06 23:44
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
単斜硫黄から斜方硫黄への変化
-
ヘプタン異性体の構造式
-
高校の化学についてです。 SO2...
-
酢酸の化学式がわかりません
-
ポリ酢酸ビニルからのポリビニ...
-
グリシンは二座配位子でその錯...
-
生化学と生理学
-
共鳴の概念(化学)
-
シス・トランス異性体
-
「チクル」の構造式について
-
キノイド構造ってなんですか?
-
電気泳動で流しすぎるとどうなる?
-
ケイ素の黒鉛構造はない!?
-
オゾンのルイス構造式は左の画...
-
FCBGA と PPGA の違い
-
焼き魚の反り、丸まりのメカニズム
-
DMFの1H-NMRのシグナルについて
-
ケト・エノールの安定性の差異...
-
β-ナフトールの反応性
-
構造基本名と原料基本名の違い...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報