아미노산 서열을 기반으로 단백질의 분자량을 계산합니다. 표준 1자리 코드를 사용하여 단백질 서열을 입력하면 달톤 단위로 정확한 분자량을 얻을 수 있습니다.
아미노산 서열을 기반으로 단백질의 분자량을 계산합니다.
표준 1자리 아미노산 코드 사용 (A, R, N, D, C 등)
이 계산기는 아미노산 서열을 기반으로 단백질의 분자량을 추정합니다.
계산은 아미노산의 표준 분자량과 펩타이드 결합 형성 중의 수분 손실을 고려합니다.
정확한 결과를 위해 표준 1자리 코드를 사용하여 유효한 아미노산 서열을 입력하세요.
단백질 분자량 계산기는 단백질 과학자, 분자 생물학자 및 생화학자에게 필수적인 도구로, 아미노산 서열에 기반하여 단백질의 질량을 결정하는 데 필요합니다. 단백질은 아미노산 사슬로 구성된 복잡한 거대 분자로, 그 분자량을 아는 것은 다양한 실험실 기술, 실험 설계 및 데이터 분석에 중요합니다. 이 계산기는 아미노산 서열을 사용하여 어떤 단백질의 분자량을 신속하고 정확하게 추정할 수 있는 방법을 제공하여 연구자들에게 귀중한 시간을 절약하고 계산 오류의 가능성을 줄입니다.
단백질 분자량은 종종 달톤(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 Args:
6 sequence (str): 한 글자 아미노산 코드를 사용한 단백질 서열
7
8 Returns:
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)만 지원합니다. 비표준 아미노산이 포함된 단백질의 경우, 비표준 아미노산 코드를 지원하는 대체 도구를 사용하는 것이 좋습니다.
아미노산 조성은 단백질 서열의 각 아미노산의 수와 비율을 보여줍니다. 이 정보는 다음에 유용합니다:
작은 펩타이드의 경우 차이는 미미하지만, 더 큰 단백질에서는 더 중요해질 수 있습니다. 질량 분석법은 작은 분자에 대해 단일 동위체 질량을 측정하고, 큰 분자에 대해 평균 질량을 측정하는 경향이 있습니다.
계산기는 표준 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 서버의 단백질 식별 및 분석 도구. In: Walker J.M. (eds) 단백질체학 프로토콜 핸드북. Humana Press.
Nelson, D. L., & Cox, M. M. (2017). Lehninger 생화학 원리 (7판). W.H. Freeman and Company.
Steen, H., & Mann, M. (2004). 펩타이드 서열 결정의 ABC(및 XYZ). Nature Reviews Molecular Cell Biology, 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년의 범용 단백질 지식 기반. Nucleic Acids Research, 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 생물정보학 리소스 포털. Nucleic Acids Research, 40(W1), W597-W603.
Kinter, M., & Sherman, N. E. (2005). 질량 분석을 사용한 단백질 서열 결정 및 식별. Wiley-Interscience.
오늘 단백질 분자량 계산기를 사용하여 단백질 서열의 분자량을 신속하고 정확하게 결정하세요. 실험 계획, 결과 분석 또는 단백질 생화학에 대해 배우는 데 필요한 정보를 몇 초 만에 제공합니다.
귀하의 워크플로에 유용할 수 있는 더 많은 도구를 발견하세요.