本文整理汇总了Python中rdkit.RDLogger类的典型用法代码示例。如果您正苦于以下问题:Python RDLogger类的具体用法?Python RDLogger怎么用?Python RDLogger使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了RDLogger类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: findDuplicates
def findDuplicates (sdf, name, out):
lg = RDLogger.logger()
lg.setLevel(RDLogger.ERROR)
suppl = Chem.SDMolSupplier(sdf,removeHs=False, sanitize=False)
idlist = []
nmlist = []
smlist = []
print 'reading SDFile...'
counter = 0
for mol in suppl:
counter+=1
if mol is None: continue
try:
inchi = Chem.MolToInchi(mol)
inkey = Chem.InchiToInchiKey(inchi)
smile = Chem.MolToSmiles(mol)
except:
continue
try:
ni = mol.GetProp(name)
except:
ni = 'mol%0.8d' %counter
idlist.append(inkey[:-3])
nmlist.append(ni)
smlist.append(smile)
n = len(idlist)
print 'analizing duplicates...'
fo = open (out,'w+')
fo.write('i\tj\tnamei\tnamej\tsmilesi\tsmilesj\n')
duplicates = 0
for i in range (n):
for j in range (i+1,n):
if idlist[i]==idlist[j]:
line=str(i)+'\t'+str(j)+'\t'+nmlist[i]+'\t'+nmlist[j]+'\t'+smlist[i]+'\t'+smlist[j]
fo.write(line+'\n')
duplicates+=1
fo.close()
print '\n%d duplicate molecules found' %duplicates
示例2: DAMAGES
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
INCHI_AVAILABLE = True
import rdinchi
import logging
from rdkit import RDLogger
logger = RDLogger.logger()
logLevelToLogFunctionLookup = {
logging.INFO : logger.info,
logging.DEBUG : logger.debug,
logging.WARNING : logger.warning,
logging.CRITICAL : logger.critical,
logging.ERROR : logger.error
}
class InchiReadWriteError(Exception):
pass
def MolFromInchi(inchi, sanitize=True, removeHs=True, logLevel=None,
treatWarningAsError=False):
"""Construct a molecule from a InChI string
示例3:
from __future__ import print_function
from rdkit import RDLogger
lg = RDLogger.logger()
lg.setLevel(4)
import rdkit.Chem as Chem
import rdkit.Chem.AllChem as AllChem
from rdkit import DataStructs
import pandas as pd
import numpy as np
from tqdm import tqdm
import json
import sys
from retrosim.utils.generate_retro_templates import process_an_example
from retrosim.data.get_data import get_data_df, split_data_df
from joblib import Parallel, delayed
import multiprocessing
num_cores = multiprocessing.cpu_count()
from rdchiral.main import rdchiralRun, rdchiralReaction, rdchiralReactants
import os
SCRIPT_ROOT = os.path.dirname(__file__)
PROJ_ROOT = os.path.dirname(SCRIPT_ROOT)
############### DEFINITIONS FOR VALIDATION SEARCH ########################
all_getfp_labels = ['Morgan2noFeat', 'Morgan3noFeat', 'Morgan2Feat', 'Morgan3Feat']
all_similarity_labels = ['Tanimoto', 'Dice', 'TverskyA', 'TverskyB',]
示例4: ProcessMol
# @@ All Rights Reserved @@
# This file is part of the RDKit.
# The contents are covered by the terms of the BSD license
# which is included in the file license.txt, found at the root
# of the RDKit source tree.
#
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import Lipinski,Descriptors,Crippen
from rdkit.Dbase.DbConnection import DbConnect
from rdkit.Dbase import DbModule
import re
#set up the logger:
import rdkit.RDLogger as logging
logger = logging.logger()
logger.setLevel(logging.INFO)
def ProcessMol(mol,typeConversions,globalProps,nDone,nameProp='_Name',nameCol='compound_id',
redraw=False,keepHs=False,
skipProps=False,addComputedProps=False,
skipSmiles=False,
uniqNames=None,namesSeen=None):
if not mol:
raise ValueError('no molecule')
if keepHs:
Chem.SanitizeMol(mol)
try:
nm = mol.GetProp(nameProp)
except KeyError:
nm = None
示例5: UFFConstrainedOptimize
def UFFConstrainedOptimize(mol, moving_atoms=None, fixed_atoms=None,
cutoff=5., verbose=False):
"""Minimize a molecule using UFF forcefield with a set of moving/fixed
atoms. If both moving and fixed atoms are provided, fixed_atoms parameter
will be ignored. The minimization is done in-place (without copying
molecule).
Parameters
----------
mol: rdkit.Chem.rdchem.Mol
Molecule to be minimized.
moving_atoms: array-like (default=None)
Indices of freely moving atoms. If None, fixed atoms are assigned
based on `fixed_atoms`. These two arguments are mutually exclusive.
fixed_atoms: array-like (default=None)
Indices of fixed atoms. If None, fixed atoms are assigned based on
`moving_atoms`. These two arguments are mutually exclusive.
cutoff: float (default=10.)
Distance cutoff for the UFF minimization
Returns
-------
mol: rdkit.Chem.rdchem.Mol
Molecule with mimimized `moving_atoms`
"""
logger = RDLogger.logger()
if not verbose:
logger.setLevel(RDLogger.CRITICAL)
if moving_atoms is None and fixed_atoms is None:
raise ValueError('You must supply at least one set of moving/fixed '
'atoms.')
all_atoms = set(range(mol.GetNumAtoms()))
if moving_atoms is None:
moving_atoms = list(all_atoms.difference(fixed_atoms))
else:
fixed_atoms = list(all_atoms.difference(moving_atoms))
# extract submolecules containing atoms within cutoff
mol_conf = mol.GetConformer(-1)
pos = np.array([mol_conf.GetAtomPosition(i)
for i in range(mol_conf.GetNumAtoms())])
mask = (cdist(pos, pos[moving_atoms]) <= cutoff).any(axis=1)
amap = np.where(mask)[0].tolist()
# expand to whole residues
pocket_residues = OrderedDict()
protein_residues = GetResidues(mol)
for res_id in protein_residues.keys():
if any(1 for res_aix in protein_residues[res_id]
if res_aix in amap):
pocket_residues[res_id] = protein_residues[res_id]
amap = list(chain(*pocket_residues.values()))
# TODO: above certain threshold its making a submolis redundant
submol = AtomListToSubMol(mol, amap, includeConformer=True)
# initialize ring info
Chem.GetSSSR(submol)
ff = UFFGetMoleculeForceField(submol, vdwThresh=cutoff,
ignoreInterfragInteractions=False)
for submol_id, atom_id in enumerate(amap):
if atom_id not in moving_atoms:
ff.AddFixedPoint(submol_id)
ff.Initialize()
ff.Minimize(energyTol=1e-4, forceTol=1e-3, maxIts=2000)
# get the positions backbone
conf = mol.GetConformer(-1)
submol_conf = submol.GetConformer(-1)
for submol_idx, mol_idx in enumerate(amap,):
conf.SetAtomPosition(mol_idx, submol_conf.GetAtomPosition(submol_idx))
# FIXME: there's no getLevel method, so we set to default level
if not verbose:
logger.setLevel(RDLogger.INFO)
return mol
示例6: run_sygma
"""SyGMa: Systematically Generating potential Metabolites"""
from builtins import str
import argparse
import sygma
import sys
from rdkit import Chem, RDLogger
RDLogger.logger().setLevel(RDLogger.ERROR)
import logging
logging.basicConfig()
logger = logging.getLogger('sygma')
def run_sygma(args, file=sys.stdout):
logger.setLevel(args.loglevel.upper())
scenario = sygma.Scenario([
[sygma.ruleset['phase1'], args.phase1],
[sygma.ruleset['phase2'], args.phase2]
])
parent = Chem.MolFromSmiles(args.parentmol)
metabolic_tree = scenario.run(parent)
metabolic_tree.calc_scores()
if args.outputtype == "sdf":
metabolic_tree.write_sdf(file)
elif args.outputtype == "smiles":
file.write("\n".join([m+" "+str(s) for m,s in metabolic_tree.to_smiles()])+'\n')
return None
def get_sygma_parser():
ap = argparse.ArgumentParser(description=__doc__)
ap.add_argument('--version', action='version', version='%(prog)s ' + sygma.__version__)