У меня есть файлы данных, структурированные следующим образом:
OTU1 PIA0 1120
OTU2 PIA1 2
OTU2 PIA3 6
OTU2 PIA4 10
OTU2 PIA5 1078
OTU2 PIN1 24
OTU2 PIN2 45
OTU2 PIN3 261
OTU2 PIN4 102
OTU3 PIA0 16
OTU3 PIA1 59
OTU3 PIA2 27
OTU3 PIA3 180
OTU3 PIA4 200
OTU3 PIA5 251
OTU3 PIN0 36
OTU3 PIN1 61
OTU3 PIN2 156
OTU3 PIN3 590
OTU3 PIN4 277
OTU4 PIA0 401
OTU4 PIN0 2
И я хочу создать матрицу, которая показывает комбинацию данных из второго столбца, принимая первый столбец в качестве ссылки для подсчетов комбинации (показывая, сколько раз измеряется каждый по номеру первого столбца -OTU1, OTU2, OTU3, OTU4- все данные из второго столбца появляются вместе друг с другом в одной OTU). Это должно выглядеть так:
PIA0 PIA1 PIA2 PIA3 PIA4 PIA5 PIN0 PIN1 PIN2 PIN3 PIN4
PIA0 1 1 1 1 1 1 2 1 1 1 1
PIA1 1 0 1 2 2 2 1 2 2 2 2
PIA2 1 1 0 1 1 1 1 1 1 1 1
PIA3 1 2 1 0 2 2 1 2 2 2 2
PIA4 1 2 1 2 0 2 1 2 2 2 2
PIA5 1 2 1 2 2 0 1 2 2 2 2
PIN0 2 1 1 1 1 1 0 1 1 1 1
PIN1 1 2 1 2 2 2 1 0 2 2 2
PIN2 1 2 1 2 2 2 1 2 0 2 2
PIN3 1 2 1 2 2 2 1 2 2 0 2
PIN4 1 2 1 2 2 2 1 2 2 2 0
Данные, совместно используемые строкой и столбцом с тем же именем, отражают количество раз, когда этот элемент данных появляется отдельно в OTU.
Любые идеи?
Я читал о библиотеках R reshape2 и команде acast здесь, но с этим я могу только изменить форму матрицы со всеми данными в ней, а не производить подсчет комбинаций по желанию. Я также думал о скрипте Biopython, но я думаю, что он был бы слишком большим и сложным для написания его с моими небольшими знаниями о программировании.
Цель состоит в том, чтобы построить матрицу, подобную той, которая приведена в примере, чтобы я мог запускать CIRCOS онлайн программа с этими данными.