Module: Chem::OpenBabel

Defined in:
lib/chem/utils/openbabel.rb

Defined Under Namespace

Modules: OBAtom Classes: OBMolecule, OBSmarts

Class Method Summary collapse

Class Method Details

.load_as(path, filetype) ⇒ Object

load_as(path, filetype) path : path to input file filetype : “alc”, “bgf” see openbabel.sourceforge.net/wiki/Babel



116
117
118
119
120
121
122
# File 'lib/chem/utils/openbabel.rb', line 116

def self.load_as(path, filetype)
  conv = ::OpenBabel::OBConversion.new
  conv.set_in_format(filetype.to_s)
  mol  = ::OpenBabel::OBMol.new
  conv.read_file(mol, path)
  OBMolecule.new(mol)
end

.load_sdf(path) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/chem/utils/openbabel.rb', line 72

def self.load_sdf(path)
  require 'openbabel'

  conv = ::OpenBabel::OBConversion.new
  conv.set_in_format("sdf")
  mol  = ::OpenBabel::OBMol.new
  cond = conv.read_file(mol, path)
  mols = [OBMolecule.new(mol)]
  while cond
    mol  = ::OpenBabel::OBMol.new
    cond = conv.read(mol)
    mols << OBMolecule.new(mol) if cond
  end
  mols
end

.parse_smarts(smarts) ⇒ Object



108
109
110
# File 'lib/chem/utils/openbabel.rb', line 108

def self.parse_smarts(smarts)
  OBSmarts.new(smarts)
end

.parse_smiles(smiles) ⇒ Object



61
62
63
64
65
66
67
68
69
70
# File 'lib/chem/utils/openbabel.rb', line 61

def self.parse_smiles(smiles)

  require 'openbabel'

  converter = ::OpenBabel::OBConversion.new
  converter.set_in_format("smi")
  mol = ::OpenBabel::OBMol.new
  converter.read_string(mol, smiles)
  OBMolecule.new(mol)
end