Protein là một hợp chất đại phân tử được tạo thành từ rất nhiều các đơn phân là các axit amin.Axit amin được cấu tạo bởi ba thành phần: một là nhóm amin -NH2, hai là nhóm cacboxyl -COOH
Trang 1PHẦN 1: CƠ SỞ LÝ THUYẾT
I CƠ SỞ SINH HỌC VỀ PROTEIN
I.1 Protein là gì? 2
I.2 Các axit amin trong Protein 2
I.3 Cấu trúc hóa học của protein 3
I.4 Cấu trúc không gian của Protein 4
II LẬP TRÌNH MAPLE II.1 Giới thiệu về phần mềm Maple 5
II.2 Lập trình tính toán hình thức trong Maple 6
II.3 Vẽ các đối tượng 2 chiều và 3 chiều trong Maple 8
II.4 Thiết kế giao diện bằng Maplet 9
PHẦN 2: ỨNG DỤNG MAPLET XEM CẤU TRÚC PROTEIN I Giới thiệu ứng dụng minh họa 12
II Cài đặt và source code chương trình 13
III Nhận xét và đánh giá 28
IV Tài liệu tham khảo 28
Trang 2PHẦN 1: CƠ SỞ LÝ THUYẾT
I CƠ SỞ SINH HỌC VỀ PROTEIN
I.1 Protein là gì?
Protein (Protit hay Đạm) là những đại phân tử được cấu tạo theo nguyên tắc đa phân mà các
đơn phân là axit amin Chúng kết hợp với nhau thành một mạch dài nhờ các liên kết peptide(gọi là chuỗi polypeptide) Các chuỗi này có thể xoắn cuộn hoặc gấp theo nhiều cách để tạothành các bậc cấu trúc không gian khác nhau của protein
Protein là một hợp chất đại phân tử được tạo thành từ rất nhiều các đơn phân là các axit amin.Axit amin được cấu tạo bởi ba thành phần: một là nhóm amin (-NH2), hai là nhóm cacboxyl (-COOH) và cuối cùng là nguyên tử cacbon trung tâm đính với 1 nguyên tử hyđro và nhóm biếnđổi R quyết định tính chất của axit amin Người ta đã phát hiện ra được tất cả 20 axit amintrong thành phần của tất cả các loại protein khác nhau trong cơ thể sống
I.2 Các axit amin trong Protein
Các axit amin được liệt kê đầy đủ dưới bảng sau:
Tên axit amin Viết tắt Tính chất
Glycine Gly Không phân cực, kỵ nước
Trang 3Tích điện (bazơ) Arginine Arg
Histidine His
I.3 Cấu trúc hóa học của protein
• Là hợp chất hữu cơ gồm 4 nguyên tố cơ bản C, H, O, N thường có thêm S và đôi lúc cóP
• Thuộc loại đại phân tử, phân tử lớn nhất dài 0,1 micromet, phân tử lượng có thể đạt tới1,5 triệu đ.v.C
• Thuộc loại đa phân tử, đơn phân là các axit amin
Trang 4• Có hơn 20 loại axit amin khác nhau tạo nên các prôtêin, mỗi axit amin có 3 thành phần:gốc cacbon (R), nhóm amin (-NH2) và nhóm carboxyl (-COOH), chúng khác nhau bởigốc R Mỗi axit amin có kích thước trung bình 3Å
• Trên phân tử các axit amin liên kết với nhau bằng các liên kết peptit tạo nên chuỗipôlipeptit Liên kết peptit được tạo thành do nhóm carboxyl của axit amin này liên kếtvới nhóm amin của axit amin tiếp theo và giải phóng 1 phân tử nước Mỗi phân tửprôtêin có thể gồm 1 hay nhiều chuỗi pôlipeptit cùng loại
• Từ 20 loại axit amin kết hợp với nhau theo những cách khác nhau tạo nên vô số loạiprôtêin khác nhau (trong các cơ thể động vật, thực vật ước tính có khoảng 1014 – 1015loại prôtêin) Mỗi loại prôtêin đặc trưng bởi số lượng, thành phần và trình tự sắp xếpcác axit amin trong phân tử Điều đó giải thích tại sao trong thiên nhiên các prôtêin vừarất đa dạng, lại vừa mang tính chất đặc thù
I.4 Cấu trúc không gian của Protein
Prôtêin có 4 bậc cấu trúc cơ bản:
• Cấu trúc bậc một: Các axit amin nối với nhau bởi liên kết peptit hình thành nên chuỗi
polypepetide Đầu mạch polypeptide là nhóm amin của axit amin thứ nhất và cuốimạch là nhóm cacboxyl của axit amin cuối cùng Cấu trúc bậc một của protein thựcchất là trình tự sắp xếp của các axit amin trên chuỗi polypeptide Cấu trúc bậc một củaprotein có vai trò tối quan trọng vì trình tự các axit amin trên chuỗi polypeptide sẽ thểhiện tương tác giữa các phần trong chuỗi polypeptide, từ đó tạo nên hình dạng lập thểcủa protein và do đó quyết định tính chất cũng như vai trò của protein Sự sai lệch trongtrình tự sắp xếp của các axit amin có thể dẫn đến sự biến đổi cấu trúc và tính chất củaprotein
• Cấu trúc bậc hai: là sự sắp xếp đều đặn các chuỗi polypeptide trong không gian.
Chuỗi polypeptide thường không ở dạng thẳng mà xoắn lại tạo nên cấu trúc xoắn α vàcấu trúc nếp gấp β, được cố định bởi các liên kết hyđro giữa những axit amin ở gầnnhau Các protein sợi như keratin, Collagen (có trong lông, tóc, móng, sừng)gồmnhiều xoắn α, trong khi các protein cầu có nhiều nếp gấp β hơn
• Cấu trúc bậc ba: Các xoắn α và phiến gấp nếp β có thể cuộn lại với nhau thành từng
búi có hình dạng lập thể đặc trưng cho từng loại protein Cấu trúc không gian này cóvai trò quyết định đối với hoạt tính và chức năng của protein Cấu trúc này lại đặc biệtphụ thuộc vào tính chất của nhóm -R trong các mạch polypeptide Chẳng hạn nhóm -Rcủa cystein có khả năng tạo cầu đisulfur (-S-S-), nhóm -R của prolin cản trở việc hìnhthành xoắn, từ đó vị trí của chúng sẽ xác định điểm gấp, hay những nhóm -R ưa nướcthì nằm phía ngoài phân tử, còn các nhóm kị nước thì chui vào bên trong phân tử Cácliên kết yếu hơn như liên kết hyđro hay điện hóa trị có ở giữa các nhóm -R có điện tíchtrái dấu
• Cấu trúc bậc bốn: Khi protein có nhiều chuỗi polypeptide phối hợp với nhau thì tạo
nên cấu trúc bậc bốn của protein Các chuỗi polypeptide liên kết với nhau nhờ các liênkết yếu như liên kết hyđro
Trang 5II LẬP TRÌNH MAPLE
II.1 Giới thiệu về phần mềm Maple
Maple là một phần mềm tính toán do hãng Maple Soft, một bộ phận chủ yếu của liên hợp công ty Waterloo Maple phát triển
Cho đến nay Maple đã được phát triển qua nhiều phiên bản khác nhau và ngày càng hoàn thiện
Với phần mềm Maple, chúng ta có thể:
+ Thực hiện các tính toán với khối lượng lớn, với thời gian nhanh và độ chính xác cao + Sử dụng các gói chuyên dụng của Maple để giải quyết các bài toán cụ thể như: vẽ đồ thị (gói plot), hình học giải tích (gói geometry), đại số tuyến tính (gói linalg),
+ Thiết kế các đối tượng 3 chiều
Trang 6>tubeplot({[10*cos(t),10*sin(t),0,t=0 2*Pi,radius=2*cos(7*t),numpoints=120,tubepoints=24],[0,10+5*cos(t),5*sin(t),t=0 2*Pi,radius=1.5,numpoints=50,
Trang 7- Khai triển Maclaurin.
+ biểu thức thông thường
+ giai thừa, hàm length
+ Các hàm: abs, ifactor, iquo, irem, igcd, isprime, max, min, mod, v.v + hàm convert.
Tính toán số phức.
Các hàm toán học:
+ sin, cos, tan,
+ sinh, cosh, tanh,
+ arcsin, arccos, arctan,
Trang 8Ký hiệu "->" trong định nghĩa hàm
> f := (x,y) -> 2*x^2 -3*x*y + 4*y^2;
> plot([sin(t), cos(t), t=-Pi Pi]):
plot([sin, cos, -Pi Pi]):
> plot([sin(x), x-x^3/6], x=0 2, color=[red,blue], style=[point,line]);
> ?plot3d
> plot3d([sin(x*y), x + 2*y], x=-Pi Pi, y=-Pi Pi, color=[blue,green]);
Trang 9II.4 Thiết kế giao diện bằng Maplet
Trong phần này, chúng ta chỉ tìm hiểu cách tạo 1 ứng dụng Maplet bằng Maplet Builder
Định nghĩa Maplet Builder :
Maplet Builder là 1 giao diện đồ họa nơi mà ta có thể tạo ra những ứng dụng Maplet 1 cách
dễ dàng ( so với dùng gói Maplets )
Chức năng của Maplet Builder :
- Bố trí 1 ứng dụng Maplet bằng cách kéo và thả các elements
- Thiết lập các hoạt động cho các elements.
Giao diện Maplet Builder:
Giao diện Maplet Builder có thể chia thành 4 phần :
- Palette Pane : nơi chứa các bảng element của Maplet Gồm có 7 bảng: Body, Dialog, Menu, ToolBar, Other, Layout, Command
Lưu ý : để biết tên của element nào thì ta chỉ cần rà chuột lên biểu tượng của element đó)
- Layout Pane : là nơi bố trí 1 ứng dụng Maplet
- Command Pane : là nơi hiển thị danh mục các hoạt động của các elements
không cần dùng những trang worksheet của Maple
Trang 10- Properties Pane : là nơi cho phép ta thiết lập các thuộc tính cho các elements
Hình vẽ :
Thuộc tính của các elements :
- 1 element sẽ có nhiều kiểu thuộc tính khác nhau
- Các elements khác nhau có thể có cùng hoặc khác số kiểu thuộc tính
- Các kiểu thuộc tính của các elements khác nhau có thể giống hoặc khác nhau
Ví dụ : Element Label Element Button
Trang 11
Bố trí 1 ứng dụng Maplet :
- 1 ứng dụng Maplet được trình bày trong 1 khung chính
- Khung chính có thể được chia làm nhiều khung con ngang hoặc dọc.
- Mỗi khung con có thể được chia làm nhiều khung con ngang hoặc dọc nữa.
2.Kéo element đó vào vị trí cần chèn trong Layout Pane
Lưu ý: chỉ có thể chèn các elements từ các bảng Body, ToolBar và Layout vào Layout PaneThêm các elements vào Command Pane :
1 Chọn element cần chèn
2 Kéo elelment đó vào Command Pane
Trang 12PHẦN 2: ỨNG DỤNG MAPLET XEM CẤU TRÚC PROTEIN
I.Giới thiệu ứng dụng minh họa
Maplet - GIAO DIỆN WINDOWS
Cách chạy chương trình, mở file ProteinViewer – Ver 13 mw, chạy lại chương trình để xuấthiện giao diện Sau đó thực hiện các bước sau: (không xuất ra maplet được vì giao diện viếtbằng tiếng Việt)
+ Chương trình Maplet này chỉ nhận ra file PDB (Protein Data Bank) không có dòng tiêu đề dạng TXT
+ Chỉ vẽ được đồ thị trên 20 axit amin cơ bản như: Glycine, Alanine, Valine, Leucine,
Isoleucine, Methionine, Phenylalanine, Tryptophan, Proline, Serine, Threonine, Cysteine, Tyrosine, Asparagine, Glutamine, Aspartic acid, Glutamic acid, Lysine, Arginine, Histidine Các dòng trong file mẫu chứa HOH hoặc RET sẽ gây ra lỗi
+ Các file PDB mẫu có thể tìm thấy tại trang web http://www.ncbi.nlm.nih.gov/
Giao diện ứng dụng như sau:
Trang 13Chọn file PDB trong cùng thư mục, nhập axit amin bắt đầu là 5, axit amin kết thúc là 15, chọn checkbox nhãn axit amin, chọn nút vẽ, chọn tiếp nút danh sách các axit amin để xem các axit amin.
II Cài đặt và source code chương trình
> restart: interface (warnlevel=0): with(plottools): with(StringTools): with(plots):
with(Maplets[Elements]):
# +++++++++++++++++++
# MyMaplet tạo ra 1 windows.
# với các biến và các tham số.
"Axit amin bắt đầu:", TextField['TF2']('value'=1),
"Axit amin kết thúc:", TextField['TF3']('value'=1),
"Nhãn axit amin:", CheckBox['TF4']('value'='true')
],
[TextBox['TB1']('height'=5) ],
Plotter['PL1'](),
# TF1 là đường dẫn tên file lấy từ ổ đĩa, TF2 axit amin bắt đầu,TF3 axit min kết #
thúc,TF4 nhãn của các axit amin khi vẽ cấu trúc protein
Trang 15PlotPDB := proc(sFile, nAmnIni, nAmnEnd, bShowTags)
# Tránh lỗi thường hay xảy ra axit amin bắt đầu > axit amin kết thúc: # nAmnIni > nAmnEnd
if nAmnIni > nAmnEnd then
if lCurAmn <> lNxtAmn then
lAminoacid := [op(lAminoacid),[sCurAmn, nCurAmn, i-1]]:
Trang 16PolyBackbone := CURVES([N,CA,C,OX,C,W], THICKNESS(3));
# Nhãn của aminoacid là 3 chữ cái
# Đây là trường hợp của Plycine, không có chuỗi phụ
# và Alaninie, mà chỉ có 1 Carbon như 1 chuỗi phụ.
# trường hợp k có Alaninie, nhãn cho nó là alpha carbon
# ****************************************************** # 1) A = ALA = Alanine
if lProtein[i][4] = "ALA" then
Trang 19PolySideChain := CURVES([CA,CB,CG,CD,OE1,CD,NE2]); end if:
# ****************************************************** # Aliphatic aminoacids (14-15)axit amin từ 14-15
# ****************************************************** # 14) D = ASP = Aspartate
if lProtein[i][4] = "ASP" then
# ****************************************************** # Basic aminoacids (16-18) axit amin cơ bản từ 16-18
# ****************************************************** # 16) H = HIS = Histidine
if lProtein[i][4] = "HIS" then
Trang 20if lProtein[i][4] = "GLY" then
# Glycine không có chuỗi phụ
lCoord := [lProtein[i][7], lProtein[i][8], lProtein[i][9]]:
lLabel := [lProtein[i][7], lProtein[i][8], lProtein[i][9]+0.4, lProtein[i][3]]:
Trang 21if bShowTags = 'true' then
display3d(lPolyAmn, AtomLabel, AminoLabel, polCarbon,
polOxygen, polNitrogen, polSulfur, color=black);
if bShowTags = 'true' then
display3d(lPolyAmn, AtomLabel, AminoLabel, polCarbon,
polOxygen, polNitrogen, color=black);
Plot - GIAO DIỆN TRUYỀN THỐNG
> restart: interface (warnlevel=0): with(plottools): with(plots):
> # +++++++++++++++++
# Procedure PlotPDB THỦ TỤC PlotPDB
# +++++++++++++++++
PlotPDB := proc(sFile, nAmnIni, nAmnEnd, bShowTags)
# tránh lỗi axit amin bắt đầu lơn hơn axit amin kết thúc
if nAmnIni > nAmnEnd then
Trang 22if lCurAmn <> lNxtAmn then
lAminoacid := [op(lAminoacid),[sCurAmn, nCurAmn, i-1]]: lCurAmn := lNxtAmn:
PolyBackbone := CURVES([N,CA,C,OX,C,W], THICKNESS(3));
# Đặt nhãn 3 kí tự cho các axit amin
if k-i > 4 then
X := sum('lProtein[l][7]','l'=i+4 k)/(k-i-3):
Y := sum('lProtein[l][8]','l'=i+4 k)/(k-i-3):
Trang 23# A little displacement in Z needed for Asparagine
Z := sum('lProtein[l][9]','l'=i+4 k)/(k-i-3) - 0.4:
else
# Đây là trường hợp của Plycine, không có chuỗi phụ
# và Alaninie, mà chỉ có 1 Carbon như 1 chuỗi phụ.
# trường hợp k có Alaninie, nhãn cho nó là alpha carbon
# ****************************************************** # 1) A = ALA = Alanine
if lProtein[i][4] = "ALA" then
# 4) I = ILE = Isoleucine
if lProtein[i][4] = "ILE" then
CB:= [lProtein[i+4][7],lProtein[i+4][8],lProtein[i+4][9]]:
CG1:=[lProtein[i+5][7],lProtein[i+5][8],lProtein[i+5][9]]: CG2:=[lProtein[i+6][7],lProtein[i+6][8],lProtein[i+6][9]]: CD1:=[lProtein[i+7][7],lProtein[i+7][8],lProtein[i+7][9]]: PolySideChain := CURVES([CA,CB,CG2,CB,CG1,CD1]); end if:
# ****************************************************** # Hydrophobic-aromatic aminoacids (5-7)
# ****************************************************** # 5) F = PHE = Phenylanaline
if lProtein[i][4] = "PHE" then
CB:= [lProtein[i+4][7],lProtein[i+4][8],lProtein[i+4][9]]:
CG:=[lProtein[i+5][7],lProtein[i+5][8],lProtein[i+5][9]]:
CD1:=[lProtein[i+6][7],lProtein[i+6][8],lProtein[i+6][9]]:
Trang 25# ****************************************************** # Aliphatic aminoacids (14-15)
# ****************************************************** # 14) D = ASP = Aspartate
if lProtein[i][4] = "ASP" then
CB :=[lProtein[i+4][7],lProtein[i+4][8],lProtein[i+4][9]]:
CG :=[lProtein[i+5][7],lProtein[i+5][8],lProtein[i+5][9]]:
OD1:=[lProtein[i+6][7],lProtein[i+6][8],lProtein[i+6][9]]: OD2:=[lProtein[i+7][7],lProtein[i+7][8],lProtein[i+7][9]]: PolySideChain := CURVES([CA,CB,CG,OD1,CG,OD2]); end if:
# ****************************************************** # Basic aminoacids (16-18)
# ****************************************************** # 16) H = HIS = Histidine
Trang 26if lProtein[i][4] = "HIS" then
# ****************************************************** # Conformationally important aminoacids (19-20)
# ****************************************************** # 19) G = GLY = Glycine
if lProtein[i][4] = "GLY" then
# Glycine không có chuỗi phụ
Trang 27for i from lAminoacid[nAmnIni][2] to lAminoacid[newAmnEnd][3] do
lCoord := [lProtein[i][7], lProtein[i][8], lProtein[i][9]]:
lLabel := [lProtein[i][7], lProtein[i][8], lProtein[i][9]+0.4, lProtein[i][3]]:
if bShowTags = 'true' then
display3d(lPolyAmn, AtomLabel, AminoLabel, polCarbon,
polOxygen, polNitrogen, polSulfur, color=black);
if bShowTags = 'true' then
display3d(lPolyAmn, AtomLabel, AminoLabel, polCarbon,