Module: Ruspider::MassSpecAPI

Includes:
XmlUtils
Included in:
ChemSpider
Defined in:
lib/ruspider/mass_spec_api.rb

Overview

Constant Summary collapse

API =
'MassSpecAPI.asmx'
FIELDS =
{
  CSID: 'csid',
  MF: 'molecular_formula',
  SMILES: 'smiles',
  InChI: 'inchi',
  InChIKey: 'inchikey',
  AverageMass: 'average_mass',
  MolecularWeight: 'molecular_weight',
  MonoisotopicMass: 'monoisotopic_mass',
  NominalMass: 'nominal_mass',
  ALogP: 'alogp',
  XLogP: 'xlogp'
}.freeze

Instance Method Summary collapse

Methods included from XmlUtils

#array_from_xml, #get_first_node, #get_nodes, #hash_from_string, #hash_from_xml

Instance Method Details

#databasesObject



31
32
33
34
# File 'lib/ruspider/mass_spec_api.rb', line 31

def databases
  response = @rest.post(API, 'GetDatabases')
  array_from_xml(response, 'ArrayOfString', 'string')
end

#get_extended_compound_info(csid) ⇒ Object



36
37
38
39
# File 'lib/ruspider/mass_spec_api.rb', line 36

def get_extended_compound_info(csid)
  response = @rest.post(API, 'GetExtendedCompoundInfo', csid: csid)
  hash_from_string(response, 'ExtendedCompoundInfo', FIELDS)
end

#get_extended_compound_info_list(csids) ⇒ Object



41
42
43
44
45
# File 'lib/ruspider/mass_spec_api.rb', line 41

def get_extended_compound_info_list(csids)
  response = @rest.post(API, 'GetExtendedCompoundInfoArray', csids: csids)
  nodes = get_nodes(response)
  nodes.map { |node| hash_from_xml(node, FIELDS) }
end

#initialize(rest) ⇒ Object



27
28
29
# File 'lib/ruspider/mass_spec_api.rb', line 27

def initialize(rest)
  @rest = rest
end