Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DE between different groups : post-hoc tests? #139

Open
fabien-tell opened this issue Jul 10, 2020 · 3 comments
Open

DE between different groups : post-hoc tests? #139

fabien-tell opened this issue Jul 10, 2020 · 3 comments

Comments

@fabien-tell
Copy link

Hello,
I'm analyzing single cell RT-PCR experiments. For each cell 57 gene expressions are measured and expressed as "et" as required. I want to know if there is DE between 3 locations (factor= location : ( A, B, C) in the cData file)
In code

sca <- FromMatrix(genes_W_T, cData, fData)

zlm.output <- zlm(~ locations, sca)
show(zlm.output)
zlm.lr <- lrTest(zlm.output, 'location')
pvalue <- ggplot(melt(zlm.lr[,,'Pr(>Chisq)']), aes(x=primerid, y=-log10(value)))+
    geom_bar(stat='identity')+facet_wrap(~test.type) + coord_flip()
print(pvalue)

Actually, I only get three p_values (continuous, discrete, hurdle) by gene. I was expecting to obtain at least two series (A vs B) and (A vs C ) groups.
I may have misunderstood. The output of your zlm model may yields to an overall difference between groups ( ANOVA does ) and then we have to do post-hoc tests when the number of groups is greater than 2? If it is the case how to do it with Mast and are FDR correction available?

Thanks a lot

@amcdavid
Copy link
Member

amcdavid commented Jul 10, 2020

lrTest(zlm.output, 'location') drops the entire location term from the model, so a 2 degree of freedom test. To test an individual coefficient is zero you can do something like lrTest(zlm.output, CoefficientHypothesis('locationA')

@fabien-tell
Copy link
Author

fabien-tell commented Jul 10, 2020

Thank you.
I had not understood well.
It means that with different factor levels (A, B, C), the test has to be done several times ? :

lrTest(zlm.output, CoefficientHypothesis('locationA')
lrTest(zlm.output, CoefficientHypothesis('locationB')
lrTest(zlm.output, CoefficientHypothesis('locationC')

In this case, what do the p-values for each gene represent ?
With only two levels (e.g. location = A B) I had understood that they represented the difference between A and B location for each gene but now with (A, B, C) I 'm confused. Each above code lines will give me a p-values object with different metrics (lambda, df, p_values) for continuous, discrete and hurdle models but I do not understand it well which comparison is made.

My goal is to test whether gene expression differs between A and B, A and C and B and C. I could use a non-parametric ANOVA followed by post-hoc but this approach looks better because as you may know with single cell PCR, distribution are characterized by a lot of zeros values.

Thanks for your help and patience

@fabien-tell fabien-tell changed the title DE between different groups : post-oc tests? DE between different groups : post-hoc tests? Jul 10, 2020
@gfinak
Copy link
Member

gfinak commented Nov 19, 2020

@fabien-tell okay to close this issue? Do you still have questions?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants