Я изучил вашу проблему и сначала скептически относился к трансформации read.fcs. Просматривая ваш файл примера, я также вижу, что уже есть столбцы для вашего исходного (полного графика) графика tsne, поэтому я предполагаю, что flowjo переписывает значения tsne после того, как вы прочитали / записали его в R. Так как Flowcore, как правило, более целенаправленный в сторону потоковых данных, а не cytof, я взял несколько кусочков этой прогулки по Bioc2017, хотя и пересоздал преобразования, которые, кажется, работают лучше, хотя я не уверен, как flowjo будет обрабатывать данные сейчас. Если вы собираетесь выполнять больше работы с данными, то теперь мы имеем их на доступном низком уровне, поэтому вы можете делать все, что захотите. Вот мой код.
fcs_raw <- read.flowSet("~/Downloads/export_MIX_NT_Ungated_viSNE.fcs", transformation = FALSE,
truncate_max_range = FALSE)
fcs <- fsApply(fcs_raw, function(x, cofactor = 5){
expr <- exprs(x)
expr <- asinh(expr[,] / cofactor)
exprs(x) <- expr
x
})
expr <- fsApply(fcs, exprs)
library(matrixStats)
rng <- colQuantiles(expr, probs = c(0.01, 0.99))
expr01 <- t((t(expr) - rng[, 1]) / (rng[, 2] - rng[, 1]))
expr01[expr01 < 0] <- 0
expr01[expr01 > 1] <- 1
expr01
summary(expr01)
Имейте в виду, что это портит ваши исходные номера столбцов tSNE, поэтому, если бы они были важны для вас, я бы прочитал набор потоков, сделал копию этих столбцов и продолжил анализ данных в коде. Если у вас есть вопросы или анализ будущих данных, свяжитесь со мной напрямую.