ybukhman / GCAT

Growth curve analysis tool
2 stars 3 forks source link

Ticket #35,34,29,27,32,44 #41

Closed thethirduniverse closed 8 years ago

thethirduniverse commented 8 years ago
  1. added average option for OD blank
  2. added more tests (see detail in GCAT_Roadmat.txt)
  3. re-factored code
ybukhman commented 8 years ago

The new Media background option should state explicitly that we are talking about the average of blank wells, rather than all wells. Currently: "Average OD at each time point". Change to: "Average OD of blank wells at each time point". Also, this new option seemed to disappear after I ran a couple of analyses and would not reappear until I restarted the server. However, I haven't been able to reproduce that issue.

thethirduniverse commented 8 years ago

I have fixed the wording and change the pull request name to match the changes.

I have also moved the 'mailing' link to the layout so that it can be shown at every page. I added another mailing link to the input_error page. But I haven't yet create any automatic mailing support for it.

thethirduniverse commented 8 years ago

As for the new option not being displayed, will opening a new assay help? Or do you have to re-start the server?

ybukhman commented 8 years ago

When it did happen, I had to restart the server. Just opening a new assay did not help. However, I haven't been able to reproduce this issue, i.e. the new option did not disappear again after I restarted the server and ran some assays again. I guess we can't do anything at this point except wait and see if this happens again?

ybukhman commented 8 years ago

It seems that input parameters are "sticky". When you run an assay, then click "New Assay", then run another assay with different parameters, parameters from the previous assay are used. For example, I ran a single plate assay with default settings, no layout file and Media background = User Input = 0.04. Then I clicked New Assay, selected the same data file, no layout file and Media background = "Average OD of blank wells at each time point". I expected to get an error, but GCAT just ran the assay with Blank OD = 0.04 again.

thethirduniverse commented 8 years ago

Hi Yury.

That behavior is strange. I'll take a look at it as soon as I have time.

By the way, why should we expect an error in that case? Shouldn't it be a valid option for OD? Or is it because we don't have a layout file?

I'm so sorry for the inconvenience.

Best, Guanqing Yan

在 2015年11月11日,14:39,Yury V Bukhman notifications@github.com 写道:

It seems that input parameters are "sticky". When you run an assay, then click "New Assay", then run another assay with different parameters, parameters from the previous assay are used. For example, I ran a single plate assay with default settings, no layout file and Media background = User Input = 0.04. Then I clicked New Assay, selected the same data file, no layout file and Media background = "Average OD of blank wells at each time point". I expected to get an error, but GCAT just ran the assay with Blank OD = 0.04 again.

— Reply to this email directly or view it on GitHub.

ybukhman commented 8 years ago

If Average OD of blank wells at each time point is selected but no layout file is specified, R is supposed to throw an error. GCAT needs a layout file to determine which wells are blank. The output text file shows "gcat.analysis.main() starting environment" near the bottom. You can look at it to see what values have actually been passed to R. Look for the following:

$blank.value
[1] 0.04

To see this file, download the output files by clicking on the plate schematic on GCAT's results page.

thethirduniverse commented 8 years ago

I have been unable to reproduce this error on my computer. I am using fire-fox and start the server by "rails server". Any clicking "new assay" will always gives me a new assay. How do you start the server to test it?

Also, when I am only passing a layout file and a data file to R, with the option "average OD of blank wells at every time point" selected. It give me an error like:

Error
non-numeric argument to binary operator

Error in gcat.fit.main(file.name = file.name, load.type = "csv", single.plate = single.plate, : Error in <normalize.ODs>: Error in blank.value - add.constant : non-numeric argument to binary operator
ybukhman commented 8 years ago

Hi Guanqing,

I am using Firefox on Windows. My GCAT server runs on Windows also. I start it with “rails s”. Maybe running the server on Windows is the cause of this issue? I’ll copy it to gcat-test, which runs Linux, and see if it still happens there.

When you run the analysis directly in R, the option you are supposed to pass to gcat.analysis.main() is blank.value = "average.layout"

From: Guanqing Yan [mailto:notifications@github.com] Sent: Friday, November 13, 2015 1:14 PM To: ybukhman/GCAT GCAT@noreply.github.com Cc: Yury Bukhman ybukhman@glbrc.wisc.edu Subject: Re: [GCAT] Ticket #35,34,29,27 (#41)

I have been unable to reproduce this error on my computer. I am using fire-fox and start the server by "rails server". Any clicking "new assay" will always gives me a new assay. How do you start the server to test it?

Also, when I am only passing a layout file and a data file to R, with the option "average OD of blank wells at every time point" selected. It give me an error like:

Error

non-numeric argument to binary operator

Error in gcat.fit.main(file.name = file.name, load.type = "csv", single.plate = single.plate, : Error in : Error in blank.value - add.constant : non-numeric argument to binary operator

— Reply to this email directly or view it on GitHubhttps://github.com/ybukhman/GCAT/pull/41#issuecomment-156530982.

thethirduniverse commented 8 years ago

rails s is supposed to be a short hand notation for rails server, so that shouldn't be a problem.

  if (self.blank_value == 'default')
      R.eval "blank.value <- NULL"
    elsif (self.blank_value == 'zero')
      R.eval "blank.value <- 0"
    elsif (self.blank_value == 'average')
      R.eval "blank.value <- \"average.layout\""
    elsif (self.blank_value == 'user')
      R.assign "blank.value", self.blank_value_input.to_f
    end

This is the piece of Ruby code I used, and I checked that it did pass "average.layout" to gcat.analysis.main. However, it still doesn't detect whether the layout-file is empty.

Are you able to use "average OD of empty wells at each time point" to perform a successful assay?

ybukhman commented 8 years ago

Are you able to use "average OD of empty wells at each time point" to perform a successful assay?

[>] I’m pretty sure I was able to do that. I’m not at the office today. Will probably check again on Monday.

thethirduniverse commented 8 years ago

Okay, I'll talk to you more in detail at that time.

thethirduniverse commented 8 years ago

I finally can reproduce the error on my computer with the help from Aman. I was not updating the R library correctly. Now I can start working on the fix.

ybukhman commented 8 years ago

Sounds good! Thanks, Aman!

From: Guanqing Yan [mailto:notifications@github.com] Sent: Friday, November 13, 2015 5:11 PM To: ybukhman/GCAT GCAT@noreply.github.com Cc: Yury Bukhman ybukhman@glbrc.wisc.edu Subject: Re: [GCAT] Ticket #35,34,29,27 (#41)

I finally can reproduce the error on my computer with the help from Aman. I was not updating the R library correctly. Now I can start working on the fix.

— Reply to this email directly or view it on GitHubhttps://github.com/ybukhman/GCAT/pull/41#issuecomment-156584586.

amangpt777 commented 8 years ago

Sure! No problem :)

thethirduniverse commented 8 years ago

I fixed the bug that you mentioned. The reason for the bug is that R will try to signal an error by throwing an exception, but that cannot be handled very well by RinRuby. I worked around this problem by doing a validation in Rails. But it still requires Aman to fix the R side.

Besides, I implemented ticket 32. Now users are able to specify only one end of heapmap ranges. However, the R code does not seems to support it yet...It will throw an error like this:

Error: Heat map range must be numeric and finite. Bad range: 1-NA

I'll first comment it out and then add it back when Aman finishes the R code.

thethirduniverse commented 8 years ago

Fixed #44 as well. Due to a strange reason, we still cannot eliminate use.linear.param=F in the main function call.