Rosalind 042 Inferring Protein from Spectrum

2024-01-08 04:12

本文主要是介绍Rosalind 042 Inferring Protein from Spectrum,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个问题涉及生物信息学中的一项特定任务:根据给定的前缀质谱(prefix spectrum)来推断蛋白质序列。

背景

  1. 蛋白质和氨基酸:蛋白质是由氨基酸残基构成的长链分子,每种氨基酸具有特定的质量。
  2. 前缀质谱:这是指蛋白质序列从起始到某个点的所有片段的质量。例如,蛋白质“ACD”的前缀质谱包括氨基酸“A”的质量,氨基酸“AC”的质量,以及整个序列“ACD”的质量。
  3. 单体同位素质量表:这是一个表,列出了每种氨基酸的质量。使用这个表,我们可以计算蛋白质序列的质量或者根据质量来推断可能的蛋白质序列。

问题

给定一个前缀质谱(即一系列质量值),要求推断出一个可能的蛋白质序列,使其前缀质谱与给定的质谱相匹配。这个序列的长度是质谱列表长度减一,因为蛋白质序列比其前缀质谱的项数少一。

解决方法

  1. 计算质量差异:首先,计算给定质谱中相邻质量值之间的差异。这些差异对应于单个氨基酸的质量。根据题目的条件,计算连续数值之间的差异。这些差异对应于单个氨基酸的质量。例如,第一个和第二个数值之间的差异是 3710.9335 - 3524.8542,这将对应于第一个氨基酸的质量。

  2. 匹配氨基酸:使用单体同位素质量表来匹配这些质量差异与特定的氨基酸。

  • 现在,让我们计算这些质量差异并尝试匹配它们到氨基酸。我将使用标准的单体同位素质量表来进行匹配。

  • 第一个质量差(3710.9335 - 3524.8542)对应于氨基酸 W

  • 第二个质量差(3841.974 - 3710.9335)对应于氨基酸 M

  • 第三个质量差(3970.0326 - 3841.974)对应于氨基酸 Q

  • 第四个质量差(4057.0646 - 3970.0326)对应于氨基酸S。 最后通过将这些氨基酸连接起来,形成一个蛋白质序列:WMQS

代码:

mino_acid_masses = {'A': 71.03711, 'C': 103.00919, 'D': 115.02694, 'E': 129.04259,'F': 147.06841, 'G': 57.02146, 'H': 137.05891, 'I': 113.08406,'K': 128.09496, 'L': 113.08406, 'M': 131.04049, 'N': 114.04293,'P': 97.05276, 'Q': 128.05858, 'R': 156.10111, 'S': 87.03203,'T': 101.04768, 'V': 99.06841, 'W': 186.07931, 'Y': 163.06333
}# 从文件中读取质量值
spectrum_values = []
with open('D:/pycharm/Rosalind/Data/rosalind_spec.txt', 'r') as file:for line in file:# 假设每行一个质量值,去除换行符并转换为浮点数spectrum_values.append(float(line.strip()))# 计算质量差异
mass_differences = [spectrum_values[i+1] - spectrum_values[i] for i in range(len(spectrum_values) - 1)]# 找到与给定质量差最接近的氨基酸
def find_closest_amino_acid(mass):closest_amino_acid = Nonemin_diff = float('inf')for amino_acid, amino_acid_mass in amino_acid_masses.items():diff = abs(mass - amino_acid_mass)if diff < min_diff:min_diff = diffclosest_amino_acid = amino_acidreturn closest_amino_acid# 对每个质量差找到对应的氨基酸
amino_acids = [find_closest_amino_acid(mass) for mass in mass_differences]# 输出结果
print("".join(amino_acids))

这篇关于Rosalind 042 Inferring Protein from Spectrum的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

static_隐式参数_继承_重写_toString_组合JAVA036-042

来源:http://www.bjsxt.com/ 1、S01E036_01static变量和方法 static变量和方法存放在方法区中 2、S01E037_01隐式参数this和super 类的构造方法调用自己的无参构造方法this()或有参构造方法this(a[,b…]):必须位于第一行 3、S01E038_01面向对象的三大特征(继承、封装、多态)之一:继承(extends)

新160个crackme - 042-crackme

运行分析 提示需要key.dat文件 同目录下创建一个key.dat,提示key.dat内容不对 PE分析 C++程序,32位,无壳 静态分析&动态调试 ida搜索字符串,找到关键字符串双击进入关键函数 对关键函数进行分析,注释如上当满足67行公式时,将会执行下面函数发现89行有个VirtualProtect,即SMCSMC(Self-Modifying

[英语单词] spectrum

记得刚接触2G的产品的时候,每天都要面对这个单词,有一段时间对这个词的含义总是记不住它的含义。 spectrum (usu sing 通常作单数) 1 image of a band of colours as seen in a rainbow (and usu described as red, orange, yellow, green, blue, indigo and violet),

UnityShader源码2017---学习笔记与自我拓展042

源自Skybox,Skybox-Cubed,Skybox-Procedural 先看一下SkyBox这个shader里的一个方法 float3 RotateAroundYInDegrees (float3 vertex, float degrees){float alpha = degrees * UNITY_PI / 180.0;float sina, cosa;sincos(alpha,

LeetCode-042-接雨水

题目地址: https://leetcode-cn.com/problems/trapping-rain-water 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。

谷粒商城实战(042集群学习-mysql集群-主从同步)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第361p-第p363的内容 集群 集群的基础形式 MySQL集群 MMM机制 这里使用了vip虚拟ip方式(如192.168.0.101,192.168.0.102,192.168.0.103) monitor维护了一个虚拟ip映射表

Bio-Info每日一题:Rosalind-05-Computing GC Content

🎉 进入生物信息学的世界,与Rosalind一起探索吧!🧬 Rosalind是一个在线平台,专为学习和实践生物信息学而设计。该平台提供了一系列循序渐进的编程挑战,帮助用户从基础到高级掌握生物信息学知识。无论你是初学者还是专业人士,Rosalind都能为你提供适合的学习资源和实践机会。 网址:https://rosalind.info 你是否想像专业人士一样分析DNA序列?这里有一个简单的任务来

OCP-042之:Oracle结构体系

1. Oracle结构体系 1.1 概述 1.1.1 版本 版本后缀所代表的含义 i:代表基于Internet架构的数据库,如9i g:代表基于grid(网格)的数据库,如11g grid的目的:降低成本,提高服务质量,简化管理 Storage Grid:ASM(automatic storage management),继承了LVM技术,Oracle的动态存储空间管理技术,通过软件

Bio-Info 每日一题:Rosalind-04-Rabbits and Recurrence Relations

🎉 进入生物信息学的世界,与Rosalind一起探索吧!🧬 Rosalind是一个在线平台,专为学习和实践生物信息学而设计。该平台提供了一系列循序渐进的编程挑战,帮助用户从基础到高级掌握生物信息学知识。无论你是初学者还是专业人士,Rosalind都能为你提供适合的学习资源和实践机会。网址:https://rosalind.info 你是否想像专业人士一样分析DNA序列?这里有一个简单的任务来帮

Leetcode 042 Trapping Rain Water(高效)

题目连接:Leetcode 042 Trapping Rain Water 解题思路:从左向右遍历一遍,保存每个位置往左的最高值。再从右往左遍历一遍,保存每个位置往右的最高值。最后遍历一遍数组,取左右最高值中较小的一个,减去当前值,即为这个位置增加的量。 class Solution {public:int trap(vector<int>& height) {int n = height.s