Releases: forlilab/Ringtail
v2.1.1
What's Changed
Changes in 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: v2.1.0...v2.1.1
v2.1.0
What's Changed
Changes in 2.1.0: enhanced filtering speed
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: v2.0.0...v2.1.0
v2.0.0
Changes in 2.0.0: fully developed API
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 fromInteraction_indices
, while the tableInteraction_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 keywordduplicate_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
< 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 thebasename_union
bookmark for writing the SDFs. - Output from filtering using
max_miss
andoutput_all_poses=False
(default) now producing expected behavior of outputting only one pose per ligand. Filtering for interactionsmax_miss
allows any given pose for a ligand to missmax_miss
interactions and still be considered to pass the filter. Previously, in the resultingunion
bookmark andoutput_log
text file some ligands would present with more than one pose, although the option tooutput_all_poses
wasFalse
(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.
v1.1.0: Greatly improved filtering speed and additional filtering options
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)
v1.0.0: Initial Public Release
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