Coder Social home page Coder Social logo

gcat's People

Contributors

cank avatar minhdb avatar thethirduniverse avatar ybukhman avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gcat's Issues

Analyze diauxic curves

OD values for several strains (Plate#5_2%_Raffinose_A.xlsx), you
can see the growth curve representation in the picture file
(Plate#5_2%_raffinose_A.png). It could be cool to get an implementation
in GCAT to extract the two lag phases, two growth rates and the maximum
OD for those special curves.
plate 5_2 _raffinose_a

Compute area under the curve from specified range of time points

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.

Average OD of blank wells at each time point

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.

Is parameter of sigmoid equations b necessary?

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.

Error Handling between Rails and R

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.

GCAT 6.1 release check list

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

File hangs 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.

Flexible input file format

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).

OD transform log(x+s) when s = 2 will generate error in Multiple-plate case

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.

Eliminate horizontal scrolling of the front page

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?

Make front page 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.

Fixing Heat Map in R

Context : Giving user option of selectively defining boundary range (see Issue 32)

  1. Change how heat.text is handled
  2. Modify create.heatmap function to take care if an input like (1, NA) is passed from Rails for heatmap

Ignore unneeded columns in the input file

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.

Undocumented function arguments

GCAT package check gives the following warning:

  • checking Rd \usage sections ... WARNING
    Undocumented arguments in documentation object 'create.heatmap'
    'range.name'

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.

Empty rows at the bottom of the input file cause an error

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.

find a more elegant way to initialize well object

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:

  1. Use inheritance to define a "well" superclass that does not have @Loess and @nls slots and sub-classes that do have them. A new well would initially be of class "well", then assigned to the appropriate sub-class when the right object is available to populate the @Loess and/or @nls slot.
  2. Can instead use a generic slot with class set to "ANY". However, this is less rigorous.

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.

what to do if a nls model fails

  1. 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%?

  2. 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.

  3. Record the fact that a fit has failed in a slot in the well object.

Plot multiple wells on same plot based on media condition or strain

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):
screen shot 2015-12-08 at 3 58 50 pm

  1. Plot by media condition, i.e. plot all of the "red" wells and label by strain number. Answers the question: "how did the various mutant strains respond to this media compared to the wild-type strain?"
  2. Plot by strain, i.e. plot all of the "1s" together and label by media condition (color). Answers the question: "how did an increasing concentration of copper affect the growth of this single strain?"

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

LOESS fitting broken in GCAT 6.2

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

Fix heat maps

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.