PSP - 替换 MSA (多序列比对) 文件的 Target 序列

2023-12-27 12:20
文章标签 序列 target 替换 psp msa

本文主要是介绍PSP - 替换 MSA (多序列比对) 文件的 Target 序列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://blog.csdn.net/caroline_wendy/article/details/131898038

MSA

在 MSA 文件中,通过处理 Target 序列,影响 MSA 的搜索结果与比对结果,但是在预测的过程中,需要替换为最初的 Target 序列,同时,保持序列长度一致。

常见场景是去除 IDRs 无序区域,进行 MSA 搜索,再替换目标序列,进行蛋白质结构预测。参考:

  • 合并 AlphaFold2 MSA 搜索的全部文件 (a3m or sto)
  • MetaPredict 预测蛋白质序列的内源性无序区域 (IDRs)

即:

  1. 读取 MSA 文件。
  2. 替换 MSA 中 Target 序列为目标序列 (FASTA文件)。
  3. 再存储至原 MSA 文件。

源码如下:

#!/usr/bin/env python
# -- coding: utf-8 --
"""
Copyright (c) 2022. All rights reserved.
Created by C. L. Wang on 2023/7/24
"""
import argparse
import os
import sys
from pathlib import Pathp = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if p not in sys.path:sys.path.append(p)from myutils.project_utils import read_file, write_list_to_file, create_empty_file
from protein_utils.seq_utils import get_seq_from_fastaclass MsaReplaceTarget(object):"""替换 MSA 的 Target 序列,即第 1 条序列"""def __init__(self):pass@staticmethoddef process(fasta_path, mas_path):assert os.path.isfile(fasta_path) and os.path.isfile(mas_path)t_seq_list, t_desc_list = get_seq_from_fasta(fasta_path)t_seq, t_desc = t_seq_list[0], t_desc_list[0]print(f"[Info] t_desc: {t_desc}")print(f"[Info] t_seq: {t_seq}")data_lines = read_file(mas_path)data_lines[1] = t_seq   # 只替换seqassert len(data_lines[1]) == len(data_lines[3])   # 保证序列长度一致create_empty_file(mas_path)write_list_to_file(mas_path, data_lines)print("[Info] 处理完成! ")def main():parser = argparse.ArgumentParser()parser.add_argument("-f","--fasta-path",help="the fasta path of target.",type=Path,required=True,)parser.add_argument("-m","--msa-path",help="the msa file",type=Path,required=True)args = parser.parse_args()fasta_path = str(args.fasta_path)msa_path = str(args.msa_path)assert os.path.isfile(fasta_path) and os.path.isfile(msa_path)cms = MsaReplaceTarget()cms.process(fasta_path, msa_path)if __name__ == '__main__':main()

替换之前的 MSA 序列:

