Pyscreener

Latest version: v1.2.3

Safety actively analyzes 623282 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

1.2.0

the main thrust of this release adds new support for DOCK6 receptor and DOCKing parameters. The remainder of the changes is mostly logical improvements in the codebase that will (unfortunately) break some client code. The `CalculationData` has been renamed to a `Simulation` and the `CalculationRunner.prepare_and_run()` methods now return the `Result` object rather than the full `Simulation` (as was done previously. This will speed up task distribution for virtual screening purposes but now loses the added information of the `prepared_ligand` and `prepared_receptor` filenames (which will be lost forever if utilizing the `VirtualScreen` interface.) We'll look back into adding this information back, but we don't think any users were actually taking advantage of this information.

Additionally, a full `VirtualScreen` used to crash when handed an invalid molecule. Theoretically, users could always prevent this via pre-filtering what molecules are passed, but now the returned score array just handles them silently and indicates `nan` values in their place. Note that `nan` could also indicate that the molecule failed during simulation itself, which means it could be attempted again and possibly succeed (about 1% of molecules randomly fail.) Now, however a `nan` could mean one of those two things. If this distinction is important, you can do the following:
python
import numpy as np
from rdkit import Chem
import pyscreener as ps

smis: Iterable[str]
vs = ps.virtual_screen(...)
s = vs(smis)
failed_idxs = np.arange(len(s))[np.isnan(s)]
invalid_mol_idxs = set(i for i in failed_idxs if Chem.MolFromSmiles(smis[i]) is None)
failed_sim_idxs = set(failed_idxs) -inavlid_mol_idxs


happy screening!

1.1.1

What's Changed
* Iss/entry points hotfix by davidegraff in https://github.com/coleygroup/pyscreener/pull/14
* Update CI Badge by mikemhenry in https://github.com/coleygroup/pyscreener/pull/27
* Fix codecov badge by mikemhenry in https://github.com/coleygroup/pyscreener/pull/28
* Feat/versioning by davidegraff in https://github.com/coleygroup/pyscreener/pull/30
* Iss/linting by davidegraff in https://github.com/coleygroup/pyscreener/pull/31
* Feat/gh templates by davidegraff in https://github.com/coleygroup/pyscreener/pull/32
* add examples by davidegraff in https://github.com/coleygroup/pyscreener/pull/33
* fix coverage by davidegraff in https://github.com/coleygroup/pyscreener/pull/34

New Contributors
* mikemhenry made their first contribution in https://github.com/coleygroup/pyscreener/pull/27

**Full Changelog**: https://github.com/coleygroup/pyscreener/compare/v1.1.0...v1.1.1

1.1.0

A few minor improvements from the initial release:
- `*DockingRunner.prepare_from_smi()` now use RDKit geometry optimization instead of OpenBabel (12)
- SMILES can now be supplied to a `LigandSupply` to encapsulate all of your molecules in one object. Previously, SMILES strings would have to be passed to a `VirtualScreen` separate from `LigandSupply.ligands`, but now you can pass in your SMILES strings to `LigandSupply.__init__()` via the `smis` keyword argument. **NOTE**: this change breaks backwards compatibility for positional args (12)
- the addition of entry point scripts. Pyscreener can now be invoked directly on the command line via `pyscreener`, rather than having to clone this repo and run `python run.py`. There is also an additional `pyscreener-check` script to see if your environment is configured properly for your desired screen type and input metadata (13). You can still use the `--smoke-test` arg, but `pyscreener-check` uses positional arguments on the command line rather than flags.

What's Changed
* Feature/smiles input lig supply by davidegraff in https://github.com/coleygroup/pyscreener/pull/12
* Feature/entry point scripts by davidegraff in https://github.com/coleygroup/pyscreener/pull/13


**Full Changelog**: https://github.com/coleygroup/pyscreener/compare/v1.0.0...v1.1.0

1.0.0

We're happy to release the first official version of `pyscreener`!

Pyscreener was initially developed as a small research tool for active learning, but a lot of development has taken place over the last few months to completely revamp the package into a more fully featured and maintainable python package for pythonic docking/simulation calls! The high-level usage of pyscreener remains the same (in that the core functionality defines an object which maps a SMILES string to a scalar result from a simulation,) but the entire object model underlying the package has now changed to fundamentally separate the data (i.e., simulation parameters/results) from objects that actually conduct simulations (e.g., `Runner`s). While some features of v1.0 are not fully completed, these are more for bookkeeping, like testing and a robust CI.

No major feature updates are planned for the foreseeable future, so we hope you find this useful as-is!

0.1.0

We never formally "released" the alpha version of pyscreener that was open-sourced at the same time as MolPAL. While we believe the completely refactored version 1 is far superior to this original alpha version, we are adding a release tag for this version for the sake of posterity so that those who have developed using the old version of the codebase can still access it.

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.