-
Notifications
You must be signed in to change notification settings - Fork 11
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
Multiple improvements to pymcmodels #83
Conversation
@sonyahanson : I'm having trouble figuring out how to test any of these improvements. What can I run to actually test things? I can't find anything in |
…y lognormal priors.
@sonyahanson : Regarding [L]=0 support for +/- protein: Do we want to support only a single well for [L]=0 with protein and a single well without protein, or do you want to be able to add an arbitrary number of [L]=0 control wells with or without protein? |
You need to make sure the xml file path in We definitely need more/any tests, and better documentation on the examples. This is on my to do list to work on in the next week anyway. Let me know of suggestions. Regarding [L]=0, whichever is easiest for now. A single well is perfectly fine for now, but maybe in the future we would want an arbitrary number, but maybe that future will see a pretty large overhaul of the API anyway... |
That would be super useful!
Priorities for tests are probably:
The difference in API between one and multiple wells is very little, but it does change the implementation under the hood. |
OK, things seem to work locally now, so I'm going to finish the [L]=0 case and then add a very rudimentary test just to make sure things run. |
I think I was going about the [L]=0 case the wrong way by trying to break it out as a separate set of five things to pass into the API. Instead, I think I can just detect which elements of |
@sonyahanson : Review and merge when ready! |
.travis.yml
Outdated
@@ -30,6 +30,8 @@ script: | |||
- conda install --yes --quiet nose nose-timer | |||
# Test the package | |||
- cd devtools && nosetests $PACKAGENAME --nocapture --verbosity=2 --with-timer -a '!slow' && cd .. | |||
# Run quickmodel | |||
- pushd . && cd examples/direct-fluorescence-assay && env PYTHONPATH="./" quickmodel --inputs 'inputs_p38_singlet' && popd |
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.
It's great that quickmodel
has been added to travis. However, quickmodel
runs the default number of MCMC steps, currently set as 20000 PyMC moves, which may take a while on travis. How about we augment the argparser
on quickmodel
's so that we can specify far fewer moves on travis? Parsing the number of MCMC moves to quickmodel
will make it easier to use as well.
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.
This all looks good to me! My comment on quickmodel
is minor, and could be added in another PR if we want to use these changes asap.
I'm going to work through this now. One thing that pops out immediately: why were the defaults for I agree with Greg that travis should be run with fewer iterations. |
The output of I'm not certain why travis isn't running, however. We might have to fix that in a different branch. I like the idea of adding the command-line option to quickmodel, but think the new defaults are sensible. I'll add the command-line argument idea as an issue. |
I will be careful to use the same nthin,niter,nburn to compare the master branch to this updated 'improved' branch just to make sure the comparisons are fair. |
Looks like you're discarding the initial non-equilibrated DeltaG values, but not discarding the initial non-equilibrated traces when plotting: Can I fix that too? |
Yes, that's correct, feel free to fix. |
Maybe include but colored differently? |
I totally understand. How about this: The current settings are configured to do the same amount of sampling. Maybe run the data and compare it to what you have printed out? |
…g in command-line argument parsing
on it |
I'm moving on to other projects now, so I'll let you folks take the PR over from here. I can tackle the outlier detection in a separate PR when I have time to cycle back. |
yeah, I think this is fine for now, but don't think we should merge quite yet. |
I've just fixed a bug in the code where the same ligand concentration was being used for both the +protein and -protein rows. This prevented the true ligand concentrations from adjusting to deviations from the expected binding curve even when dispensing errors occurred. I've also temporarily disabled the Metropolis step methods, and am testing how things work without them. |
This change fcde1cf doesn't quite match the commit message, what was the motivation? I'm curious if this also effected the change in our results... |
Whoops---there were two changes in rapid succession:
|
Can we merge this and forge ahead? |
Merging this so I can forge ahead. |
LogNormalWrapper
to make lognormal priors more convenient (Add LogNormalWrapper for pymc2 #84)normal
prior for concentrations (leavinglognormal
)I didn't have time to update any examples to try specifying the
F_PL
and its uncertaintydF_PL
as optional arguments topymcmodels.make_model()
, but feel free to add to this branch/PR directly as you test it out, @sonyahanson!