Updated Ligand Motifs Code
The code I am contributing here are updates to improve the functionality of the ligand motif code. This includes improvements to the following protocols:
motifs/LigandDiscoverySearch - Created a method for scoring placed ligands based on how much of a user-defined binding pocket is filled, improved use of score functions, collection and analysis of motifs collected off of placed ligands to confirm contacts against residues of interest
motifs/IdentifyLigandMotifs - Moved usage of process_for_motifs from private to public so that the function to collect motifs can be used on poses in runtime (and not exclusively from imported files). The process_for_motifs function is now used in LigandDiscoverySearch.
Added new options in options_rosetta.py under motifs for use in LigandDiscoverySearch.
Added public app remove_duplicate_motifs.cc, which removed motifs that are considered duplicates based on similar distance and angle of atoms involved. This helps improve runtimes of protocols that use lists of motifs by not considering the use of motifs that are effectively very similar/same. I have added an integration test as well.
Hi, apologies on the long delay. I think my code is ready for another look, correcting the recommended changes. Looking at the benchmark server, I don't think any of the failed tests are problematic (the worst is likely just because of the tiny fix in the trig function with accumulated error.
(Sorry, I take it back. I met with my PI, and she recommended a substantial feature to add, so I am going to do that before needing review)
Oh, comments on test results:
Looks like you're getting hard failures in the real_motif_analysis and remove_duplicate_motifs tests in the release_debug runs (https://b3.graylab.jhu.edu/test/855709) -- these aren't just "a reference run isn't available" failures, but failures that indicate things are crashing/failing even before the comparison. I'm not sure why they are failing for release_debug but not the regular release runs, but it may be due to the extra checks in debug mode. (Or it could be a Mac/Linux difference.)
Delete the //#include <protocols/motifs/FindMotifPositionsOnLigandHelper.cc> line in src/apps/public/motif_ligand_discovery/remove_duplicate_motifs.cc (even commented out, it's tripping up the include_cc_check)
Looks like there's a bit of instability in the intergration.mpi tests, but there's nothing particular to MPI here, and the non-MPI tests look fine. -- Should keep an eye on it for the post-merge results, but I don't think there's a need to hold off on the merge because of it.
Sounds good! It looks like merging is still blocked on my end.
With the move to an open repo, there's a reduced set of people who can merge -- I've done that for you.