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"
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')
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
def test_init(self): indigo = Indigo() indigo_render = IndigoRenderer(indigo) self.assertIsNotNone(indigo_render)
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):
# 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
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): '''