Пример #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"
Пример #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')
Пример #3
0
def indigo_init(options={}):
    try:
        tls.indigo = Indigo()
        tls.indigo.inchi = IndigoInchi(tls.indigo)
        tls.indigo.renderer = IndigoRenderer(tls.indigo)
        for option, value in indigo_api.indigo_defaults.items():
            tls.indigo.setOption(option, value)
        for option, value in options.items():
            # TODO: Remove this when Indigo API supports smiles type option
            if option in {'smiles', }:
                continue
            tls.indigo.setOption(option, value)
        return tls.indigo
    except Exception as e:
        indigo_api_logger.error('indigo-init: {0}'.format(e))
        return None
Пример #4
0
 def test_init(self):
     indigo = Indigo()
     indigo_render = IndigoRenderer(indigo)
     self.assertIsNotNone(indigo_render)
Пример #5
0
import config
from .db.BingoPostgresAdapter import BingoPostgresAdapter
from .db.models import LibraryMeta, User as Usermodel
from .db.database import db_session
from .common.util import item_to_sdf_chunk, merge_dicts, api_route
from .celery_app import celery

from .validation import LibrarySchema, SearcherSchema, UserSchema

libraries_api = Blueprint('libraries_api', __name__)

if not os.path.exists(config.__dict__['UPLOAD_FOLDER']):
    os.makedirs(config.__dict__['UPLOAD_FOLDER'])
libraries_api.indigo = Indigo()
libraries_api.renderer = IndigoRenderer(libraries_api.indigo)
libraries_api.indigo_inchi = IndigoInchi(libraries_api.indigo)
libraries_api.config = config.__dict__
libraries_api.adapter = BingoPostgresAdapter(libraries_api.config,
                                             libraries_api.indigo,
                                             libraries_api.indigo_inchi)
libraries_api.redis = redis.StrictRedis(host='localhost', port=6379, db=0)
libraries_api_app = flask_restful.Api(libraries_api)
libraries_api_logger = logging.getLogger('libraries')
#libraries_api_logger.addHandler(logging.FileHandler('/srv/api/app.log'))
auth = HTTPBasicAuth()
libraries_api_app.route = types.MethodType(api_route, libraries_api_app)


@auth.verify_password
def verify_password(email, password):
Пример #6
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
Пример #7
0
import types

from indigo import Indigo
from indigo_renderer import IndigoRenderer
from indigo_inchi import IndigoInchi

from .celery_app import celery
import config

from .common.util import api_route

imago_api = Blueprint('imago', __name__)
imago_api_logger = logging.getLogger('imago')
imago_api.config = config.__dict__
imago_api.indigo = Indigo()
imago_api.renderer = IndigoRenderer(imago_api.indigo)
imago_api.indigo_inchi = IndigoInchi(imago_api.indigo)
imago_api_app = flask_restful.Api(imago_api)
imago_api_app.route = types.MethodType(api_route, imago_api_app)
allowed_types = imago_api.config['ALLOWED_TYPES']

versions = []
with open('/srv/service_version', 'r') as ver:
    for line in ver.readlines():
        if line.startswith("imago-console-"):
            versions.append(re.search('imago-console-(.*)\..*', line).group(1))


@celery.task(bind=True)
def recognize_image(self, args):
    '''