Exemple #1
0
def depict_smile(genecluster, structuresfolder):
    indigo = Indigo()
    renderer = IndigoRenderer(indigo)
    query = indigo.loadMoleculeFromFile("genecluster" + str(genecluster) +
                                        ".smi")
    indigo.setOption("render-coloring", True)
    renderer.renderToFile(query, "genecluster" + str(genecluster) + ".png")

    indigo.setOption("render-image-size", 200, 150)
    renderer.renderToFile(query,
                          "genecluster" + str(genecluster) + "_icon.png")
    dircontents = os.listdir(os.getcwd())
    geneclusterstring = "genecluster" + str(genecluster) + ".png"
    if geneclusterstring in dircontents:
        shutil.copy("genecluster" + str(genecluster) + ".png",
                    structuresfolder)
        shutil.copy("genecluster" + str(genecluster) + "_icon.png",
                    structuresfolder)
        shutil.copy("genecluster" + str(genecluster) + ".smi",
                    structuresfolder)
        os.remove("genecluster" + str(genecluster) + ".png")
        os.remove("genecluster" + str(genecluster) + "_icon.png")
        os.remove("genecluster" + str(genecluster) + ".smi")
        smiles_input = path.join('SMILES', 'input')
        if path.exists(smiles_input):
            os.remove(smiles_input)
        return "success"
    else:
        return "failed"
Exemple #2
0
def resetIndigo():
    global indigo, indigoRenderer, indigoInchi

    indigo = Indigo()
    indigoRenderer = IndigoRenderer(indigo)
    indigoInchi = IndigoInchi(indigo)

    # Set default options
    indigo.setOption('render-bond-length', '30')
    indigo.setOption('render-relative-thickness', '1.3')
    indigo.setOption('render-coloring', False)
    indigo.setOption('render-comment-font-size', 14.0)
    indigo.setOption('render-comment-offset', '10')
Exemple #3
0
def resetIndigo():
    global indigo, indigoRenderer, indigoInchi

    indigo = Indigo()
    indigoRenderer = IndigoRenderer(indigo)
    indigoInchi = IndigoInchi(indigo)

    # Set default options
    indigo.setOption('render-bond-length', '30')
    indigo.setOption('render-relative-thickness', '1.3')
    indigo.setOption('render-coloring', False)
    indigo.setOption('render-comment-font-size', 14.0)
    indigo.setOption('render-comment-offset', '10')
Exemple #4
0
 def wrapper():
     indigo = Indigo()
     opts = request.json.get('options', {})
     for key, value in opts.items():
         try:
             indigo.setOption(key, value)
         except IndigoException as e:
             pass
     mol_text = request.json.get("struct")
     try:
         mol = indigo.loadMolecule(mol_text)
     except IndigoException as e:
         return jsonify({'msg': str(e)})
     return func(mol)
def get_molfile_v3000(compound: str) -> str:
    """Computes the molfile v3000 from a compound string.

    Args:
        compound: A molfile (either v2000 or v3000), MRV file, etc.

    Returns:
        The molfile v3000.

    """
    indigo = Indigo()
    indigo.setOption("molfile-saving-mode", "3000")
    molecule = indigo.loadMolecule(compound)
    return molecule.molfile()
def indigo_atom_map_reaction(rxn_smiles: str,
                             timeout_period: int,
                             existing_mapping="discard",
                             verbose=False):

    try:
        # Instantiate the Indigo class object and set the timeout period.
        indigo_mapper = Indigo()
        indigo_mapper.setOption("aam-timeout", timeout_period)

        # Return the atom mapping of the reaction SMILES string.
        rxn = indigo_mapper.loadReaction(rxn_smiles)
        rxn.automap(existing_mapping)

        return rxn.smiles()

    # If an exception occurs for any reason, print the message if indicated, and return None.
    except Exception as exception:
        if verbose:
            print(
                "Exception occured during atom mapping of the reaction SMILES. Detailed message: {}"
                .format(exception))

        return None
Exemple #7
0
def smiles(smiles_string):
    # Render SMILES to PNG
    indigo = Indigo()
    renderer = IndigoRenderer(indigo)

    mol = indigo.loadMolecule(smiles_string)
    mol.layout()  # if not called, will be done automatically by the renderer
    indigo.setOption("render-output-format", "png")
    indigo.setOption("render-image-size", 250, 250)
    indigo.setOption("render-background-color", 1.0, 1.0, 1.0)
    indigo.setOption("render-coloring", True)

    indigo.setOption("aromaticity-model", "generic")
    mol.dearomatize()

    buf = renderer.renderToBuffer(mol)
    buf = io.BytesIO(buf)

    return send_file(
        buf,
        mimetype='image/png',
        as_attachment=False,
    )
Exemple #8
0
 def wrapper():
     indigo = Indigo()
     opts = request.json.get('options', {})
     for key, value in opts.items():
         indigo.setOption(key, value)
     return func()
