次のような構造のデータファイルがあります。
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
そして、1列目を基準として2列目のデータの組み合わせを示すマトリックスを作成したいと思います(最初の列番号でそれぞれを測定した回数を示します-OTU1、OTU2、OTU3、OTU4- 2 番目の列の各データムは、同じ 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' hereについて読んだことがありますが、それを使用すると、すべてのデータを含むマトリックスの形状のみを変更でき、必要に応じて組み合わせをカウントすることはできません。私も Biopython スクリプトを考えていますが、プログラミングに関する知識がほとんどないため、書き留めるのは大きすぎて難しいと思います。
目標は、例のようなマトリックスを作成して、これらのデータを使用してCIRCOS オンラインプログラムを実行できるようにすることです。