Я профилирую микроокружение опухоли и хочу показать взаимодействия между подгруппами, которые я обнаружил.У меня есть, например, список рецепторов и лигандов, и я хочу показать, что популяция А экспрессирует лиганд 1, а популяция С экспрессирует рецептор 1, поэтому, вероятно, существует взаимодействие между этими двумя популяциями посредством экспрессии лиганд-рецептор 1.
Я пытался использовать circlize для визуализации этих взаимодействий, делая chordDiagram
, но для этого требуется матрица смежности в качестве входных данных, и я не понимаю, как создать матрицу.Матрица смежности должна показать силу отношений между любыми двумя генами в моей матрице.У меня есть 6 уникальных популяций клеток, которые могут экспрессировать любой из 485 лигандов / рецепторов, которые меня интересуют, и цель состоит в том, чтобы показать взаимодействия между этими популяциями через лиганды и рецепторы.
Я нашел инструмент для использования в RStudio, который называется BUS-gene.shoity: Рассчитать матрицу смежности для взаимодействия генов-генов.
Возможно, я просто неправильно использую BUS, но он говорит: Для данных по экспрессии генов с M генами и N экспериментами матрица смежности имеет размер MxM.Матрица смежности размером MxM со строками и столбцами, обозначающими гены.Элемент в строке i и столбце j указывает на сходство между геном i и геном j.
Итак, я создал матрицу, в которой каждый столбец представляет собой субпопуляцию, а каждый ряд представляет собой лиганд / рецептор, с которым я хочу показать взаимодействия.Ячейки имеют значения экспрессии, и это выглядит так:
> head(Test)
A B C D E F
Adam10 440.755990 669.875468 748.7313995 702.991422 1872.033343 2515.074366
Adam17 369.813134 292.625603 363.0301707 434.905968 1183.152694 1375.424034
Agt 12.676036 28.269671 9.2428034 19.920561 121.587010 168.116735
Angpt1 22.807415 42.350205 25.5464603 16.010813 194.620550 99.383567
Angpt2 92.492760 186.167844 819.3679836 852.666499 669.642441 1608.748788
Angpt4 3.327743 0.693985 0.8292746 1.112826 5.463647 5.826927
Где AF - мои популяции.Затем я передаю эту матрицу в BUS:
res<-gene.similarity(Test,measure="corr",net.trim="none")
Warning message:
In cor(mat) : the standard deviation is zero
Но выходной файл, который должен быть моей матрицей смежности, заполнен NA:
Adam10 Adam17
Adam10 1 NA
Adam17 NA 1
Я подумал, что моя матрица слишкомсложный, поэтому я сравнил только 2 клеточные популяции с моими лигандами / рецепторами, но я получил точно такой же результат.
Я ожидал получить что-то вроде:
A:Adam10 A:Adam17
C:Adam10 6 1
E:Adam17 2 10
Но даже еслиобъект res
дал мне числа вместо NA
, он не поддерживает идентичность популяции при установлении связей между генами, поэтому он все равно не даст ожидаемого результата.
Мне не нужно использовать BUS для создания матрицы, поэтому мне не обязательно нужна помощь в устранении неисправностей этого кода, мне просто нужен НЕКОТОРЫЙ способ сделать матрицу смежности.
Я имеюникогда раньше не использовал Cirlize или Circos, поэтому я прошу прощения, если мой вопрос глуп.