如何使用混淆矩阵导入网络?

How do you import a network using a confusion matrix?

我有一个混淆矩阵(我认为),它看起来像这样:

我想在 cytoscape 上制作这个网络,这样我就可以 运行 一些建模,但我不确定如何做。

有什么想法吗?

以我对 Cytoscape 的有限了解,没有直接的方法可以将混淆矩阵导入 Cytoscape。也许有些应用程序确实支持它。

最直接的做法是将矩阵转换为合适的格式,例如使用以下脚本。
然后您就可以直接将生成的 CSV 导入 Cytoscape,甚至可以通过拖放到网络面板。

#!/usr/bin/python
import sys

DELIMITER = ","
NO_INTERACTION_VALUE = "0"

if len(sys.argv) != 2:
    print("Please use as follow sh ./matrix-to-list.py <file-to-convert>")
    sys.exit(1)

to_convert_name = sys.argv[1]
result_name = ".".join(to_convert_name.split(".")[:-1]) + "-converted.csv"
output = []

with open(to_convert_name, "r") as to_convert:
    rows = [[value.strip() for value in row.split(DELIMITER)] for row in to_convert.readlines()]
    ids = rows[0][1:]
    for i in range(len(rows) - 1):
        row = rows[i + 1]
        target = row[0]
        for j in range(i + 1):
            value = row[j + 1]
            if value != NO_INTERACTION_VALUE:
                output.append(ids[j] + DELIMITER + target)

with open(result_name, "w") as result_file:
    result_file.write("idA,idB\n")
    result_file.write("\n".join(output))

aMatReader 应用程序能够执行此类导入,只需安装它然后转到 Apps > aMatReader > Import Matrix Files