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

相关文章

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

uva 10131 最长子序列

题意: 给大象的体重和智商,求体重按从大到小,智商从高到低的最长子序列,并输出路径。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vect

POJ1631最长单调递增子序列

最长单调递增子序列 import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.math.BigInteger;import java.util.StringTokenizer;publ

leetcode105 从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3/ \9 20/ \15 7   class Solution {public TreeNode buildTree(int[] pr

day-50 求出最长好子序列 I

思路 二维dp,dp[i][h]表示nums[i] 结尾,且有不超过 h 个下标满足条件的最长好子序列的长度(0<=h<=k),二维数组dp初始值全为1 解题过程 状态转换方程: 1.nums[i]==nums[j],dp[i,h]=Math.max(dp[i,h],dp[j,h]+1) 2.nums[i]!=nums[j],dp[i,h]=Math.max(dp[i,h],dp[j,h-1

LeetCode:3177. 求出最长好子序列 II 哈希表+动态规划实现n*k时间复杂度

3177. 求出最长好子序列 II 题目链接 题目描述 给你一个整数数组 nums 和一个非负整数k 。如果一个整数序列 seq 满足在下标范围 [0, seq.length - 2] 中 最多只有 k 个下标i满足 seq[i] != seq[i + 1] ,那么我们称这个整数序列为好序列。请你返回 nums中好子序列的最长长度。 实例1: 输入:nums = [1,2,1,1,3],

用Python实现时间序列模型实战——Day 14: 向量自回归模型 (VAR) 与向量误差修正模型 (VECM)

一、学习内容 1. 向量自回归模型 (VAR) 的基本概念与应用 向量自回归模型 (VAR) 是多元时间序列分析中的一种模型,用于捕捉多个变量之间的相互依赖关系。与单变量自回归模型不同,VAR 模型将多个时间序列作为向量输入,同时对这些变量进行回归分析。 VAR 模型的一般形式为: 其中: ​ 是时间  的变量向量。 是常数向量。​ 是每个时间滞后的回归系数矩阵。​ 是误差项向量,假

时间序列|change point detection

change point detection 被称为变点检测,其基本定义是在一个序列或过程中,当某个统计特性(分布类型、分布参数)在某时间点受系统性因素而非偶然因素影响发生变化,我们就称该时间点为变点。变点识别即利用统计量或统计方法或机器学习方法将该变点位置估计出来。 Change Point Detection的类型 online 指连续观察某一随机过程,监测到变点时停止检验,不运用到

notepad++ 正则表达式多条件查找替换

基础语法参考: https://www.cnblogs.com/winstonet/p/10635043.html https://www.linuxidc.com/Linux/2019-05/158701.htm   通常情况下我们查找的内容和要被替换掉的内容是一样的,我们只需要使用正则表达式精确框定查找内容,替换直接输入要替换的内容即可。 但有时会比较复杂,查找的内容,只需要替换其中

shell脚本中变量中字符串替换的测试 /和//的区别

test_char=abbbcbbbf echo "bf:test_char = " $test_char test_char=${test_char/bbb/ddd} echo "af:test_char = " $test_char 输出: bf:test_char =  abbbcbbbf af:test_char =  adddcbbbf 只匹配第一个