自学内容网 自学内容网

TM-align蛋白质聚类数据格式转化

TM-align 对蛋白质结构中的序列进行同源性聚类分析的结果格式如下:

8p0k_H8p0k_H
8p0k_H8p0n_H
8p0k_H8p0j_H
8p0v_M8p0v_M
8p0y_O8p0y_O
8p0y_O8p10_O
8p0y_O8p0y_A
8p0y_O8p10_D
8p0y_O8p24_V
8p0y_O8p24_Z

其中,第一列为聚类的代表序列,第二列为这一聚类的同源序列

把这个格式转换成csv文件:

第一列为编号,第二列为聚类的代表序列,第三列为所有的其它同源序列,逗号隔开。

如:

IDX   CLUSTER   HOMOLOG

1     8p0k_H    "8p0n_H,8p0j_H"

代码:

import csv
from collections import defaultdict

# 初始化字典存储代表序列及其同源序列
clusters = defaultdict(list)

# 从文件中读取数据
with open('result.tsv', 'r') as file:
    for line in file:
        rep, seq = line.strip().split()  # 去除换行符并按制表符分割
        if rep != seq:  # 只保留同源序列,去掉代表序列
            clusters[rep].append(seq)

# 将结果写入CSV
with open('clusters.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['IDX', 'CLUSTER', 'HOMOLOG'])
    
    for idx, (rep, seqs) in enumerate(clusters.items(), 1):
        writer.writerow([idx, rep, ','.join(seqs)])

print("CSV文件已生成")

可以进一步把不符合要求的结构过滤掉,从而得到的数据集可以用于结构预测或蛋白质设计的模型研究。


原文地址:https://blog.csdn.net/qq_27390023/article/details/142468491

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!