Class: RCDK::Util::Lang
- Inherits:
-
Object
- Object
- RCDK::Util::Lang
- Includes:
- Java::Io, Org::Openscience::Cdk, Org::Openscience::Cdk::Io, Uk::Ac::Cam::Ch::Wwmm::Opsin
- Defined in:
- lib/rcdk/util.rb
Overview
Molecular language translation. Currently molfile, SMILES, and IUPAC nomenclature (read-only) are implemented.
Constant Summary collapse
- @@mdl_reader =
Io::MDLReader.new
- @@mdl_writer =
Io::MDLWriter.new
- @@smiles_parser =
Smiles::SmilesParser.new
- @@smiles_generator =
Smiles::SmilesGenerator.new(DefaultChemObjectBuilder.getInstance)
- @@cml_reader =
nil
Class Method Summary collapse
-
.get_molfile(molecule) ⇒ Object
Returns a String-based molfile by parsing the CDK
molecule
. -
.get_smiles(molecule) ⇒ Object
Returns a SMILES string based on the structure of the indicated CDK
molecule
. -
.molfile_to_smiles(molfile) ⇒ Object
Returns a SMILES string by parsing the
molfile
string. -
.read_iupac(iupac_name) ⇒ Object
Returns a CDK
Molecule
given the specifiediupac_name
. -
.read_molfile(molfile) ⇒ Object
Returns a CDK
Molecule
given the String-based molfilemolfile
. -
.read_smiles(smiles) ⇒ Object
Returns a CDK
Molecule
by parsingsmiles
. -
.smiles_to_molfile(smiles) ⇒ Object
Returns a molfiles STRING by parsing
smiles
.
Class Method Details
.get_molfile(molecule) ⇒ Object
Returns a String-based molfile by parsing the CDK molecule
.
87 88 89 90 91 92 93 94 95 |
# File 'lib/rcdk/util.rb', line 87 def self.get_molfile(molecule) writer = StringWriter.new @@mdl_writer.setWriter(writer) @@mdl_writer.writeMolecule(molecule) @@mdl_writer.close writer.toString end |
.get_smiles(molecule) ⇒ Object
Returns a SMILES string based on the structure of the indicated CDK molecule
.
104 105 106 |
# File 'lib/rcdk/util.rb', line 104 def self.get_smiles(molecule) @@smiles_generator.createSMILES(molecule) end |
.molfile_to_smiles(molfile) ⇒ Object
Returns a SMILES string by parsing the molfile
string.
109 110 111 |
# File 'lib/rcdk/util.rb', line 109 def self.molfile_to_smiles(molfile) get_smiles(read_molfile(molfile)) end |
.read_iupac(iupac_name) ⇒ Object
Returns a CDK Molecule
given the specified iupac_name
.
71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/rcdk/util.rb', line 71 def self.read_iupac(iupac_name) nts = NameToStructure.getInstance cml = nts.parseToCML(iupac_name) raise "Couldn't parse #{iupac_name}." unless cml string_reader = StringReader.new(cml.toXML) @@cml_reader = CMLReader.new unless @@cml_reader @@cml_reader.setReader(string_reader) chem_file = @@cml_reader.read(ChemFile.new) chem_file.getChemSequence(0).getChemModel(0).getSetOfMolecules.getMolecule(0) end |
.read_molfile(molfile) ⇒ Object
Returns a CDK Molecule
given the String-based molfile molfile
.
63 64 65 66 67 68 |
# File 'lib/rcdk/util.rb', line 63 def self.read_molfile(molfile) reader = StringReader.new(molfile) @@mdl_reader.setReader(reader) @@mdl_reader.read(Molecule.new) end |
.read_smiles(smiles) ⇒ Object
Returns a CDK Molecule
by parsing smiles
.
98 99 100 |
# File 'lib/rcdk/util.rb', line 98 def self.read_smiles(smiles) @@smiles_parser.parseSmiles(smiles) end |
.smiles_to_molfile(smiles) ⇒ Object
Returns a molfiles STRING by parsing smiles
.
114 115 116 |
# File 'lib/rcdk/util.rb', line 114 def self.smiles_to_molfile(smiles) get_molfile(read_smiles(smiles)) end |