Я пытаюсь настроить скрипт для вычисления дифференциальной экспрессии гена (geneX - geneControl). Моя цель - настроить этот сценарий таким образом, чтобы нам не нужно было знать количество протестированных генов или имена, чтобы он был полезен во всех экспериментальных данных. Примечание: geneControl одинаков во всех экспериментах.
Входные данные
Well Sample.Name Target.Name Cт
1 A1 W1 A8 23.67683
2 A2 W2 A8 23.17297
3 A3 KO1 A8 22.80132
4 A4 KO2 A8 22.77349
5 A5 UX1 A8 22.90352
6 A6 UX2 A8 23.52261
dCT <- function(sub) {
tryCatch(data.frame(Sample = sub$Sample.Name,
Target = sub$Target.Name,
CT = sub$Cт,
dCT = (sub$Cт[1] - sub$Cт[2])),
error = function(e)
data.frame(Sample = sub$Sample.Name,
Target = sub$Target.Name,
CT = sub$Cт,
dCT = (sub$Cт[1] - sub$Cт[2]))
)
}
# CALL BY(), PASSING SUBSETS TO DEFINED FUNCTION
df_list <- by(data, data[c("Target.Name")], dCT)
Пример вывода:
$A8
Sample Target CT dCT
1 W1 A8 23.67683 NA
2 W2 A8 23.17297 NA
3 KO1 A8 22.80132 NA
4 KO2 A8 22.77349 NA
5 UX1 A8 22.90352 NA
6 UX2 A8 23.52261 NA
$C4
Sample Target CT dCT
1 W1 C4 25.53656 NA
2 W2 C4 24.45682 NA
3 KO1 C4 23.88133 NA
4 KO2 C4 24.44674 NA
5 UX1 C4 24.80964 NA
6 UX2 C4 25.21688 NA
В столбце dCT указан ген $ C4 - должен быть найден ген $ A8.