Skip to content

medchem.structural

medchem.structural.CommonAlertsFilters

Filtering class for building a library based on a list of structural alerts

To list the available alerts, use the list_default_available_alerts method.

The output of the filter are explained below: - status: one of ["exclude", "flag", "annotations", "ok"] (ordered by quality). Generally, you can keep anything without the "exclude" label, as long as you also apply a maximum severity score for compounds that collects too many flags. - reasons: list of reasons why the compound was flagged. - pass_filter: whether the compound passed the filter or not. - details: optional additional details of the evaluation, including matching patterns if keep_details is True.

__call__(mols, n_jobs=-1, progress=False, progress_leave=False, scheduler='auto', keep_details=False)

Run alert evaluation on this list of molecule and return the full dataframe

Parameters:

Name Type Description Default
mols Sequence[Union[str, Mol]]

list of input molecule object.

required
n_jobs Optional[int]

number of jobs to run in parallel.

-1
progress bool

whether to show progress or not.

False
progress_leave bool

whether to leave the progress bar or not.

False
scheduler str

which scheduler to use. If "auto", will use "processes" if len(mols) > 500 else "threads".

'auto'
keep_details bool

whether to keep the details of the evaluation or not.

False

__init__(alerts_set=None, alerts_db_path=None)

Filtering molecules based on chemical alerts

Parameters:

Name Type Description Default
alerts_set Optional[Union[str, List[str]]]

Filter set to use. Default is BMS+Dundee+Glaxo.

None
alerts_db_path Optional[Union[PathLike, str]]

Alerts file to use. Default is internal.

None

list_default_available_alerts() cached staticmethod

Return a list of unique alert set names

medchem.structural.NIBRFilters

Filtering class for building a screening deck following the novartis filtering process published in https://dx.doi.org/10.1021/acs.jmedchem.0c01332.

The output of the filter are explained below: - status: one of ["exclude", "flag", "annotations", "ok"] (ordered by quality). Generally, you can keep anything without the "exclude" label, as long as you also apply a maximum severity score for compounds that collects too many flags. - n_covalent_motif: number of potentially covalent motifs contained in the compound - severity: how severe are the issues with the molecules: - 0: compound has no flags, might have annotations; - 1-9: number of flags the compound raises; - >= 10: default exclusion criterion used in the paper - special_mol: whether the compound/parts of the compound belongs to a special class of molecules (e.g peptides, glycosides, fatty acid). In that case, you should review the rejection reasons. - pass_filter: whether the compound passed the filter or not. - details: optional additional details of the evaluation, including matching patterns if keep_details is True.

__call__(mols, n_jobs=-1, progress=False, progress_leave=False, scheduler='threads', keep_details=False)

Run alert evaluation on this list of molecule and return the full dataframe

Parameters:

Name Type Description Default
mols Sequence[Union[str, Mol]]

list of input molecule object.

required
n_jobs Optional[int]

number of jobs to run in parallel.

-1
progress bool

whether to show progress or not.

False
progress_leave bool

whether to leave the progress bar or not.

False
scheduler str

which scheduler to use. The processes scheduler works but is very inefficient due to RDKit Catalog serialization which tends to be very slow.

'threads'
keep_details bool

whether to keep the details of the evaluation or not.

False

medchem.structural.lilly_demerits.LillyDemeritsFilters

Lilly MedChem Rules published in:

Robert F. Bruns and Ian A. Watson, Rules for Identifying Potentially Reactive or Promiscuous Compounds, Journal of Medicinal Chemistry 2012 55 (22), 9763-9772

Description

This is a set of 275 rules, developed over an 18-year period, used to identify compounds that may interfere with biological assays, allowing their removal from screening sets. Reasons for rejection include reactivity (e.g., acyl halides), interference with assay measurements (fluorescence, absorbance, quenching), activities that damage proteins (oxidizers, detergents), instability (e.g., latent aldehydes), and lack of druggability (e.g., compounds lacking both oxygen and nitrogen).

__init__(mc_first_pass_options=None, iwd_options=None, stop_after_step=3, **run_options)

Constructor for the Lilly MedChem Rules

Parameters:

Name Type Description Default
mc_first_pass_options Optional[str]

Initial options to pass to mc_first_pass

None
iwd_options Optional[str]

Initial options to pass to iwdemerit

None
stop_after_step int

Where to stop in the pipeline. Don't change this if you don't know.

3
run_options Any

Additional option to run the pipeline

{}