Comments (9)
That's due to #83.
This shouldn't be happening unless a quantity that shouldn't be zero is being set to zero. It is supposed to ensure that concentrations that are set to zero are handled differently, but is there some other input quantity that is accidentally being set to zero?
from assaytools.
Question: Could any of your observed fluorescence values be zero, even though the fluorescence should never be zero?
from assaytools.
Actually, I was wrong---it's because stddev
is small compared to mean
for some observed measurement. I've added some more error checking in #93 to test:
Exception: 'np.sqrt(np.log(1.0 + (stddev/mean)**2))' for variable 'top_complex_fluorescence' is zero: mean = [ 2.16041187e+03 1.81939230e+07 2.31772231e+03 2.18967032e+14
2.25150425e+05 2.41688443e+03 2.41961246e+03 1.88126534e+05
2.46657280e+03 3.06447614e+07 1.90888875e+11 5.18205257e+03
2.57256151e+03 9.70449636e+04 2.41046558e+03 5.24266051e+06
2.87262963e+05 1.56344936e+07 2.53205567e+03 1.92708865e+14
2.66307672e+03 1.01737636e+09 1.49829810e+07 2.50573925e+03], stddev = 72.5584153594
Any idea why there would be a value that is 1e+14
?
from assaytools.
I updated my assaytools to the last commit in Improvements branch (commit).
This is the error message I am getting when quickmodel fails:
File "/Users/isikm/opt/anaconda/lib/python2.7/site-packages/assaytools-0.2.0-py2.7.egg/assaytools/pymcmodels.py", line 81, in tau
raise Exception("'np.sqrt(np.log(1.0 + (stddev/mean)**2))' for variable '%s' is zero: mean = %s, stddev = %s" % (name, mean, stddev))
Exception: 'np.sqrt(np.log(1.0 + (stddev/mean)**2))' for variable 'top_complex_fluorescence' is zero: mean = [ 1.65799135e+07 5.93720599e+14 7.33976650e+02 2.13168885e+04
1.34352179e+02 7.16161337e+12 6.39596253e+01 7.06290971e+01
1.57123273e+06 1.48503707e+02 8.35613405e+12 6.18131246e+01], stddev = 9.28626378933
from assaytools.
@sonyahanson : ANy idea why there are numbers like 1e+12 in the fluorescence measurements?
from assaytools.
@jchodera
These are my input files. This experiment has a different plate layout. First 6 rows have protein and last 2 rows have buffer. So you must use quickmodel_layout2.py
.
quickmodel_layout2_run4.tar.gz
from assaytools.
Something weird is going on here because (1) the written values are supposed to be observed values (e.g. fluorescence measurements), and (2) they are different each time I run the analysis script on the same data!
try 1:
File "/Users/choderaj/miniconda3/lib/python3.5/site-packages/assaytools-0.2.0-py3.5.egg/assaytools/pymcmodels.py", line 81, in tau
raise Exception("'np.sqrt(np.log(1.0 + (stddev/mean)**2))' for variable '%s' is zero: mean = %s, stddev = %s" % (name, mean, stddev))
Exception: 'np.sqrt(np.log(1.0 + (stddev/mean)**2))' for variable 'top_complex_fluorescence' is zero: mean = [ 1.88409656e+02 1.17280879e+02 1.47675133e+09 6.30118914e+01
1.90358168e+03 6.30116323e+04 5.06862069e+01 3.10058043e+06
4.98020568e+01 5.21666068e+01 4.96382613e+01 5.23060970e+01], stddev = 4.64824130342
try 2:
File "/Users/choderaj/miniconda3/lib/python3.5/site-packages/assaytools-0.2.0-py3.5.egg/assaytools/pymcmodels.py", line 81, in tau
raise Exception("'np.sqrt(np.log(1.0 + (stddev/mean)**2))' for variable '%s' is zero: mean = %s, stddev = %s" % (name, mean, stddev))
Exception: 'np.sqrt(np.log(1.0 + (stddev/mean)**2))' for variable 'top_complex_fluorescence' is zero: mean = [ 1.93209203e+02 1.55450974e+02 3.71964662e+05 1.93762290e+09
6.37610120e+07 6.58578412e+01 2.89705585e+05 6.16018394e+01
2.09628235e+04 3.79087228e+12 1.69264036e+03 6.06388630e+01], stddev = 10.1443560014
from assaytools.
I don't know if this will give you a clue, but when I analyse the whole plate only the binding experiment in the first row gives this error. This happened with two different xml files. Those values must not be calculated for other rows.
from assaytools.
I think I've solved the problem.
The expression
np.sqrt(np.log(1.0 + (stddev/mean)**2))
ends up being zero to numerical precision when x = (stddev/mean)**2
is very small.
I've replaced this expression with a Taylor series expansion that achieves much higher numerical accuracy when x
is small.
Fixed by #93
from assaytools.
Related Issues (20)
- Could we just set a slightly more restrictive prior on F_PL? HOT 1
- Missing dependencies HOT 4
- Cut a new assaytools release HOT 2
- Fix win install HOT 1
- Make better error message when using wrong path in quickmodel inputs file.
- Travis build failing - libgfortran related? HOT 5
- Deprecate assaytools-dev package HOT 3
- Travis is still broken HOT 1
- Clean up old branches
- Make Docs clearer for General Binding Model
- Integrate scripts/ into installed codebase and use entry-points instead
- Analysis for the single-well titration experiment HOT 2
- getting error in assaytools parser.py when running quickmodel HOT 9
- xml2png python 3.6 travis tests are failing HOT 1
- security alert for pyyaml dependency HOT 2
- Adding Quickmodel script the option to use informed F_PL priors HOT 1
- New release? HOT 1
- Add new `GeneralBindingModel` API that accepts/returns concentrations instead of log concentrations
- Getting print out of 'Skipping analysis of rows: []' for each protein from parser.py when running quickmodel HOT 3
- how to omit a well from analysis?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from assaytools.