Ringtail

Latest version: v2.1.2

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

Scan your dependencies

2.1.2

Bug fixes
- Removing of union operand that made Ringtail incompatible with python=3.9
- Pymol now displays receptor if present in database
- Proper handling in preparing rdkit Mols in absence of flexible residues
- Enhanced error messages and docs related to plotting and pymol

Full Changelog: https://github.com/forlilab/Ringtail/compare/v2.1.1...v2.1.2

2.1.1

**Enhancements to the code base**
- Data used for plotting, and a handle to the matplotlib.figure object is available through the API for personalized plotting
- The appearance of the standard Ringtail docking results plot has been improved with hard cutoffs for docking scores and ligand efficiency above 0, and it has been made clearer the difference between plotted data that has been binned and plotted data that are single data points. The number of bins used to bin data as well as marker size is scaled to the amount of data for databases of less than 10,000 ligands for enhanced visibility.
- Plotting faster for large databases.
- Possible to choose printing all filtered ligands to one large, or multiple individual SDF files for the CLI using `--invidual_sdf_files`.


**Bug fixes**

-There was a bug when using "overwrite" a database with the CLI where Ringtail would overwrite the database at the wrong time, leading to issues with data in the receptor table and functions like "add_interactions". This has now been fixed.
- Multiple bugs related to the ligand filters have been fixed, where the main issue was if the `ligand_operator` was set to "OR", "OR" would be used not only between ligand substructures but also between other parts of the query (leading to more ligands passing filtering).


**Full Changelog**: https://github.com/forlilab/Ringtail/compare/v2.1.0...v2.1.1

2.1.0

**Enhancements to the code base**

The format of the queries produced to filter the database have been completely rewritten, reducing filtering time by at least a factor of 10 compared to 1.1.0. Extra indices were added to three of the tables to support the faster filtering speeds.

**Bug fixes**

The use of the keywords `--ligand_name`, `--ligand_substruct`, and `--ligand_substruct_pos` had ambiguous behavior where if they were invoked more than once, only the last filter value would be used (as opposed to concatenating the values). They now will work by supplying multiple values to one keyword, as well as one or more values to two or more keywords.
Further, `ligand_substruct_pos` now takes input as one string ("[C][Oh] 1 1.5 -20 42 -7.1")as opposed to one string and five numbers ("[C][Oh]"" 1 1.5 -20 42 -7.1).
`--ligand_max_atoms` counted all atoms in the ligand, including hydrogens. With bug fix it counts only heavy atoms(not hydrogens).

**Full Changelog**: https://github.com/forlilab/Ringtail/compare/v2.0.0...v2.1.0

2.0.0

***************************************

Changes in keywords used for the command line tool
==================================================
* `--mode` is now `--docking_mode`
* `--summary` is now `--print_summary`
* `--pattern` is now `--file_pattern`
* `--name` is now `--ligand_name`
* `--max_nr_atoms` is now `--ligand_max_atoms`
* `--smarts` is now `--ligand_substruct`
* `--smarts_idxyz` is now `--ligand_substruct_pos`
* `--smarts_join` is now `--ligand_operator`
* `--van_der_waals` is now `--vdw_interactions`
* `--hydrogen_bond` is now `--hb_interactions`
* `--reactive_res` is now `--reactive_interactions`

Enhancements to the codebase
==============================
* Fully developed API can use python for scripting exclusively
* Can add docking results directly without using file system (for vina only as output comes as a string).
* The Ringtail log is now written to a logging file in addition to STDOUT

Changes to code behavior
=========================
* Interaction tables: one new table has been added (`Interactions`) which references the interaction id from `Interaction_indices`, while the table `Interaction_bitvectors` has been discontinued.
* A new method to update an existing database 1.1.0 (or 1.0.0) to 2.0.0 is included. However, if the existing database was created with the duplicate handling option, there is a chance of inconsistent behavior of anything involving interactions as the Pose_ID was not used as an explicit foreign key in db v1.0.0 and v1.1.0 (see Bug fixes below).

Bug fixes
===========
* The option `duplicate_handling` could previously only be applied during database creation and produced inconsistent table behavior. Option can now be applied at any time results are added to a database, and will create internally consistent tables. **Please note: if you have created tables in the past and invoking the keyword `duplicate_handling` you may have errors in the "Interaction_bitvectors" table (<2.0.0). These errors cannot be recovered, and we recommend you re-make the database with Ringtail 2.0.0.**
* Writing SDFs from filtering bookmarks: will check that bookmark exists and has data before writing, and will now produce SDFs for any bookmarks existing bookmarks. If the bookmark results from a filtering where `max_miss` &lt; 0 it will note if the non-union bookmark is used, and if the base name for such bookmarks is provided it will default to the `basename_union` bookmark for writing the SDFs.
* Output from filtering using `max_miss` and `output_all_poses=False`(default) now producing expected behavior of outputting only one pose per ligand. Filtering for interactions `max_miss` allows any given pose for a ligand to miss `max_miss` interactions and still be considered to pass the filter. Previously, in the resulting `union` bookmark and `output_log` text file some ligands would present with more than one pose, although the option to `output_all_poses` was `False` (and thus the expectation would be one pose outputted per ligand). This would give the wrong count for how many ligands passed a filter, as some were counted more than once.

1.1.0

What's Changed

- Optimized SQLite queries for significantly improved filtering speed (see comparison below)
- `--summary` option to give overview of results contained in database
- Ligand clustering by Morgan Fingerprint chemical similarity (`--mfpt_cluster`)
- Ligand clustering by receptor interaction fingerprint similarity (`--interaction_cluster`)
- Enabled export of stored PDBQT from database
- Minor bug fixes

Example Filtering Timings (M1Pro MacBook, ~2 million ligands)
![rt_v11_timings](https://github.com/forlilab/Ringtail/assets/41704502/db6b1160-ec91-49af-8279-63e3af7ead15)

1.0.0

Initial public release for Ringtail
- Provided storage and analysis of virtual screenings run with AutoDock-GPU and AutoDock Vina
- Stores, filters, and exports results with SQLite

Links

Releases

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.