calebclass / NanoTube

Easy NanoString data analysis
GNU General Public License v3.0
1 stars 2 forks source link

Running limma analysis #11

Closed georgersmith99 closed 8 months ago

georgersmith99 commented 8 months ago

Hi Caleb,

Im trying to run limma analysis on two conditions within a CSV, both with 3 repeats but am unsure on how to perform this. Im not sure how the data is laid out in the examples and was wondering if i can have some help.

this is my current code:

dat <- processNanostringData(nsFiles = "/Users/georgesmith/Documents/INS Year 4/OND2.csv",
                             replicateCol = c('ON_D2_1', 'ON_D2_2', 'ON_D2_3'), 
                             groupCol = "CodeClass",
                             idCol = "Name",
                             normalization = "nSolver",
                             housekeeping = c("PGK1", "OAZ1", "TBP", "POLR2A", 
                                              "ABCF1", "SDHA", "NRDE2", "PPIA",
                                              "UBB", "STK11IP","G6PD","TBC1D10B"),
                             bgType = "t.test", bgPVal = 0.01,
                             output.format = "ExpressionSet"
                             )

My data is laid out like this as a csv:

Codeclass | Accession | Name | Condition 1 Repeat 1 | Condition 1 Repeat 2 | Condition 1 Repeat 3 | Condition 2 Repeat 1 | Condition 2 Repeat 2 | Condition 2 Repeat 3

Any help would be massively appreciated thank you!

Cheers George

calebclass commented 8 months ago

Hi George,

Sorry for the confusion! You don't actually want to use the replicateCol in this case - those replicates get averaged before analysis. For example, it might be useful if you want to compare 5 patients from Group A with 5 patients from Group B, and all of the patients have 2 samples. The same-patient samples can be averaged as replicates, and we then compare Group A vs. Group B with limma.

NanoTube gives you the option to provide a sampleData file, which would look something like this in your case: Sample Condition Condition 1 Repeat 1 Condition1 Condition 1 Repeat 2 Condition1 Condition 1 Repeat 3 Condition1 Condition 2 Repeat 1 Condition2 Condition 2 Repeat 2 Condition2 Condition 2 Repeat 3 Condition2

Then you can use "Condition" as the groupCol.

Alternatively (and maybe easier), you can not include any sampleData/groupCol/etc, and you can manually provide group info to NanoTube.

dat <- processNanostringData(nsFiles = "/Users/georgesmith/Documents/INS Year 4/OND2.csv",
                             normalization = "nSolver",
                             housekeeping = c("PGK1", "OAZ1", "TBP", "POLR2A", 
                                              "ABCF1", "SDHA", "NRDE2", "PPIA",
                                              "UBB", "STK11IP","G6PD","TBC1D10B"),
                             bgType = "t.test", bgPVal = 0.01,
                             output.format = "ExpressionSet"
                             )
groups <- c("Condition1", "Condition1", "Condition1", "Condition2", "Condition2", "Condition2")
design <- model.matrix(~groups)
lmfit <- runLimmaAnalysis(dat, design = design)

Good luck! Let me know if you have any other questions. -Caleb