根据氨基酸序列计算蛋白质的分子量。使用标准的一字母代码输入您的蛋白质序列,以获得准确的道尔顿分子量。
根据氨基酸序列计算蛋白质的分子量。
使用标准的一字母氨基酸代码(A, R, N, D, C等)
此计算器根据氨基酸序列估算蛋白质的分子量。
计算考虑了氨基酸的标准分子量和肽键形成过程中的水分损失。
为了获得准确的结果,请确保输入有效的氨基酸序列,使用标准的一字母代码。
蛋白质分子量计算器是生物化学家、分子生物学家和蛋白质科学家必不可少的工具,他们需要根据氨基酸序列确定蛋白质的质量。蛋白质是由氨基酸链组成的复杂大分子,了解其分子量对于各种实验室技术、实验设计和数据分析至关重要。该计算器提供了一种快速而准确的方式,通过氨基酸序列估算任何蛋白质的分子量,为研究人员节省了宝贵的时间,减少了计算错误的可能性。
蛋白质分子量通常以道尔顿(Da)或千道尔顿(kDa)表示,代表蛋白质中所有氨基酸的单个重量之和,同时考虑到在肽键形成过程中失去的水分子。这个基本特性影响蛋白质在溶液中的行为、电泳迁移率、结晶特性以及许多在研究和工业应用中重要的物理和化学特性。
我们的用户友好型计算器只需输入您的蛋白质的单字母氨基酸序列,即可生成准确的分子量估算,使其对经验丰富的研究人员和新入门的蛋白质科学学生都易于使用。
蛋白质的分子量使用以下公式计算:
其中:
计算使用20种常见氨基酸的标准分子量:
氨基酸 | 单字母代码 | 分子量(Da) |
---|---|---|
丙氨酸 | A | 71.03711 |
精氨酸 | R | 156.10111 |
天冬氨酸 | N | 114.04293 |
天冬氨酸 | D | 115.02694 |
半胱氨酸 | C | 103.00919 |
谷氨酸 | E | 129.04259 |
谷氨酰胺 | Q | 128.05858 |
甘氨酸 | G | 57.02146 |
组氨酸 | H | 137.05891 |
异亮氨酸 | I | 113.08406 |
亮氨酸 | L | 113.08406 |
赖氨酸 | K | 128.09496 |
蛋氨酸 | M | 131.04049 |
苯丙氨酸 | F | 147.06841 |
脯氨酸 | P | 97.05276 |
丝氨酸 | S | 87.03203 |
苏氨酸 | T | 101.04768 |
色氨酸 | W | 186.07931 |
酪氨酸 | Y | 163.06333 |
缬氨酸 | V | 99.06841 |
当氨基酸结合形成蛋白质时,会产生肽键。在此过程中,每形成一个肽键就会释放一个水分子(H₂O)。在分子量计算中必须考虑这种水分损失。
对于含有n个氨基酸的蛋白质,形成(n-1)个肽键,导致损失(n-1)个水分子。然而,我们再加回一个水分子以考虑末端基团(N-末端的H和C-末端的OH)。
让我们计算一个简单三肽的分子量:Ala-Gly-Ser (AGS)
求单个氨基酸的重量之和:
从肽键中减去水分损失:
为末端基团加回一个水分子:
最终分子量:
使用蛋白质分子量计算器非常简单:
在文本框中输入您的蛋白质序列,使用标准的单字母氨基酸代码(A、R、N、D、C、E、Q、G、H、I、L、K、M、F、P、S、T、W、Y、V)。
计算器将自动验证您的输入,以确保仅包含有效的氨基酸代码。
点击**“计算分子量”**按钮或等待自动计算完成。
查看结果,包括:
您可以通过点击“复制”按钮将结果复制到剪贴板,以便在报告或进一步分析中使用。
为确保准确结果,请在输入蛋白质序列时遵循以下指南:
计算器提供几项信息:
分子量:您蛋白质的估计分子量(道尔顿,Da)。对于较大的蛋白质,这可能以千道尔顿(kDa)表示。
序列长度:您的序列中氨基酸的总数。
氨基酸组成:您蛋白质的氨基酸含量的可视化分解,显示每种氨基酸的计数和百分比。
计算方法:清晰解释分子量是如何计算的,包括使用的公式。
蛋白质分子量计算器在生命科学的各个领域有着众多应用:
研究人员使用分子量信息来:
生物技术公司依赖准确的分子量计算来:
肽化学家使用分子量计算来:
结构生物学家需要分子量信息来:
药物开发人员使用蛋白质分子量来:
学生和研究人员使用计算器进行:
虽然我们的蛋白质分子量计算器提供快速和准确的估算,但还有其他方法可以确定蛋白质分子量:
实验方法:
其他计算工具:
专业软件:
分子量的概念自19世纪初约翰·道尔顿提出原子理论以来就对化学至关重要。然而,将其应用于蛋白质的历史则较为近期:
如今,蛋白质分子量计算是蛋白质科学的常规但重要的部分,借助像我们的计算器这样的工具,使这些计算对全球研究人员变得更加可及。
以下是如何在各种编程语言中计算蛋白质分子量的示例:
1' Excel VBA 蛋白质分子量计算函数
2Function ProteinMolecularWeight(sequence As String) As Double
3 ' 氨基酸分子量
4 Dim aaWeights As Object
5 Set aaWeights = CreateObject("Scripting.Dictionary")
6
7 ' 初始化氨基酸重量
8 aaWeights("A") = 71.03711
9 aaWeights("R") = 156.10111
10 aaWeights("N") = 114.04293
11 aaWeights("D") = 115.02694
12 aaWeights("C") = 103.00919
13 aaWeights("E") = 129.04259
14 aaWeights("Q") = 128.05858
15 aaWeights("G") = 57.02146
16 aaWeights("H") = 137.05891
17 aaWeights("I") = 113.08406
18 aaWeights("L") = 113.08406
19 aaWeights("K") = 128.09496
20 aaWeights("M") = 131.04049
21 aaWeights("F") = 147.06841
22 aaWeights("P") = 97.05276
23 aaWeights("S") = 87.03203
24 aaWeights("T") = 101.04768
25 aaWeights("W") = 186.07931
26 aaWeights("Y") = 163.06333
27 aaWeights("V") = 99.06841
28
29 ' 水分子量
30 Const WATER_WEIGHT As Double = 18.01528
31
32 ' 将序列转换为大写
33 sequence = UCase(sequence)
34
35 ' 计算总重量
36 Dim totalWeight As Double
37 totalWeight = 0
38
39 ' 求单个氨基酸重量之和
40 Dim i As Integer
41 For i = 1 To Len(sequence)
42 Dim aa As String
43 aa = Mid(sequence, i, 1)
44
45 If aaWeights.Exists(aa) Then
46 totalWeight = totalWeight + aaWeights(aa)
47 Else
48 ' 无效的氨基酸代码
49 ProteinMolecularWeight = -1
50 Exit Function
51 End If
52 Next i
53
54 ' 从肽键中减去水分损失并加回末端水分
55 Dim numAminoAcids As Integer
56 numAminoAcids = Len(sequence)
57
58 ProteinMolecularWeight = totalWeight - (numAminoAcids - 1) * WATER_WEIGHT + WATER_WEIGHT
59End Function
60
61' 在Excel中的用法:
62' =ProteinMolecularWeight("ACDEFGHIKLMNPQRSTVWY")
63
1def calculate_protein_molecular_weight(sequence):
2 """
3 根据氨基酸序列计算蛋白质的分子量。
4
5 参数:
6 sequence (str): 使用单字母氨基酸代码的蛋白质序列
7
8 返回:
9 float: 以道尔顿(Da)表示的分子量
10 """
11 # 氨基酸分子量
12 aa_weights = {
13 'A': 71.03711,
14 'R': 156.10111,
15 'N': 114.04293,
16 'D': 115.02694,
17 'C': 103.00919,
18 'E': 129.04259,
19 'Q': 128.05858,
20 'G': 57.02146,
21 'H': 137.05891,
22 'I': 113.08406,
23 'L': 113.08406,
24 'K': 128.09496,
25 'M': 131.04049,
26 'F': 147.06841,
27 'P': 97.05276,
28 'S': 87.03203,
29 'T': 101.04768,
30 'W': 186.07931,
31 'Y': 163.06333,
32 'V': 99.06841
33 }
34
35 # 水分子量
36 WATER_WEIGHT = 18.01528
37
38 # 将序列转换为大写
39 sequence = sequence.upper()
40
41 # 验证序列
42 for aa in sequence:
43 if aa not in aa_weights:
44 raise ValueError(f"无效的氨基酸代码:{aa}")
45
46 # 求单个氨基酸重量之和
47 total_weight = sum(aa_weights[aa] for aa in sequence)
48
49 # 从肽键中减去水分损失并加回末端水分
50 num_amino_acids = len(sequence)
51 molecular_weight = total_weight - (num_amino_acids - 1) * WATER_WEIGHT + WATER_WEIGHT
52
53 return molecular_weight
54
55# 示例用法:
56sequence = "MVKMDVYKGSSIGDSMSRSM"
57mw = calculate_protein_molecular_weight(sequence)
58print(f"分子量:{mw:.2f} Da")
59
1function calculateProteinMolecularWeight(sequence) {
2 // 氨基酸分子量
3 const aaWeights = {
4 'A': 71.03711,
5 'R': 156.10111,
6 'N': 114.04293,
7 'D': 115.02694,
8 'C': 103.00919,
9 'E': 129.04259,
10 'Q': 128.05858,
11 'G': 57.02146,
12 'H': 137.05891,
13 'I': 113.08406,
14 'L': 113.08406,
15 'K': 128.09496,
16 'M': 131.04049,
17 'F': 147.06841,
18 'P': 97.05276,
19 'S': 87.03203,
20 'T': 101.04768,
21 'W': 186.07931,
22 'Y': 163.06333,
23 'V': 99.06841
24 };
25
26 // 水分子量
27 const WATER_WEIGHT = 18.01528;
28
29 // 将序列转换为大写
30 sequence = sequence.toUpperCase();
31
32 // 验证序列
33 for (let i = 0; i < sequence.length; i++) {
34 const aa = sequence[i];
35 if (!aaWeights[aa]) {
36 throw new Error(`无效的氨基酸代码:${aa}`);
37 }
38 }
39
40 // 求单个氨基酸重量之和
41 let totalWeight = 0;
42 for (let i = 0; i < sequence.length; i++) {
43 totalWeight += aaWeights[sequence[i]];
44 }
45
46 // 从肽键中减去水分损失并加回末端水分
47 const numAminoAcids = sequence.length;
48 const molecularWeight = totalWeight - (numAminoAcids - 1) * WATER_WEIGHT + WATER_WEIGHT;
49
50 return molecularWeight;
51}
52
53// 示例用法:
54const sequence = "ACDEFGHIKLMNPQRSTVWY";
55try {
56 const mw = calculateProteinMolecularWeight(sequence);
57 console.log(`分子量:${mw.toFixed(2)} Da`);
58} catch (error) {
59 console.error(error.message);
60}
61
1import java.util.HashMap;
2import java.util.Map;
3
4public class ProteinMolecularWeightCalculator {
5 private static final Map<Character, Double> aminoAcidWeights = new HashMap<>();
6 private static final double WATER_WEIGHT = 18.01528;
7
8 static {
9 // 初始化氨基酸重量
10 aminoAcidWeights.put('A', 71.03711);
11 aminoAcidWeights.put('R', 156.10111);
12 aminoAcidWeights.put('N', 114.04293);
13 aminoAcidWeights.put('D', 115.02694);
14 aminoAcidWeights.put('C', 103.00919);
15 aminoAcidWeights.put('E', 129.04259);
16 aminoAcidWeights.put('Q', 128.05858);
17 aminoAcidWeights.put('G', 57.02146);
18 aminoAcidWeights.put('H', 137.05891);
19 aminoAcidWeights.put('I', 113.08406);
20 aminoAcidWeights.put('L', 113.08406);
21 aminoAcidWeights.put('K', 128.09496);
22 aminoAcidWeights.put('M', 131.04049);
23 aminoAcidWeights.put('F', 147.06841);
24 aminoAcidWeights.put('P', 97.05276);
25 aminoAcidWeights.put('S', 87.03203);
26 aminoAcidWeights.put('T', 101.04768);
27 aminoAcidWeights.put('W', 186.07931);
28 aminoAcidWeights.put('Y', 163.06333);
29 aminoAcidWeights.put('V', 99.06841);
30 }
31
32 public static double calculateMolecularWeight(String sequence) throws IllegalArgumentException {
33 // 将序列转换为大写
34 sequence = sequence.toUpperCase();
35
36 // 验证序列
37 for (int i = 0; i < sequence.length(); i++) {
38 char aa = sequence.charAt(i);
39 if (!aminoAcidWeights.containsKey(aa)) {
40 throw new IllegalArgumentException("无效的氨基酸代码:" + aa);
41 }
42 }
43
44 // 求单个氨基酸重量之和
45 double totalWeight = 0;
46 for (int i = 0; i < sequence.length(); i++) {
47 totalWeight += aminoAcidWeights.get(sequence.charAt(i));
48 }
49
50 // 从肽键中减去水分损失并加回末端水分
51 int numAminoAcids = sequence.length();
52 double molecularWeight = totalWeight - (numAminoAcids - 1) * WATER_WEIGHT + WATER_WEIGHT;
53
54 return molecularWeight;
55 }
56
57 public static void main(String[] args) {
58 try {
59 String sequence = "MVKMDVYKGSSIGDSMSRSM";
60 double mw = calculateMolecularWeight(sequence);
61 System.out.printf("分子量:%.2f Da%n", mw);
62 } catch (IllegalArgumentException e) {
63 System.err.println(e.getMessage());
64 }
65 }
66}
67
1#include <iostream>
2#include <string>
3#include <map>
4#include <stdexcept>
5#include <algorithm>
6
7double calculateProteinMolecularWeight(const std::string& sequence) {
8 // 氨基酸分子量
9 std::map<char, double> aaWeights = {
10 {'A', 71.03711},
11 {'R', 156.10111},
12 {'N', 114.04293},
13 {'D', 115.02694},
14 {'C', 103.00919},
15 {'E', 129.04259},
16 {'Q', 128.05858},
17 {'G', 57.02146},
18 {'H', 137.05891},
19 {'I', 113.08406},
20 {'L', 113.08406},
21 {'K', 128.09496},
22 {'M', 131.04049},
23 {'F', 147.06841},
24 {'P', 97.05276},
25 {'S', 87.03203},
26 {'T', 101.04768},
27 {'W', 186.07931},
28 {'Y', 163.06333},
29 {'V', 99.06841}
30 };
31
32 // 水分子量
33 const double WATER_WEIGHT = 18.01528;
34
35 // 将序列转换为大写
36 std::string upperSequence = sequence;
37 std::transform(upperSequence.begin(), upperSequence.end(), upperSequence.begin(), ::toupper);
38
39 // 验证序列
40 for (char aa : upperSequence) {
41 if (aaWeights.find(aa) == aaWeights.end()) {
42 throw std::invalid_argument(std::string("无效的氨基酸代码:") + aa);
43 }
44 }
45
46 // 求单个氨基酸重量之和
47 double totalWeight = 0.0;
48 for (char aa : upperSequence) {
49 totalWeight += aaWeights[aa];
50 }
51
52 // 从肽键中减去水分损失并加回末端水分
53 int numAminoAcids = upperSequence.length();
54 double molecularWeight = totalWeight - (numAminoAcids - 1) * WATER_WEIGHT + WATER_WEIGHT;
55
56 return molecularWeight;
57}
58
59int main() {
60 try {
61 std::string sequence = "ACDEFGHIKLMNPQRSTVWY";
62 double mw = calculateProteinMolecularWeight(sequence);
63 std::cout << "分子量:" << std::fixed << std::setprecision(2) << mw << " Da" << std::endl;
64 } catch (const std::exception& e) {
65 std::cerr << "错误:" << e.what() << std::endl;
66 }
67
68 return 0;
69}
70
蛋白质分子量,也称为分子质量,是以道尔顿(Da)或千道尔顿(kDa)表示的蛋白质分子总质量。它代表蛋白质中所有原子的总质量,同时考虑到在肽键形成过程中失去的水分子。这个基本特性对蛋白质的表征、纯化和分析至关重要。
该计算器提供基于氨基酸序列的理论分子量,具有很高的准确性。它使用氨基酸的标准单质量,并考虑肽键形成过程中的水分损失。然而,它不考虑翻译后修饰、非标准氨基酸或真实蛋白质中可能存在的同位素变体。
蛋白质分子量通常以道尔顿(Da)或千道尔顿(kDa)表示,其中1 kDa等于1,000 Da。道尔顿大约等于一个氢原子的质量(1.66 × 10^-24克)。作为参考,小肽的分子量可能为几百Da,而大蛋白质的分子量可以达到数百kDa。
计算的分子量与实验值之间的差异可能由以下几个因素造成:
对于修饰蛋白质的精确分子量测定,建议使用质谱法。
该计算器仅支持使用其单字母代码(A、R、N、D、C、E、Q、G、H、I、L、K、M、F、P、S、T、W、Y、V)的20种标准氨基酸。对于含有非标准氨基酸、硒半胱氨酸、吡咯赖氨酸或其他修饰残基的蛋白质,需要使用专业工具或手动计算。
氨基酸组成显示您蛋白质序列中每种氨基酸的计数和百分比。这些信息对于:
对于小肽,差异很小,但对于较大的蛋白质,差异会更显著。质谱法通常测量小分子的单质质量和较大分子的平均质量。
计算器通过在减去肽键形成过程中损失的水分后加回一个水分子(18.01528 Da)来考虑标准的N-末端(NH₂-)和C-末端(-COOH)基团。这确保计算出的分子量代表完整的蛋白质,具有适当的末端基团。
可以,但该计算器不会自动调整二硫键。每形成一个二硫键会损失两个氢原子(2.01588 Da)。要考虑二硫键,需从计算出的分子量中减去每个二硫键2.01588 Da。
虽然分子量与蛋白质大小相关,但这种关系并不总是简单。影响蛋白质物理大小的因素包括:
大致估计,10 kDa的球状蛋白质的直径约为2-3 nm。
Gasteiger E., Hoogland C., Gattiker A., Duvaud S., Wilkins M.R., Appel R.D., Bairoch A. (2005) ExPASy服务器上的蛋白质识别和分析工具。在:Walker J.M.(编辑)《蛋白质组学协议手册》。Humana Press。
Nelson, D. L., & Cox, M. M. (2017). 《莱宁格生物化学原理》(第7版)。W.H. Freeman and Company。
Steen, H., & Mann, M. (2004). 肽序列的ABC(和XYZ)。《自然评论分子细胞生物学》,5(9),699-711。
Voet, D., Voet, J. G., & Pratt, C. W. (2016). 《生物化学基础:分子水平的生命》(第5版)。Wiley。
Creighton, T. E. (2010). 《核酸和蛋白质的生物物理化学》。Helvetian Press。
UniProt Consortium. (2021). UniProt:2021年通用蛋白质知识库。 《核酸研究》,49(D1),D480-D489。
Artimo, P., Jonnalagedda, M., Arnold, K., Baratin, D., Csardi, G., de Castro, E., Duvaud, S., Flegel, V., Fortier, A., Gasteiger, E., Grosdidier, A., Hernandez, C., Ioannidis, V., Kuznetsov, D., Liechti, R., Moretti, S., Mostaguir, K., Redaschi, N., Rossier, G., Xenarios, I., & Stockinger, H. (2012). ExPASy:SIB生物信息学资源门户。《核酸研究》,40(W1),W597-W603。
Kinter, M., & Sherman, N. E. (2005). 《利用串联质谱对蛋白质进行测序和鉴定》。Wiley-Interscience。
尝试我们的蛋白质分子量计算器,快速准确地确定您的蛋白质序列的分子量。无论您是在规划实验、分析结果还是学习蛋白质生物化学,该工具都能在几秒钟内提供所需的信息。