>A
XXVRALRRETVEMFYYGFDNYMKVAFPEDELRPVSCTPLTRDLKNPRNFELNDVLGNYSLTLIDSLSTLAILASAPAEDSGTGPKALRDFQDGVAALVEQYGDGRPGPSGVGRRARGFDLDSKVQVFETVIRGVGGLLSAHLFAIGALPITGYQPLRQEDDLFNPPPIPWPNGFTYDGQLLRLALDLAQRLLPAFYTKTGLPYPRVNLRHGIPFYVNSPLHEDPXXXXXXXGPPEITETCSAGAGSLVLEFTVLSRLTGDPRFEQAAKRAFWAVWYRKSQIGLIGAGVDAEQGHWIGTYSVIGAGADSFFEYALKSHILLSGHALPNQTHPSPLHKDVNWMDPNTLFEPLSDAENSAESFLEAWHHAHAAIKRHLYSEREHPHYDNVNLWTGSLVSHWVDSLGAYYSGLLVLAGEVDEAIETNLLYAAIWTRYAALPERWSLREKTVEGGLGWWPLRPEFIESTYHLYRATKDPWYLYVGEMVLRDITRRCWTPCGWAGLQNVLSGEKSDRMESFFLGETTKYMYLLFDDDHPLNKLDASFVFTTEGHPLILPXXXXXXXXXXXXXXXXXXLTVYQGEGFTNSCPPRPSITPLSGSVIAARDDIYHPARMVDLHLLTTSKHALDGGQMSGQHMAKSNYTLYPWTLPPELLPSNGTCAKVYQPHEVTLEFASNTQQVLGGSAFNFMLSGQNLERLSTDRIRVLSLSGLKITLQLVEEGEREWRVTKLNGIPLGRDEYVVINRAILGDVSDPRFNLVRDPVIAKLQQLHQVNLLXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSALLPDLSSFVKSLFARLSNLXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXPVPESLFPWKTIYAAGEACAGPLPDSAPRENQVILIRRGGCSFSDKLANIPAFTPSEESLQLVVVVSDDEHEGQSGLVRPLLDEIQHTPGGMPRRHPIAMVMVGGGETVYQQLSVASAIGIQRRYYIESSGVKVKNIIVDXXXXXXXX
>tr|A0A090C8H6|A0A090C8H6_PODAN Putative Glycoside Hydrolase Family 47 OS=Podospora anserina (strain S / ATCC MYA-4624 / DSM 980 / FGSC 10383) PE=4 SV=1
-RIKELRQETVDMFYHGFDNYMDIAFPEDELRPVSCVPLTRDAKNPRNVELNDVLGNYSLTLIDSLSTLAILASAPPDERGTGPKALADFQHGVAALVEQYGDGSPGPSGVGQRGRGFDVDSKVQVFETVIRGLGGLLSAHLFAVGALPITGYKPRHIEDDPLYSQPIVWPNGFKYDGQILRLALDLGQRLLPAFYTKTGMPYPRVNLRHGIPFYTNSPMHENAPM-NPPEGPLEITETCSAGAGSLVLEFTVLSRLTGDPRFEQLAKRAFWAVWYRKSQIGLIGAGVDAEQGHWIGAYAVIGAGADSFFEYALKSHILLSGHEPPNRTAPARKHRSDNWLDPNALFPPLNDAENSADSFLEAWHLAHAAIKRHLYNEKDHPHYDNVNLWTGSLVSNWVDSLGAYYSGLLVLAGEVEEAIETNLLYTAIWTRYAALPERYSLRDKTVEGGLGWWPLRPEFIESTYHIYRATKDPWYLYVGEMVLRDITRRCWTPCGWAGLQNVLDGEKSDRMESFFLGETAKYMYLLFDDEHPLNSLDAPYVFTTEGHPLIIPKAPPKDGPRRR-RSPRKYLTVYPNEEYTNTCPPRPQTTPLSGSVVAARDDIYHAARLLDLHQLSPTSAAIDAGQMSGQHMARSNYTLYPWTLPAELMPDNGICAKLYQPEEVTLEFASNAQQAVGGSSFNFLLGSQNLERLSADRIRVSSLSGLKMSMRLEDTGEREWRVSKVNGVLLGKDESIIFDRAILGEIQDPRFSLIKDPVLAKLQQLHQINLLDDEPAASDDGRKAGQQPLSQTEDTHEEELDADLPPVASPRVSVPAFGSMVKALFNQIAASLDLQLPDATSIPGLRSSTPKKAPINRVTPAAPLPAHIIPPRAPRIPEFGPVPIEHFPWSTIYAAGTACDAVLPDSAPRDHQVIVIRRGGCNFSTKLANIPAFSPSFRSLQLVVVVSDDHLREQAGLIRPLLDEVQVTPAGFARRHPIPMVMVGGGDVGYEQLGAAKRMGLARRWFVESSGFRVRNVIVDEGDN----

调用脚本,替换之后的 MSA 序列:

