Cytoscape导入TSV自动识别列表列及关联现有网络问题
问题解决方案
一、GUI导入时让Cytoscape自动识别列表列
可以通过修改TSV表头指定列类型为带分隔符的字符串列表,格式是在列名后追加(class=List<String>; delimiter=|)。修改后的TSV内容如下:
id accessions (class=List<String>; delimiter=|) 1 ABCDE.1|CDEFG.1 2 EFGH.1
使用File/Import/Table From File导入时,Cytoscape会自动将accessions列识别为以|分隔的字符串列表,无需手动设置。
二、命令行导入时关联现有网络的节点属性
你之前用的network import file命令核心作用是创建新网络,即便指定rootNetworkList也只是在现有根网络下生成子网络,无法将属性关联到已有节点。要给现有网络节点追加属性,需改用table import file命令,示例如下:
table import file file="example.tsv" table="node" keyColumnIndex=0 targetKeyColumn="nodeId" columnTypes="String,List<String>" delimiters="|" startRow=2
关键参数说明:
table="node":指定导入目标为节点属性表keyColumnIndex=0:用TSV的第1列(id列)作为匹配主键targetKeyColumn="nodeId":匹配现有网络中的节点ID列(如果你的节点ID列名不同,替换为实际名称)columnTypes="String,List<String>":明确列类型,第二列为字符串列表delimiters="|":指定列表的分隔符startRow=2:跳过表头,从第2行加载数据
执行该命令后,TSV中的属性会自动关联到现有网络中ID匹配的节点,不会新建网络,同时能保证所有匹配节点都能获取到对应属性。
内容的提问来源于stack exchange,提问作者C. Zeil
相关产品推荐
相关产品推荐

