Sha256: 12693cecd9a96bb07c28a8212ab226156f25df2f22535c997ea209df76bfa811
Contents?: true
Size: 1.4 KB
Versions: 1
Compression:
Stored size: 1.4 KB
Contents
# coding: utf-8 # frozen_string_literal: true module ChemScanner # Interpreter of extracted/scanned information module Interpreter using Extension module PostProcess def refine_text_as_molecule key_to_delete = [] @text_map.each do |k, text| mol = @mol_map.values.detect { |m| m.text_ids.include?(k) } next if mol.nil? smi = ChemScanner.get_abbreviation(text.value) next if smi.empty? group_pos = {} @reactions.each do |reaction| rid = reaction.arrow_id arrow = @arrow_map[rid] group = detect_position(arrow, text.polygon) next if group.nil? group_pos[rid] = group end pos = group_pos.detect { |_, p| p == "reagents" } next unless pos.nil? pos = group_pos.detect { |_, p| %w[reactants products].include?(p) } next if pos.nil? puts "group: #{group_pos}" key_to_delete.push(k) mol.text_ids.delete(k) @mol_map[k] = Molecule.new_from_smiles(k, smi) pos = group_pos.first reaction = @reactions.detect { |r| r.arrow_id == pos[0] } group_ids = reaction.send("#{pos[1][0...-1]}_ids") group_ids.push(k) end # Don't need to keep it text_map anymore key_to_delete.each { |k| @text_map.delete(k) } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
chem_scanner-0.1.3 | lib/chem_scanner/interpreter/post_process/text_as_molecule.rb |