>A
DRVRALRRETVEMFYYGFDNYMKVAFPEDELRPVSCTPLTRDLKNPRNFELNDVLGNYSLTLIDSLSTLAILASAPAEDSGTGPKALRDFQDGVAALVEQYGDGRPGPSGVGRRARGFDLDSKVQVFETVIRGVGGLLSAHLFAIGALPITGYQPLRQEDDLFNPPPIPWPNGFTYDGQLLRLALDLAQRLLPAFYTKTGLPYPRVNLRHGIPFYVNSPLHEDPPAKGTTEGPPEITETCSAGAGSLVLEFTVLSRLTGDPRFEQAAKRAFWAVWYRKSQIGLIGAGVDAEQGHWIGTYSVIGAGADSFFEYALKSHILLSGHALPNQTHPSPLHKDVNWMDPNTLFEPLSDAENSAESFLEAWHHAHAAIKRHLYSEREHPHYDNVNLWTGSLVSHWVDSLGAYYSGLLVLAGEVDEAIETNLLYAAIWTRYAALPERWSLREKTVEGGLGWWPLRPEFIESTYHLYRATKDPWYLYVGEMVLRDITRRCWTPCGWAGLQNVLSGEKSDRMESFFLGETTKYMYLLFDDDHPLNKLDASFVFTTEGHPLILPKPKSARRSRNSPRSSQKALTVYQGEGFTNSCPPRPSITPLSGSVIAARDDIYHPARMVDLHLLTTSKHALDGGQMSGQHMAKSNYTLYPWTLPPELLPSNGTCAKVYQPHEVTLEFASNTQQVLGGSAFNFMLSGQNLERLSTDRIRVLSLSGLKITLQLVEEGEREWRVTKLNGIPLGRDEYVVINRAILGDVSDPRFNLVRDPVIAKLQQLHQVNLLDDTTTEEHPDNLDTLDTASAIDLPQDQSSDSEVPDPANLSALLPDLSSFVKSLFARLSNLTSPSPDPSSNLPLNVVINQTAILPTGIGAAPLPPAASNSPSGAPIPVFGPVPESLFPWKTIYAAGEACAGPLPDSAPRENQVILIRRGGCSFSDKLANIPAFTPSEESLQLVVVVSDDEHEGQSGLVRPLLDEIQHTPGGMPRRHPIAMVMVGGGETVYQQLSVASAIGIQRRYYIESSGVKVKNIIVDDGDGGVDG
>tr|A0A090C8H6|A0A090C8H6_PODAN Putative Glycoside Hydrolase Family 47 OS=Podospora anserina (strain S / ATCC MYA-4624 / DSM 980 / FGSC 10383) PE=4 SV=1
-RIKELRQETVDMFYHGFDNYMDIAFPEDELRPVSCVPLTRDAKNPRNVELNDVLGNYSLTLIDSLSTLAILASAPPDERGTGPKALADFQHGVAALVEQYGDGSPGPSGVGQRGRGFDVDSKVQVFETVIRGLGGLLSAHLFAVGALPITGYKPRHIEDDPLYSQPIVWPNGFKYDGQILRLALDLGQRLLPAFYTKTGMPYPRVNLRHGIPFYTNSPMHENAPM-NPPEGPLEITETCSAGAGSLVLEFTVLSRLTGDPRFEQLAKRAFWAVWYRKSQIGLIGAGVDAEQGHWIGAYAVIGAGADSFFEYALKSHILLSGHEPPNRTAPARKHRSDNWLDPNALFPPLNDAENSADSFLEAWHLAHAAIKRHLYNEKDHPHYDNVNLWTGSLVSNWVDSLGAYYSGLLVLAGEVEEAIETNLLYTAIWTRYAALPERYSLRDKTVEGGLGWWPLRPEFIESTYHIYRATKDPWYLYVGEMVLRDITRRCWTPCGWAGLQNVLDGEKSDRMESFFLGETAKYMYLLFDDEHPLNSLDAPYVFTTEGHPLIIPKAPPKDGPRRR-RSPRKYLTVYPNEEYTNTCPPRPQTTPLSGSVVAARDDIYHAARLLDLHQLSPTSAAIDAGQMSGQHMARSNYTLYPWTLPAELMPDNGICAKLYQPEEVTLEFASNAQQAVGGSSFNFLLGSQNLERLSADRIRVSSLSGLKMSMRLEDTGEREWRVSKVNGVLLGKDESIIFDRAILGEIQDPRFSLIKDPVLAKLQQLHQINLLDDEPAASDDGRKAGQQPLSQTEDTHEEELDADLPPVASPRVSVPAFGSMVKALFNQIAASLDLQLPDATSIPGLRSSTPKKAPINRVTPAAPLPAHIIPPRAPRIPEFGPVPIEHFPWSTIYAAGTACDAVLPDSAPRDHQVIVIRRGGCNFSTKLANIPAFSPSFRSLQLVVVVSDDHLREQAGLIRPLLDEVQVTPAGFARRHPIPMVMVGGGDVGYEQLGAAKRMGLARRWFVESSGFRVRNVIVDEGDN----

这篇关于PSP - 替换 MSA (多序列比对) 文件的 Target 序列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/543116

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

SpringBoot全局域名替换的实现

《SpringBoot全局域名替换的实现》本文主要介绍了SpringBoot全局域名替换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录 项目结构⚙️ 配置文件application.yml️ 配置类AppProperties.Ja

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

Spring的RedisTemplate的json反序列泛型丢失问题解决

《Spring的RedisTemplate的json反序列泛型丢失问题解决》本文主要介绍了SpringRedisTemplate中使用JSON序列化时泛型信息丢失的问题及其提出三种解决方案,可以根据性... 目录背景解决方案方案一方案二方案三总结背景在使用RedisTemplate操作redis时我们针对

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原