Drkcore

10 01 2006 chemruby Tweet

Chemrubyで構造描画(2)

Chemrubyうまくいかないとか書いたが、視覚化の通りにopen_molしたらすんなりいけた。

require 'chem'

molecule = Chem.open_mol("mol/C01455.mol")
molecule.save("test.smi")

うーん、open_molとparseの違いがわからん。perlだったらdumpしてやればいいんだが、rubyではどうやるんだろうか?

ついでに、色付けもやってみた。

require 'chem'

mol = Chem.open_mol("mol/C00019.mol")
query = Chem.open_mol("mol/C00147.mol")
m = mol.match_by_ullmann(query)
matched_nodes = m.inject([]){|ret, i| ret.push(mol.nodes[i])}
mol.edges.each do |bond, atom1, atom2|
  bond.color = [1, 0, 0] if matched_nodes.include?(atom1)
 and matched_nodes.include?(atom2)
end
mol.nodes.each{|node| node.visible = true unless node.element == :C}
mol.save("hello.pdf")

test2.rbで保存して、ruby test2.rbで実行。出来たのがhello.pdf

ダブルボンドとかはリングの内側に入って欲しいが、ナカナカ良い。

で、RMagickも入れたから、pngの出力を試そうとpngtest.rbというスクリプトを書いて

require 'chem'

mol = Chem.open_mol("mol/C00019.mol")
mol.save("hello.png")

ruby pngtest.rbで実行したところエラー。

ruby pngtest.rb 
/usr/local/lib/ruby/site_ruby/1.8/chem/writer.rb:41:
in `save': NotImplementedError (NotImplementedError)
        from pngtest.rb:4

pngに限らず、smiとかpdbでも同じエラーが出る。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021