ybukhman / gcat Goto Github PK
View Code? Open in Web Editor NEWThis project forked from minhdb/gcat
Growth curve analysis tool
This project forked from minhdb/gcat
Growth curve analysis tool
I would especially like to have that on the public web site to monitor use.
This should add a radio button to the Media background menu. If selected it should pass the string "average.layout" to the blank.value parameter of the R function gcat.analysis.main.
Also, this option should only be available if Single-plate is selected in the Plate Type menu.
Peris: Could it be posible to implement a function in GCAT to get the
Area Under Curve (AUC) between an specified range of time to don't
include ranges were curve continues growing due to evaporation of the media?
All we need to do about evaporation is let user specify a time range for which to compute the AUC.
Peris's responses to my query of June 11, 2015:
Minh is starting to work on the Area Under The Curve (AUC) computation
in GCAT. It is our understanding that you wanted to compute area under
a specified range of points, i.e. the user will specify the beginning
and ending time points for the computation.
I agree with this.We are wondering if you want to compute AUC based on raw data or the
fitted curve, or both.
As AUC is usually used as a summary of the three kinetic parameters (lag
time, maximum growth rate and maximum OD), it is required to fit the
curve first and after compute the AUC, in that way AUC will be related
with the kinetic parameters.Also, does the user need to specify the beginning time point, or is it
always going to be 0?
Well, you can implement by default T0 = 1st time point, but maybe the
user want to change the initial time point to remove part of the curve
that are not biological relevant.
This is a menu option under Media background. Add "(layout file required)" after this. This is to let the user know that they must upload a layout file if they choose this option.
I would expect that log(OD-blank+delta) at inoculation should be the same as b. However, that is not the case. Looking at the formulas, it does not look like Logistic, Gompertz or Richards functions should be 0 at time 0. I have always assumed that, in the forms represented in the Zwietering's paper, they modeled log(N/N0) as a function of t. Then b = log(OD0-blank+delta), which should be the same as "corrected log OD" at inoculation. However, that does not appear to be the case. Perhaps Zwietering's formulas model log(N), rather than log(N/N0)? If that is the case, then perhaps b is not needed? Need to look further into the literature on these models and their formulas to see if they are supposed be 0 at time 0. If that is not the case, try fitting without parameter b.
If the first OD reading is blank, inoculation time point can't be 1. I think R generates an error currently. It would be good to help the user by automatically setting Inoculation timepoint menu to 2 when the user selects Take the first OD reading of each well to be the blank option in the Media background menu.
This will include making sure that all regression tests succeed, that undocumented objects are not exported, etc.
Originally R tries to do some fancy exception handling to signal Rails about the error. But that does not seem to work.
In order to signal error, R need to return a single error message from gcat.anlysis.main(), so that length() of that value will be 1.
This would enable users to email us and send us their data when they encounter an error. We could later use this information to create informative error messages for users.
Check list:
☐ Update package version and date in DESCRIPTION
☐ Make sure all changes are pushed to GitHub
☐ Build and reload the R package. Start the rails server.
☐ Make sure test script(s), e.g. YPDAFEXglucoseTests_2-25-10__defaults.R, run successfully
☐ Verify that all wells that have growth are successfully fit in the default single plate and multiplate examples, with both sigmoid and loess procedures. Set media background to the "first OD reading" and Inoculation timepoint to 2. For the single plate example, all wells should be successfully fit except row A, row H and columns 1, 6, 11, and 12. F06 and F11 also have growth and should be fit, even though they were supposed to be control wells. For the multi-plate example, all wells should be fit.
☐ Make sure RStudio package check does not complain about anything
☐ Make sure all outstanding tickets are closed or moved to the next release
☐ Write release notes
☐ Review and update test plan [to reflect new features]
☐ Review and update user manual [to reflect new features]
☐ Tag a new release candidate as https://svn.glbrc.org/YeastHTS/tags/rcX.Y.Z, where X is a major version and Y is a minor version. Z can optionally be included as an iteration of a minor version, e.g. with bug fixes.
☐ Install the new release on the test server
☐ The first and the last minor versions of each major version are to be tested by Enhai.
☐ Ask IT to install the new version on production server
Need to make sure that (estimated) inoculation OD, or its natural log, is consistently used as the baseline value, not parameter b of sigmoid equations.
Peris: I've included the script (tecan_back_sustr.R) that I designed for
R, to extract background values for each time point doing the average
value of 3 background wells. It could be useful to integrate that option
in GCAT.
This file seems to hang GCAT. The likely reason is that it has a lot of extra columns with nothing in them. It works fine when those columns are removed. Files like this should be detected as invalid and GCAT should generate an error.
Let user specify time and OD columns and long or wide format. Alternatively, build converters from different formats.
Peris: Some people, as in our lab, usually use FLUOstar system instead of
TECAN because we can grow yeast below 28ºC where TECAN can not. But the
format is different and it needs some manipulation. I was working with a
python script to transform the format to a format similar to TECAN but I
couldn't be done with that yet. I've attached a FLUOstar format
(Plate#7_2_MARS_output.xlsx) if you consider GCAT could be open to
accept other formats and not only TECAN. A description of the columns is
attached as well (FLUOstar_output_info.txt).
The email address [email protected] does NOT receive any emails about the error
The issue:
OD transform log(x+s) when s = 2 will generate error in Multiple-plate case
The steps to produce the issue:
see the attachment for the setting "od_log_2.PNG"
Multiple-plate
upload file "multi - test_YYYY_MM_DD_HH_MM_SS.csv"
Media background/user input = 0.04
OD transform/ log (x+s), s= 2
The others keep default
Create Assay
See the attachment log_2_error.PNG for the error details.
The new layout, implemented in GCAT 6.0, is inconvenient. The user has to scroll both vertically and horizontally to see the whole page. Can we go back to the old front page design that existed in GCAT 4? Or can the page just be made more narrow?
The current layout forces the user to scroll both vertically and horizontally. This is inconvenient. Need to eliminate or minimize horizontal scrolling. Consider restoring front page layout from GCAT 4.
Context : Giving user option of selectively defining boundary range (see Issue 32)
Only keep the columns that GCAT recognizes, e.g. by header and data type. This will make GCAT simply throw out a temperature column and any other superfluous columns that don't contain time or OD.
The other boundary should then default to the min or max value as appropriate. Currently, if only one value is specified, it is simply ignored, which is counter-intuitive.
GCAT package check gives the following warning:
Undocumented arguments in documentation object 'plot,well,missing-method'
'auc.start' 'auc.end'
Functions with \usage entries need to have the appropriate \alias
entries, and all their arguments documented.
Discuss the requirement for the same.
Testing/test_input_files/Piotrowski_time_format/bigtecan test 2.csv can't be processed. The error I get is:
["Error in gcat.fit.main(file.name = file.name, load.type = "csv", single.plate = single.plate, : \n Error in <gcat.load.data>: Error in _tmp_row, col, plate? : subscript out of bounds\n\n"]
I believe the format that Nate has created to handle this is "11/05/2013 16:22", i.e. "mm/dd/yyyy hh:mm". The Piotrowski format is "7/15/2013 16:55", i.e. the same. So why do I still get an error?
I found out that the error was caused not by the date format but by the presence of 2 empty rows at the bottom of the spreadsheet. Those rows have been removed from file "bigtecan test 2_1.csv", and GCAT processes it just fine. We should, however, make GCAT ignore empty rows at the bottom of the file in the future, as those are quite likely to occur when a file is exported from Excel.
R refuses to initialize a well object with empty @Loess and @nls slots. It requires them to be of "loess" and "nls" class respectively. The current work-around is to initialize them to empty lists with class attributes set to "loess" and "nls". This, however, causes an error when a well object is printed, which required another work-around in the "show" method. This is all clunky. Is there a better way to do it? Consider the following possibilities:
Is there another way that we are not thinking about? Investigate and implement the best solution.
The same may be needed for the @equation slot as well.
Currently, if nls fails to converge, GCAT immediately switches to an alternative model. See if changing the initial guess would help first. Try randomly changing all initial guess values by 10% and fitting again. If still fails, what about a larger change, e.g. 30% or 50%?
If Richards model fails, GCAT switches to logistic. This is not necessarily the best choice. Try fitting both logistic and Gompertz, then choose the one with the lower RSS.
Record the fact that a fit has failed in a slot in the well object.
Fix already existing issue :
If user provide minimum values and maximum values (for heat map ranges) higher than max spec growth in wells and lower than min spec growth in wells respectively, then user should get an error.
The ranges need to be numeric and positive, with min value < max.
Example: ACSH686 GWASv1 dataset. If inoculation time point is set to 11 but points 1-10 are not explicitly ignored, it looks like GCAT's fitting algorithm still uses them as valid data.
Make sure they do not clash with the growth curve itself. Print them beside R squared?
Hello GCAT team,
In my growth reader experiments, I typically have numerous strains of yeast growing in numerous media conditions on the same plate. I would like to be able to generate the following two types of plots (based on data that will be in the "plate layout" file (graphical representation of the plate layout below):
Since plotting is something that researchers can be fairly particular about (especially when making figures for papers), a potential long-term goal would be to have an interactive tool where a researcher can highlight wells to plot (and other options) and GCAT will spit out the multi-curve plot [should this be a separate ticket?]
Thanks for your help,
--Drew
To reproduce the issue, select default example single plate input file and layout file. Set media background to the "first OD reading". Set Growth Curve Model to LOESS. Click the submit button.
Error message:
Error in gcat.output.main(fitted.well.array.master, out.prefix = "output", : Error writing tabular output
This is a regression testing script. Find out why it fails and fix the error.
They correspond to auc.start and auc.end parameters of gcat.analysis.main().
Make a heat map for each growth curve parameter reported in the output table.
Currently, if a value is outside of the user-specified range, the corresponding spot on the heat map appears blank, as if it were a well where there was no growth or the fit failed. This is not the correct behavior. If the value is greater than the range or lower than the range, it should be shown as the corresponding extreme of the color scale, not as blank.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.