0
$\begingroup$

I have several cell cultures at different salinities. I have 4 replicates at each salinity. You can get an example of the data, with 2 salinities, here:

ID=c("F58.0.1", "F58.0.1", "F58.0.1", "F58.0.1", "F58.0.1", "F58.0.1", "F58.0.1",  "F58.0.1"  ,"F58.0.1"     ,"F58.0.1" , "F58.0.2" , "F58.0.2" , "F58.0.2"  ,"F58.0.2"  ,"F58.0.2"  ,"F58.0.2"  ,"F58.0.2"  ,"F58.0.2"      , "F58.0.2" , "F58.0.2",  "F58.0.3" , "F58.0.3" , "F58.0.3"  ,"F58.0.3" , "F58.0.3"  ,"F58.0.3" , "F58.0.3"      ,"F58.0.3" , "F58.0.3" , "F58.0.3" , "F58.0.4"  ,"F58.0.4"  ,"F58.0.4"  ,"F58.0.4"  ,"F58.0.4"  ,"F58.0.4"       ,"F58.0.4" , "F58.0.4"  ,"F58.0.4" , "F58.0.4"  ,"F58.50.1"     ,"F58.50.1" ,"F58.50.1", "F58.50.1" ,"F58.50.1" ,"F58.50.1" ,"F58.50.1" ,"F58.50.1" ,"F58.50.1" ,"F58.50.1"     ,"F58.50.2", "F58.50.2", "F58.50.2" ,"F58.50.2" ,"F58.50.2" ,"F58.50.2" ,"F58.50.2" ,"F58.50.2" ,"F58.50.2"      ,"F58.50.2", "F58.50.3", "F58.50.3", "F58.50.3", "F58.50.3", "F58.50.3", "F58.50.3", "F58.50.3", "F58.50.3"      ,"F58.50.3", "F58.50.3" ,"F58.50.4", "F58.50.4" ,"F58.50.4", "F58.50.4", "F58.50.4", "F58.50.4", "F58.50.4"      ,"F58.50.4", "F58.50.4" ,"F58.50.4")
salinity=c(0 , 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  ,0  ,0,  0  ,0  ,0  ,0,  0,  0,  0,
            0,  0,  0 , 0 ,50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 ,50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
           50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50)
day=c(0 , 1,  3,  6,  8, 10, 13, 15, 17, 20,0 , 1,  3,  6,  8, 10, 13, 15, 17, 20,0 , 1,  3,  6,  8, 10, 13, 15, 17, 20,0 , 1,  3,  6,  8, 10, 13, 15, 17, 20,0 , 1,  3,  6,  8, 10, 13, 15, 17, 20,0 , 1,  3,  6,  8, 10, 13, 15, 17, 20,0 , 1,  3,  6,  8, 10, 13, 15, 17, 20,0 , 1,  3,  6,  8, 10, 13, 15, 17, 20)

cells=c( 8 , 7,  9 ,13, 19, 20, 20, 19, 18, 21,  8,  8, 10, 21, 26, 25, 33, 40, 51, 71,  8,  7, 10,  8  ,9  ,8  ,5  ,1  ,1,  0,  8  ,7  ,6 ,14 ,16 ,16
         , 23, 30, 37, 42,8,  7 , 7 , 7 , 6 , 5 , 6 , 7 , 6 , 6 , 8 , 6 , 7 , 6 , 7 , 6 , 6 , 6 , 6 , 5 , 8 , 7 , 5 , 4 , 4 , 3 , 3 , 4
,         4 , 4 , 8 , 7 , 7 , 6 , 5 , 5 , 5 , 5 , 4 , 4)
data<-data.frame(ID,salinity,day,cells)

Which looks like this:

enter image description here

The 95% CI at salinity 0 is huge, there was a lot of divergence between replicates. There was also one culture/replicate that didn't work, I tried deleting it, but the CI is even bigger (because then I only have 3 replicates, I guess). Also, I don't know how to statistically detect outliers in this type of data, I don't know if I should really delete it or not.

But the main question is, how can I statistically compare these time series? (the values, the trend...and I don't know what else I should look at). How can I say wether the cells grow different or not at 0 and 50g/L salinity?

I saw a post in which they recommended adding a model and then comparing the models. But I have no experience with this type of data and I don't know which type of model whould I use.

$\endgroup$

1 Answer 1

1
$\begingroup$

First, notice that the CI for the number of live cells drops below 0 for salinity = 0 beyond day 14 or so. As having cell numbers less than 0 is not possible, you should interpret that as a clue that you need to think about this type of data in a different way.

A first step in analyzing count data with small numbers of counts is often to see if the data can be treated as coming from a Poisson distribution. For situations like this where you are trying to model the association of a variable like day with the counts, you need to use what's called a Poisson generalized linear regression model. That takes into account both the non-negative, discrete nature of the data and the way that the variance in the number of counts is expected to change with the number of counts. This web page has links to examples of Poisson regressions implemented in several types of statistical software.

With a Poisson distribution you should expect the standard errors to increase systematically with the number of counts: the variance in the number of counts equals the mean. That's qualitatively consistent with what you observe: narrow confidence intervals (CI) when counts are on the order of 10, but larger when counts are on the order of 40. That said, the width of the CI for your salinity = 0 seems to increase faster than you might expect from a Poisson model.

If you think that the number of cells increases linearly with time, you could model a slope over time that differs as a function of salinity. For example, in R you might write a Poisson model as:

cellCountModel <- glm(cells ~ day * salinity, data=data, family="poisson")

That models salinity and day as continuous linear predictors, giving:

  • an Intercept, the number of cells at reference conditions (day = 0 and salinity = 0),

  • a coefficient for day that is the change in cells per day atsalinity = 0,

  • a coefficient for salinity that represents the difference at day = 0 from salinity = 0 per unit of salinity, and

  • an interaction coefficient day:salinity that represents the difference from salinity = 0 in cells per day per unit of salinity.

With more than 2 salinity values in your full data set, you have to think about whether you want to model it as a continuous or a categorical predictor. You also have to consider whether the linear change in time is good enough to describe your data.

You also need to consider whether you need to take into account any lack of independence due to replicated measurements from the same ID values. That can be done with a mixed model or with generalized estimating equations.

My statistical sense is that the variance in your data about the predicted values is much larger than what would be expected from Poisson statistics, so you might need to use a model that handles such "over-dispersion": a quasi-poisson or a negative-binomial model.

My biological sense is that your data at salinity = 0 might be somewhat artifactual. It's very hard in practice to have exactly 0 salinity. If a slight increase in salinity from 0 has a large effect on cell viability, then your variability in the salinity = 0 data might represent deviations from true values of 0.

Once you work out those details of your data and modeling, I suspect that your results will make sense. Use this as an opportunity to learn about how to handle data that don't fit well into the standard ordinary least squares linear regressions you learned in introductory courses.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.