-
Notifications
You must be signed in to change notification settings - Fork 667
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Created hole2 module #2523
Created hole2 module #2523
Conversation
Codecov Report
@@ Coverage Diff @@
## develop #2523 +/- ##
===========================================
- Coverage 90.68% 90.45% -0.24%
===========================================
Files 169 173 +4
Lines 22828 23381 +553
Branches 2939 3038 +99
===========================================
+ Hits 20702 21149 +447
- Misses 1540 1605 +65
- Partials 586 627 +41
Continue to review full report at Codecov.
|
The original idea had been that (There is also the stalled PR #1814 which I am just mentioning as another HOLE thing...) |
Should do this
and deprecate in 1.0 for removal in 2.0. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good idea to rewrite from scratch. I like it.
Tests, including in docs, and deprecations are obviously still missing.
Serendipitously, |
disclaimer, I have no idea what HOLE does yet.. @lilyminium I'd move those things to I'm confused about the name, is |
Hole2 calculates radius of molecular pores in proteins. It is the de facto standard in ion channel structural biology. The program is hole2 so it would be appropriate to call the module hole2. Note: I’d love to have Python bindings, just for the package name pyhole ;-) |
@lilyminium I would put the parameters into init , following @richardjgowers rationale (and the original implementation). |
raseed should be in run(), though. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just needs more testing.
Optional: I think that the average pore profile would be a good thing to have because many users might use it directly. For the power users it would be even more useful to just have an example for how to get the data so that they can plot themselves or a method that returns the aggregated data.
Added new functions: Tests and documentation coming soon. |
Yes, these functions are very useful and the plot_mean_profile will allow users to quickly have a look at the data. Nice. |
version 1.0 is 99% complete, is this close enough to completion to delay by a few days? If so I can dive into it and review |
@richardjgowers I was hoping it would be nearly done; the tests aren't failing on my local Python 2.7 or 3.7 environments so not sure what's going on there. When did you want to release? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe hole2.helpers name can stay to avoid conflict with lib.util.
There’s a lot of bending over backwards to get data in to this program, which obviously isn’t going to be fast (ie writing and reading files is slow). How important is this analysis program? If it’s open source then I can look at building real bindings to it, maybe this is a better long term solution.
HOLE2 is FORTRAN with various limitations on file name lengths etc. Python bindings would be great (it is open source nowadays, link to repo in docs) ( Performance in file I/O is pretty much a non-issue IIRC because HOLE is slow per frame. It would be a prime candidate for PMDA or similar approaches. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are some gaps in the tests. At minimum, plot_mean_profile() and plot_oreder_parameters() should be covered. For all other comments use your discretion. (The filename shortening shenanigans in helpers.py
have patchy coverage but that's probably on me because my original functions were not tested well – feel free to ignore and just raise an issue that this needs testing... maybe a gsoc issue?)
Added tests for plots and checking long filenames. @richardjgowers hole gets a few questions on the mailing list. I started this PR because combining the pore surfaces for each frame into a single VMD script from the original surface files isn't immediately easy (and had to rewrite the class because otherwise it would keep overwriting intermediate files). So it's worth keeping that part, at least, the pore videos are neat. Thanks for the reviews! |
This is a veritable amount of tests. Kudos! (Some are falling for some versions, though, e.g. "AttributeError: 'Line3D' object has no attribute 'get_data_3d'" — for any tests that only fail on 2.7 I'd be ok with a skipif on the test, provided it's only the testing code that fails.) |
@lilyminium do you want to rewrite your history into a smaller number of commits? I don't think that squashing all of them is very clear (there's stuff in old and new hole, tests, etc) but I also don't want to merge 31 commits where some a little corrections. Awesome work!! |
Thanks @orbeckst , I've squashed the history from 31 commits -> 7. |
Nice work! |
Hi oliver is this module ready to use now? |
@Y0geshh Yes -- as it is now merged into the |
Fixes #2522
Changes made in this Pull Request:
hole2
moduleWorking example in this notebook.
PR Checklist