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 序列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/u012515223/article/details/131898038
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/543116

相关文章

利用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容器替

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

关于最长递增子序列问题概述

《关于最长递增子序列问题概述》本文详细介绍了最长递增子序列问题的定义及两种优化解法:贪心+二分查找和动态规划+状态压缩,贪心+二分查找时间复杂度为O(nlogn),通过维护一个有序的“尾巴”数组来高效... 一、最长递增子序列问题概述1. 问题定义给定一个整数序列,例如 nums = [10, 9, 2