当前位置: 首页 > article >正文

mmseqs2蛋白质聚类数据格式转化

mmseqs2 对蛋白质结构中的序列进行同源性聚类分析(mmseqs2进行pdb蛋白质序列聚类分析_pdb 蛋白质聚类-CSDN博客)的结果格式如下:

8p0k_H	8p0k_H
8p0k_H	8p0n_H
8p0k_H	8p0j_H
8p0v_M	8p0v_M
8p0y_O	8p0y_O
8p0y_O	8p10_O
8p0y_O	8p0y_A
8p0y_O	8p10_D
8p0y_O	8p24_V
8p0y_O	8p24_Z

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

注: 链的编号为pdb_strand_id

把这个格式转换成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文件已生成")

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


http://www.kler.cn/news/325639.html

相关文章:

  • C++进阶知识1继承
  • 从零预训练一个tiny-llama#Datawhale组队学习Task2
  • [题解] Codeforces Round 976 (Div. 2) A ~ E
  • OpenCV-图像拼接
  • C++游戏开发:构建高性能、沉浸式游戏体验的关键
  • 无人机之集群路径规划篇
  • 「系列投研|01」建立自己的移动比特币银行——赛道概况
  • Python办公自动化案例:实现XMind文件转换成Excel文件
  • AIGC: 从两个维度快速选择大模型开发技术路线
  • el-table初始化时根据传入数据选中某些行
  • HTML中的盒子模型(内置练习及答案)
  • 医院排班|医护人员排班系统|基于springboot医护人员排班系统设计与实现(源码+数据库+文档)
  • git 查看已经commit但是还没有push的所有文件变动内容
  • upsample nearest 临近上采样实现方式
  • Python: RAII:函数执行完毕,socket对象主动发送fin
  • golang Get: context deadline exceeded (Client.Timeout exceeded while aw
  • 第四届机器人、自动化与智能控制国际会议(ICRAIC 2024)征稿
  • Python 学习之生成图形验证码
  • 谷神后端$vs.proc.invoke.stock.loadMap
  • golang语法基础
  • 【大数据应用开发】2023年全国职业院校技能大赛赛题第01套
  • 基于php的助农生鲜销售系统
  • vmware 操作系统安装
  • 常见框架漏洞复现
  • IT运维挑战与对策:构建高效一体化运维管理体系
  • Chapter 2 - 1. Understanding Congestion in Fibre Channel Fabrics
  • Redis: RDB与AOF的选择和容灾备份以及Redis数据持久化的优化方案
  • X86架构(九)——保护模式的进入
  • Hive数仓操作(三)
  • 使用Vue.extend( ) 模仿 elementui 创建一个类似 message 消息提示框