Exemple #9
0
# Indigo code acquired from http://www.ggasoftware.com/
from indigo import Indigo
from indigo_renderer import IndigoRenderer
import uuid
import rsvg
import gtk

BORDER_WIDTH = 0

# for more rendering options visit:
# http://www.ggasoftware.com/opensource/indigo/api/options#rendering

_indigo = Indigo()
_renderer = IndigoRenderer(_indigo)
_indigo.setOption('render-output-format', 'svg')
_indigo.setOption('render-margins', 10, 10)
_indigo.setOption('render-stereo-style', 'none')
_indigo.setOption('render-implicit-hydrogens-visible', False)
_indigo.setOption('render-coloring', True)
_indigo.setOption('render-bond-length', 20.0)
_indigo.setOption('render-label-mode', 'hetero')

def smiles2svg(smiles, comment=''):
    _indigo.setOption('render-comment', comment)
    m = _indigo.loadMolecule(smiles)
    m.aromatize()
    m.layout()
    s = _renderer.renderToBuffer(m).tostring()
    id = str(uuid.uuid4())
    i = 0
    while True:
Exemple #10
0
# Indigo code acquired from http://www.ggasoftware.com/
from indigo import Indigo
from indigo_renderer import IndigoRenderer
import uuid
import rsvg
import gtk

BORDER_WIDTH = 0

# for more rendering options visit:
# http://www.ggasoftware.com/opensource/indigo/api/options#rendering

_indigo = Indigo()
_renderer = IndigoRenderer(_indigo)
_indigo.setOption('render-output-format', 'svg')
_indigo.setOption('render-margins', 10, 10)
_indigo.setOption('render-stereo-style', 'none')
_indigo.setOption('render-implicit-hydrogens-visible', False)
_indigo.setOption('render-coloring', True)
_indigo.setOption('render-bond-length', 20.0)
_indigo.setOption('render-label-mode', 'hetero')


def smiles2svg(smiles, comment=''):
    _indigo.setOption('render-comment', comment)
    m = _indigo.loadMolecule(smiles)
    m.aromatize()
    m.layout()
    s = _renderer.renderToBuffer(m).tostring()
    id = str(uuid.uuid4())
    i = 0
Exemple #11
0
 def indigo_structure(self):
     indigo = Indigo()
     indigo.setOption("molfile-saving-mode", "3000")
     return indigo.loadStructure(structureStr=self.molfile_v3000)
Exemple #12
0
        0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, 0
    ]

    print("Add packed fingerprints to Indigo:")
    fp_size_bytes = 64  # or 512 bits, or 8 qwords

    from indigo import Indigo
    from bingo import Bingo
    indigo = Indigo()
    bingo = Bingo.createDatabaseFile(indigo, path.join('tempdb'), 'molecule',
                                     '')
    indigo.setOption("fp-sim-qwords", fp_size_bytes / 8)
    indigo.setOption("fp-ext-enabled", True)

    indigo.setOption("fp-ord-qwords", 0)  # optional
    indigo.setOption("fp-tau-qwords", 0)  # optional
    indigo.setOption("fp-any-qwords", 0)  # optional

    molecules = []
    for id in range(len(df_descriptors)):
        smiles = df_descriptors.ix[id, 'Structure']
        descriptors = list(df_descriptors.ix[id])[2:]
        normalized = [(f - min_bounds[i]) / (max_bounds[i] - min_bounds[i])
                      for i, f in enumerate(descriptors)]
        fp = pack_normalized_descriptors_to_fingerprint(
            normalized, density=0.3, byte_size=fp_size_bytes)
Exemple #13
0
        'C1CC(=O)NC2=C1C=CC(=C2)OCCCCN3CCN(CC3)C4=C(C(=CC=C4)Cl)Cl',
        'CNC1(CCCCC1=O)C2=CC=CC=C2Cl',
        'CN1C2CCC1C(C(C2)OC(=O)C3=CC=CC=C3)C(=O)OC',
        'CCCC1=NN(C2=C1NC(=NC2=O)C3=C(C=CC(=C3)S(=O)(=O)N4CCN(CC4)C)OCC)C'
    ]

    for i, sml in enumerate(smiles):
        print("#%2d: %s" % (i, sml))

    df_descriptors = []
    indigo = Indigo()

    # indigo.setOption("similarity-type", "sim")
    # indigo.setOption("similarity-type", "chem")
    # indigo.setOption("similarity-type", "ECFP2")
    indigo.setOption("similarity-type", "ECFP4")
    # indigo.setOption("similarity-type", "ECFP6")
    # indigo.setOption("similarity-type", "ECFP8")

    fingerprints = []
    for sml in smiles:
        mol = indigo.loadMolecule(sml)
        fp = mol.fingerprint("sim")
        fingerprints += [fp]

    print("*** Fingerprints ***")

    for i, fp in enumerate(fingerprints):
        str = fp.toString()
        density = fp_density(str)
        print("#%2d: Density: %f ; FP: %s" % (i, density, str))