У меня есть матрица, содержащая имена генов и номера образцов. Каждая строка является логическим вектором, указывающим образцы, в которых был обнаружен ген. Гены должны появляться как минимум из 4 образцов из 8, чтобы сделать это до сих пор (все еще в матрице). т. е. все гены в этой матрице появляются в 4 или более образцах.Как я могу получить самый большой набор строк, которые имеют общий набор не менее 4 столбцов?
Sample1 Sample2 Sample3 Sample4 Sample5 Sample6 Sample7 Sample8
gene1 TRUE FALSE TRUE TRUE TRUE FALSE FALSE FALSE
gene2 FALSE TRUE FALSE TRUE FALSE TRUE TRUE FALSE
gene3 TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE
gene4 FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE
gene5 TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE
gene6 FALSE FALSE TRUE FALSE FALSE TRUE TRUE TRUE
gene7 TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE
gene8 TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE
Я мог бы также сказать, у меня есть список образцов, для которых была выражена последняя, таких как:
> gene1
[1] "Sample1" "Sample3" "Sample4" "Sample5"
Как я могу получить самый большой набор генов (строк), которые принадлежат к общий набор из 4 образцов (столбцов)?
Редактировать: Этот вопрос вытекает из пытаюсь воссоздать этот:
анализа Outlier основан на предположении, что образцы (клетка) те же типа также имеет набор наиболее часто выраженные гены.
Алгоритм вытеснения итеративно обрезает низко выражающие гены в файле экспрессии до тех пор, пока 95% оставшихся генов не вырастут выше предела значения обнаружения (LoD), установленного для половины выборок.
Предполагается, что набор образцов содержит менее 50% выбросов. Это означает, что последующие вычисления будут включать только половину образцов, которые имеют самое высокое выражение для обрезанного гена .
Кадрированное список генов представляет гены, которые присутствуют выше Лода, по крайней мере, половина образцов или наиболее равномерно выражены гены, хотя они не могли бы быть самым высоким или самым низким в их выражения стоимости.
Для 50% оставшихся образцов вычисляется распределение , которое представляет собой их комбинированное выражение значений для списка генов, определенного выше. Для этого распределения медиана представляет значение выражения 50-го процентиля для набора данных .
Может быть 'm2 <- m1 [rowSums (m1)> = 4,]; apply (m2, 1, function (x) colnames (m2) [x]) ' – akrun
Спасибо за ваш ответ @akrun. Можете ли вы объяснить, что делает ваша функция? – gaelgarcia
Я не уверен, так как мне непонятно, для чего предназначена функция apply (x). – gaelgarcia