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

相关文章

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示例总结报错原

利用Python实现时间序列动量策略

《利用Python实现时间序列动量策略》时间序列动量策略作为量化交易领域中最为持久且被深入研究的策略类型之一,其核心理念相对简明:对于显示上升趋势的资产建立多头头寸,对于呈现下降趋势的资产建立空头头寸... 目录引言传统策略面临的风险管理挑战波动率调整机制:实现风险标准化策略实施的技术细节波动率调整的战略价

Python如何判断字符串中是否包含特殊字符并替换

《Python如何判断字符串中是否包含特殊字符并替换》这篇文章主要为大家详细介绍了如何使用Python实现判断字符串中是否包含特殊字符并使用空字符串替换掉,文中的示例代码讲解详细,感兴趣的小伙伴可以了... 目录python判断字符串中是否包含特殊字符方法一:使用正则表达式方法二:手动检查特定字符Pytho

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

如何将Tomcat容器替换为Jetty容器

《如何将Tomcat容器替换为Jetty容器》:本文主要介绍如何将Tomcat容器替换为Jetty容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat容器替换为Jetty容器修改Maven依赖配置文件调整(可选)重新构建和运行总结Tomcat容器替