Xem mẫu
- PHẦN C: PHƢƠNG PHÁP TIẾN HÀNH – Tìm kiếm dữ liệu trình tự 75
o Phần hình ảnh minh họa tổng thể:
Hình 2.22: Phần ảnh minh họa tổng thể kết quả BLAST
Phần này cho ta thông tin tổng quát về sự bắt cặp của trình tự query với các trình
tự khác trong cơ sở dữ liệu. Trình tự query là thanh đỏ có đánh số, các thanh khác là
các trình tự trong cơ sở dữ liệu. Thanh nào càng gần thanh query thì sự tƣơng đồng với
trình tự query càng cao, ngoài ra màu sắc cũng thể hiện độ tƣơng đồng ( màu đỏ có
điểm số cao nhất, tới màu hồng,…). Ở đây ta thấy có rất nhiều trình tự khớp với trình
tự query, có trình tự khớp cả hai primer và cũng có trình tự chỉ khớp với một primer.
Ta chỉ quan tâm đến các trình tự khớp với cả hai primer. Để biết thêm thông tin về các
trình tự này, ta có thể nhấp chuột vào thanh quan tâ m hay kéo xuống xem tới phần tiếp
theo.
o Phần tóm tắt một dòng:
Hình 2.23: Phần tóm tắt kết quả BLAST
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN C: PHƢƠNG PHÁP TIẾN HÀNH – Tìm kiếm dữ liệu trình tự 76
Phần này cung cấp thông tin tóm tắt về các trình tự tìm thấy trong cơ sở dữ liệu,
số gi, cơ sở dữ liệu của từng trình tự, số version, số locusID, định ng hĩa tóm tắt của
trình tự, điểm số theo số bit và giá trị E-value.
Lƣớt sơ qua phần này ta thấy, gene ACCg8 của Brassica napus xuất hiện ngay
phần đầu tiên đúng nhƣ mong muốn. Ta muốn xem sự bắt cặp của trình tự này với mồi
nhƣ thế nào chỉ cần click chuột trên scorce (bits) tƣơng ứng. Ta đƣợc bảng sau:
Hình 2.24: Phần xem chi tiết về sự gióng trình tự trên trang kết quả BLAST
Bảng này đƣa ra định nghĩa đầy đủ cho trình tự, chiều dài của trình tự, các thông
số điểm và cuối cùng là sự gióng trình tự. Ở đây ta thấy, mồi xuôi bắt cặp với mạch
dƣơng (Strand = Plus/Plus), mồi ngƣợc bắt cặp với mạch bổ sung (Strand =
Plus/Minus). Vị trí sự bắt cặp cũng đƣợc chỉ ra, mồi xuôi bắt cặp tại vị trí 9652 -9673
với trình tự gene, mồi ngƣợc bắt cặp tại vị trí 9741-9755 với trình tự gene. Kết quả này
đúng nhƣ vị trí đã đƣợc chỉ ra phần trên. Ta đánh dấu chọn và nhấn nút Get selected
sequences để lấy trình tự. Bảng sau sẽ xuất hiện:
Hình 2.25: Lấy trình tự cần từ trang kết quả BLAST
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN C: PHƢƠNG PHÁP TIẾN HÀNH – Tìm kiếm dữ liệu trình tự 77
Bảng này liệt kê các trình tự ta chọn bên trang kết quả BLAST, muốn xem chi tiết
thông tin về trình tự nào chỉ cần nhấp chuột trên số Accession number đƣợc liệt kê. Ta
cũng lấy dữ liệu về dƣới dạng text.
Tới đây có một số điều cần lƣu ý. Mục đích của ta là tập hợp dữ liệu trình tự liên
quan tới nghiên cứu GMO, ta không chỉ quan tâm tới các trình tự đƣợc tìm ra bằng
primer, mà các trình tự liên quan cũng rất hữu ích trong nghiên cứu GMO. Ví dụ nhƣ
gene tạo độc tố lấy từ vi khuẩn Bacillus thuringiensis có rất nhiều loại, nhƣ CryIA,
CryIA(b), Cry2Ab…việc lấy đƣợc các trình tự này cũng quan trọng không kém. Làm
sao ta có thể lấy ra các trình tự này khi ta chỉ có primer của một loại gene nào đó trong
số này?
Ta biết BLAST có nhiều chƣơng trình khác nhau phục vụ cho việc tìm kiếm trình
tự tƣơng đồng, ta cũng biết rằng các trình tự tƣơng đồng nhau sẽ có các tính chất giống
hay gần giống nhau. Từ trình tự primer, ta có thể lấy ra đƣợc trình tự gene mong muốn
nhƣ chỉ ra ở phần trên. Từ trình tự gene mong muốn ta có thể dùng chƣơng trình
BLAST khác tìm ra các trình tự khác có tính chất giống hay gần giống với trình tự
gene này. Các chƣơng trình MEGABLAST, Discontiguous-megablast, và blastn có thể
hoàn thành đƣợc việc này, tuy nhiên ta nên dùng chƣơng trình blastn vì đây là chƣơng
trình BLAST với các thông số đƣợc mặc định để thu đƣợc kết quả tốt nhất nếu ta chƣa
nắm vững về các thông số của chƣơng trình BLAST.
Ta sẽ tiến hành tìm kiếm các trình tự liên quan tới trình tự gene CryIA(b)
(Accession number I41419) với điểm khởi đầu là cặp primer sau:
CryIA(b)-V3: 5'-CCTGACCAAGAGCACCAACCTGG-3'
CryIA(b)-V4: 5'-GCTCATGGTGGCGCTGAAGTTGC-3'
(Virginia García-Cañas, Ramón González, Alejandro Cifuentes). Đầu tiên ta cũng
nhập trình tự primer vào khung tìm kiếm:
Hình 2.26: Nhập trình tự Primer vào khung tìm kiếm gene cryIA(b)
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN C: PHƢƠNG PHÁP TIẾN HÀNH – Tìm kiếm dữ liệu trình tự 78
Ta thực hiện tìm kiếm trong cơ sở dữ liệu nr, các thông số khác cũng đƣợc mặc
định giống nhƣ phần trƣớc. Sau khi thực hiện BLAST, kết quả nhƣ sau:
Hình 2.27: Kết quả tìm kiếm với Primer gene cryIA(b)
Trong kết quả xuất ra, ta không thấy trình tự Accession number I41419. Tại sao?
Có nhiều khả năng xảy ra ở đây, có thể primer không đặc hiệu khớp với nhiều trình tự
khác mà có điểm số cao hơn trình tự ta cần tìm, vì thế trình tự cần tìm không đƣợc thể
hiện ra trong kết quả. Trong trƣờng hợp này ta phải áp dụng thêm một vài chọn lựa
khác nhƣ mở rộng thêm phần thể hiện kết quả, giới hạn chỉ xuất kết quả trên vi khuẩn
(vì ta biết gene CryIA(b) nó có nguồn gốc từ vi khuẩn).
Ta đƣợc kết quả sau:
Hình 2.28: Kết quả tìm kiếm sau khi thay đổi thông số
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN C: PHƢƠNG PHÁP TIẾN HÀNH – Tìm kiếm dữ liệu trình tự 79
Kết quả này cũng không cho ra trình tự mong muốn. Vậy lý do là do đâu? Ta biết
primer là một trình tự gắn, việc so trình tự primer với các trình tự trong cơ sở dữ liệu
khổng lồ sẽ cho kết quả dữ liệu khớp rất lớn nếu trình tự primer đó không đặc hiệu, vì
thế đối với các primer không chuyên biệt ta rất khó lấy đƣợc dữ liệu mong muốn. Khi
đó ta cần phải biết thêm một vài thông tin khác về trình tự cần tìm, nhƣ trình tự này có
nguồn gốc từ đâu, trình tự này có vai trò gì… Mục đích cần nắm thêm các thông tin
này là vì nhờ vào nó ta sẽ giới hạn phạm vi tìm kiếm và trong phạm vi tìm kiếm đó thì
trình tự mong muốn của ta có cơ hội xuất hiện cao hơn.
Ta biết trình tự gene CryIA(b) có nguồn gốc từ vi khuẩn, đƣợc cấu trúc lại và
dùng trong chuyển gene tạo tính trạng kháng sâu cho cây trồng. Trong các cơ sở dữ
liệu còn lại của chƣơng trình BLAST, cơ sở dữ liệu PAT (pattent sequences) có thể
chứa trình tự ta cần tìm. Ta thực hiện tìm kiếm trên cơ sở dữ liệu này:
Hình 2.29: Lựa chọn lại thông số là Pat thay vì nr
Các thông số khác giống nhƣ trên, ta thu đƣợc kết quả sau:
Hình 2.30: Kết quả tìm kiếm với Database Pat
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN C: PHƢƠNG PHÁP TIẾN HÀNH – Tìm kiếm dữ liệu trình tự 80
Có rất nhiều trình tự trong cơ sở dữ liệu khớp với primer, các trình tự khớp với
điểm số cao đƣợc sắp theo thứ tự từ trên xuống dƣới. Trình tự ta cần tìm (đƣợc tô đậm)
nằm ở rất xa so với trình tự đầu tiên. Điều này chứng tỏ primer này không chuyên biệt
lắm. Từ đây rút ra kết luận là với mỗi loại query cần xác định đúng cơ sở dữ liệu thì
mới tìm đúng trình tự mong muốn.
Ta cũng chú ý đến các trình tự đƣợc tìm ra bằng primer này, so với trình tự ta cần
tìm các trình tự này cũng có tính chất tƣơng tự. Các trình tự này cũng rất cần cho tham
khảo, ta cũng lấy các trình tự này.
Hình 2.31: Trang lấy kết quả từ chƣơng trình BLAST
Tiếp theo, từ trình tự tìm đƣợc ta tiến hành tìm các trình tự tƣơng đồng. Ta dùng
chƣơng trình blastn. Dùng chƣơng trình BLAST này cũng giống nhƣ chƣơng trình
“search for short nearly exact match”. Khi mở chƣơng trình blastn, thì các thông số đã
mặc định cho thu đƣợc kết quả tốt nhất. Bạn cũng có thể thay đổi một số thông số phù
hợp cho mục đích tìm kiếm của mình.
Ta thực hiện tìm các trình tự tƣơng đồng nhƣ sau:
Nhập trình tự query:
Hình 2.32: Tìm kiếm trình tự bằng số xác định qua trang BLAST
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN C: PHƢƠNG PHÁP TIẾN HÀNH – Tìm kiếm dữ liệu trình tự 81
Vì trình tự này có sẵn trong GenBank, ta không cần nhập trình tự vào mà chỉ cần
nhập vào số xác định cho trình tự đó nhƣ Accession number, gi. Ở đây ta nhập vào
Accession number.
Thực hiện và định dạng kết quả xuất ra, lựa chọn Bacteria ở mục select from.
Ở đây ta chỉ quan tâm kết quả trên vi khuẩn. Kết quả xuất ra nhƣ sau:
Hình 2.33: Kết quả BLAST dạng HTML
Nhìn vào kết quả ở dạng hình ảnh và phần tóm tắt, ta thấy chỉ có vài kết quả đầu
là phù hợp với mục đích của ta, là các trình tự có liên quan đến cây trồng biến đổi di
truyền. Ta chọn và lấy các trình tự này về dƣới dạng text file.
Hình 2.34: Kết quả BLAST dạng text
Tóm lại dựa vào trình tự các primer tổng hợp đƣợc từ các bài báo, ta sẽ dùng các
trình tự này tìm kiếm trình tự mong muốn, đồng thời cũng tìm luôn các trình tự liên
quan tới trình tự quan tâm hiện đang có trong cơ sở dữ liệu thế giới làm cho dữ liệu
của ta sẽ phong phú hơn, đáp ứng đƣợc nhiều mục đích khai thác sử dụng.
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 82
D. KẾT QUẢ VÀ THẢO LUẬN
I. Các kết quả thu đƣợc từ quá trình tìm kiếm ấn phẩm khoa học
Sau khi tìm kiếm, chọn lọc bài báo, ấn phẩm khoa học trên các công cụ tìm kiếm
ta thu đƣợc các kết quả nhƣ sau:
Cây trồng biến đổi di truyền phổ biến hiện nay trên thế giới: tổng số 37 loài cây
(xem bảng danh sách ở phụ lục A).
Tính trạng phổ biến dùng trong cây trồng biến đổi di truyền
a) Tính trạng kháng côn trùng: bắp kháng côn trùng, cà chua kháng côn
trùng…
b) Tính trạng mang tính kháng bệnh: đậu nành kháng bệnh…
c) Tính trạng kháng thuốc trừ cỏ: cải dầu, bắp, đậu nành…kháng thuốc diệt
cỏ.
d) Tính trạng năng suất nông học: tăng hàm lƣợng tinh bột, acid béo…
e) Tính trạng cho mục đích dinh dƣỡng và dƣợc liệu: tăng thành phần
lysine…
(Chi tiết xem bảng tổng hợp cây trồng và tính trạng biến đổi di truyền ở phụ lục).
Tổng số primer dùng trong chẩn đoán sản phẩm biến đổi di truyền tổng hợp
đƣợc: 114 cặp primer. (Xem chi tiết ở phụ lục C).
II. Các kết quả thu đƣợc từ quá trình tìm kiếm trình tự trên NCBI
Cả hai phƣơng pháp: tìm kiếm trình tự bằng keyword và tìm kiếm trình tự bằng
trình tự primer đều đem lại cho ta rất nhiều kết quả. Dƣới đây là một vài nhận xét rút
ra qua quá trình tìm kiếm.
* Tổng số trình tự tìm đƣợc là: 5628 trình tự. Trong đó:
Tìm bằng keyword chiếm 57.16%
Tìm bằng primer chiếm 42.84%
* Qua đó chúng tôi kết luận cả hai phƣơng pháp đều cần thiết trong quá trình tìm
kiếm trình tự. Với phƣơng pháp tìm kiếm trình tự bằng keyword độ chính xác tùy
thuộc vào thông tin keyword ta có. Với phƣơng pháp tìm kiếm bằng primer độ chính
xác kết quả tìm đƣợc phụ thuộc độ đặc hiệu của primer và cơ sở dữ liệu tìm kiếm.
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 83
Mỗi phƣơng pháp đều có ƣu và nhƣợc điểm riêng, dùng phƣơng pháp nào tùy
thuộc vào thông tin ta có đƣợc. Trong phạm vi đề tài này, chúng tôi đề nghị tìm kiếm
trình tự bằng primer vì phƣơng pháp này đem lại kết quả mong muốn nhanh chóng, dễ
dàng hơn so với keyword.
II.1. Kết quả tìm kiếm trình tự bằng keyword
Một thực tế là các keyword tƣơng tự nhau mang về kết quả trùng lắp rất nhiều,
điển hình lấy ví dụ về keyword để tìm gene tạo ra Coleopteran, qui định tính kháng với
trùng rễ bắp (Resistance to corn root worn, Diabrotica sp.), keyword đƣợc nhập nhƣ
sau: “coleopteran AND gene[FKEY]”.
Hình 2.1: Kết quả dạng text khi tìm kiếm bằng keyword 1
Mặt khác với keyword: “diabrotica corn AND gene[FKEY] AND gbdiv_bct”:
Hình 2.2: Kết quả dạng text khi tìm kiếm bằng keyword 2
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 84
Cả hai keyword này đều có mục đích chung là tìm gene qui định tính kháng với
trùng rễ bắp. Mỗi keyword cho ra thông tin trình tự khác nhau. Tuy nhiên, khi so sánh
hai kết quả trên, ta thấy có một vài trình tự giống nhau giữa hai kết quả (các số đƣợc
khoanh tròn). Vấn đề không có gì nếu chỉ với vài kết quả, ta có thể so sánh từng file và
tìm ra các số giống nhau để kết quả tổng hợp của ta không bị dƣ thừa. Nhƣng ở đây,
tìm kiếm với rất nhiều keyword vì thế thông tin lấy về đƣợc là rất lớn.
II.2. Kết quả tìm kiếm trình tự bằng Primer
Tƣơng tự nhƣ tìm bằng keyword, tìm bằng primer cũng đem về kết quả rất nhiều
trình tự. Mặc dù tìm bằng primer cho kết quả chính xác cao hơn, tuy nhiên các vấn đề
cũng nảy sinh giống nhƣ trƣờng hợp tìm bằng keyword. Từ Bảng thống kê Primer
(xem phụ lục C) ta thấy có rất nhiều trình tự primer dùng để xác định gene CryIA(b).
Vì thế kết quả ta thu đƣợc từ các primer này có thể trùng nhau rất nhiều. Thêm vào đó,
việc trùng lắp thông tin giữa hai phƣơng pháp cũng xảy ra. Ví dụ nhƣ với cặp mồi
CryIA(b)-V3 5'-CCTGACCAAGAGCACCAACCTGG-3'
CryIA(b)-V4 5'-GCTCATGGTGGCGCTGAAGTTGC-3'
Ta đƣợc kết quả sau:
Hình 2.3: Kết quả dạng text khi tìm kiếm bằng primer
Với keyword “Bacillus thuringiensis” [ORGN] AND cry* AND gene[FKEY]”,
ta đƣợc kết quả sau:
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 85
Hình 2.4: Kết quả dạng text khi tìm kiếm bằng keyword
Ta thấy kết quả bị trùng lắp (số đƣợc khoanh tròn), vì thế loại bỏ sự trùng lắp
trong quá trình tổng hợp kết quả là vấn đề cần thiết.
Với lƣợng thông tin rất lớn từ hai nguồn, ta không thể thống kê bằng tay thông
thƣờng đƣợc.
II.3. Dùng Perl xử lý kết quả thu được
Ta dùng chƣơng trình Perl giải quyết các vấn đề sau:
Loại bỏ trùng lắp dữ liệu, tổng hợp danh sách tổng hợp các trình tự thu đƣợc.
Tải trình tự hoàn chỉnh từ NCBI.
Phân loại trình tự theo nguồn gốc.
II.3.1. Loại bỏ trùng lắp dữ liệu, tổng hợp danh sách tổng hợp
a) Phân tích file kết quả thu được
Sau các kết quả tìm kiếm bằng keyword và primer, ta thu về các file kết quả dạng
text, mang nội dung tóm tắt thông tin các trình tự.
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 86
Hình 2.5: Minh họa 1 file kết quả thu đƣợc sau khi tìm kiếm trình tự trên NCBI
Đây là một nội dung tóm tắt trình tự:
1: DQ020578
Bacillus thuringiensis strain FY-2 Cry2Ac (cry2Ac) gene, complete cds
gi|66734542|gb|DQ020578.1|[66734542]
DQ020578: Đây là Accession number của trình tự. Mỗi trình tự có một số
Accession number riêng. Ta có thể dùng số này lấy ra đoạn trình tự trên Genbank.
Bacillus thuringiensis strain FY-2 Cry2Ac (cry2Ac) gene, complete cds: Đây là
phần định nghĩa của trình tự. Thông thƣờng phần này bao gồm: tên sinh vật cung cấp
trình tự (source), tên gene hay tên protein, hay một số mô tả chức năng của trình tự.
Nếu trình tự có chứa vùng mã hóa (coding sequence-CDS), đƣợc mô tả là complete
cds (toàn bộ CDS) hay partial cds (một phần CDS).
gi|66734542|gb|DQ020578.1|[66734542]: số gi của trình tự, ở đây là
66734542; cơ sở dữ liệu của trình tự, ở đây là gb (GenBank); số version DQ020278.1;
cuối cùng là Locus name (nếu có), hoặc số gi 66734542.
b) Tạo thiết kế cho chương trình xử lý kết quả
Mục tiêu là loại bỏ các trình tự trùng lắp giữa các file, tổng hợp một file tổng hợp
duy nhất. Ta biết Accession number là số duy nhất xác định trình tự, vì thế một số
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 87
Accession number tƣơng ứng với một trình tự trong GenBank. Ta sẽ dựa vào số này để
xử lý số liệu trình tự.
Chƣơng trình của ta phải xử lý các vấn đề sau:
Đọc file từ một đƣờng dẫn chứa các file kết quả.
Với mỗi file ta tách các Accession number và cất các số này lại. Nếu gặp lại số
Accession number đã có thì chồng lên.
Cuối cùng ghi các Accession number cất đƣợc vào file.
c) Mã xử lý chương trình bằng Perl
Để làm đƣợc toàn bộ vấn đề này, chƣơng trình của ta phải làm nhiều nhiệm vụ
nhƣ đọc file trong một thƣ mục, tách các Accession number, cất các Accession
number, ghi các Accession number tới tới file. Ngay một lúc ta viết một chƣơng trình
xử lý hết các vấn đề này thật sự là một công việc khó khăn, chƣơng trình của ta sẽ rất
dài khó kiểm tra, sửa chữa.
Ta biết Perl cho phép ta tạo ra các chƣơng trình con (subroutines), mỗi chƣơng
trình con đảm nhận một nhiệm vụ, và cuối cùng chúng kết hợp tƣơng tác với nhau và
với chƣơng trình chính tạo ra một chƣơng trình hoàn chỉnh. Ƣu điểm của viết chƣơng
trình con là mỗi chƣơng trình con chỉ đảm nhận một nhiệm vụ vừa phải, cho nên
chúng dễ viết, dễ kiểm tra, sửa chữa. Thêm nữa, chƣơng trình con có khả năng tái
dụng rất cao. Ta có thể dùng chƣơng trình con đƣợc viết ở một thời điểm khác, hay do
ngƣời khác viết …
Vậy, ta sẽ giải quyết vấn đề trên bằng cách chia chúng ra thành từng vấn đề nhỏ
(nhiệm vụ), viết các chƣơng trình con xử lý từng vấn đề nhỏ này. Cuối cùng sẽ sử
dụng tổng hợp các chƣơng trình con này để giải quyết vấn đề chính.
Vấn đề 1: Viết chƣơng trình con đọc file trong thƣ mục chứa các file kết quả.
Đây là chƣơng trình con thực hiện việc lấy tất cả các file text trong một đƣờng
dẫn. Kết quả lấy về từ CSDL thế giới nên đƣợc tập hợp chung trong cùng một đƣờng
dẫn để tiện cho việc xử lý. (Xem đoạn mã của chương trình ở phụ lục D, nhiệm vụ 1)
Chƣơng trình con này giúp ta lấy ra đƣợc tất cả các file kết quả (dạng text) trong
một thƣ mục.
Ta có thể kiểm tra sự hoạt động của chƣơng trình con này qua một chƣơng trình
nhỏ hoàn chỉnh. (Xem đoạn mã phụ lục D, nhiệm vụ 1)
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 88
Vấn đề 2: Viết chƣơng trình con tạo bảng băm (Hash Table).
Bảng băm với key là Acession number, value là nội dung tóm tắt trình tự. Ta
dùng bảng băm ở đây vì khi có một số Accession number trùng nhau, số sau sẽ chồng
lên số trƣớc và value của Accession number đó cũng bị thay đổi theo số sau. Do đó ta
sẽ đƣợc bảng băm sẽ không có Accession trùng nhau. (Xem đoạn mã của chương trình
ở phụ lục D, nhiệm vụ 2)
Ta có thể kiểm tra sự hoạt động của chƣơng trình con này qua một chƣơng trình
hoàn chỉnh nhỏ. (Xem đoạn mã phụ lục D, nhiệm vụ 2)
Vấn đề 3: Sau khi có bảng băm chứa các Accession number, nhiệm vụ tiếp
theo của ta là ghi kết quả vào một file kết quả tổng hợp.
Chƣơng trình con này, đầu tiên nhận vào bảng băm với các cặp key – value tƣơng
ứng, sau đó ghi giá trị values vào file. (Xem đoạn mã của chương trình ở phụ lục D,
nhiệm vụ 3)
Ta có thể kiểm tra sự hoạt động của chƣơng trình con này qua một chƣơng trình
nhỏ hoàn chỉnh. (Xem đoạn mã phụ lục D, nhiệm vụ 3)
Đến đây ta đã có đầy đủ các thành phần để giải quyết vấn đề đặt ra ban đầu.
Ta tạo đoạn mã hoàn chỉnh cho phép ta loại bỏ trùng lắp và tạo một file kết quả
tổng hợp. Đặt tên chƣơng trình là hashloc.pl. Ta tiến hành chạy chƣơng trình.
Bƣớc 1 : Vào Start. Chọn Run. Gõ “cmd”. Cửa sổ MS-DOS hiện ra.
Bƣớc 2: Gõ nhập đƣờng dẫn đến nơi chứa file hashloc.pl. Nhấn Enter.
Bƣớc 3: Gõ nhập theo hƣớng dẫn của chƣơng trình.
Hình 2.6: Chƣơng trình Perl bắt đầu chạy.
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 89
Hình 2.7: Nhập đƣờng dẫn đến thƣ mục chứa file kết quả tìm kiếm
Hình 2.8: Chƣơng trình Perl đã chạy xong. Có tổng cộng 5628 số Acc.Number sau khi
đã loại bỏ các Acc.Number trùng nhau
Hình 2.9: Lƣu danh sách này vào file tonghopdulieu.txt
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 90
Sau khi chạy chƣơng trình xong, ta đƣợc file tonghopdulieu.txt chứa tất cả nội
dung tóm tắt trình tự ta tìm đƣợc, không còn hiện tƣợng trùng lắp dữ liệu.
Hình 2.10: Nội dung file tonghopdulieu.txt
II.3.2. Tải trình tự
Thông tin ta cần thực sự là thông tin đầy đủ về trình tự. Thông tin trong file
tonghopdulieu.txt chứa các thông tin tóm tắt trình tự đã đƣợc chọn lọc. Dựa
vào số Accession number ta có thể lấy các trình tự này về từ GenBank. Nhƣng với số
lƣợng 5628 trình tự hiện có thì việc lấy trình tự trên genbank về quả là khó khăn. Nếu
làm bằng tay sẽ tốn một lƣợng thời gian rất lớn.
Ta cần lấy file trình tự đầy đủ về ở dạng text file vì ở dạng này file tải nhẹ, và file
ở dạng text dễ dàng cho xử lý bởi chƣơng trình. Để tải đƣợc trình tự ở dạng text, ta
phải tìm địa chỉ cho phép ta lấy file trình tự dạng text. Địa chỉ đó nhƣ sau:
http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?db=nucleotide&qty=1&c_start=
1&list_uids=X62821&dopt=gb&dispmax=5&sendto=t&from=begin&to=end&extrafe
atpresent=1&ef_MGC=16
hoặc
http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?cmd=&txt=on&val=X62821
(Lƣu Phúc Lợi, 2004).
Ở hai địa chỉ trên cho phép ta tải trình tự có Accession number X62821 về dƣới
dạng text. Vậy mỗi lần tải ta chỉ lấy về đƣợc một trình tự. Nếu dùng các phần mềm
load, để lấy đƣợc hết tất cả các trình tự, ta phải nhập vào tất cả 5628 địa chỉ (mỗi địa
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 91
chỉ ta thay thế một số Accession number tƣơng ứng). Một việc làm quá lớn, tốn quá
nhiều thời gian.
Đến đây buộc ta phải viết chƣơng trình để tải tất cả các trình tự này về.
a. Thiết kế cho chƣơng trình:
Lấy nội dung từ một địa chỉ Web về.
Lặp nhiều lần, lấy nội dung của tất cả các Accession number.
Lƣu nội dung tải về vào một thƣ mục đƣợc chỉ ra, nếu nội dung không tải đƣợc
lƣu vào thƣ mục khác để tải lại.
b. Mã cho chƣơng trình
Lấy nội dung từ một địa chỉ Web
Perl là một ngôn ngữ đã phát triển đã khá lâu, vì thế Perl có sẵn rất nhiều module
làm nhiều chức năng khác nhau. Trƣớc khi thật sự phải viết một chƣơng trình với ngôn
ngữ Perl, ta hãy tìm kiếm xem có sẵn các module làm công việc đó hay không. Ta có
thể tìm trong thƣ viện Perl có sẵn khi ta cài đặt trình biên dịch Perl (nhƣ ActivePerl
trên Windows), hay trên các trang Web.
Module LWP::Simple trong thƣ viện Perl có chứa năng đem về một nội
dung từ một địa chỉ URL.
Lấy tất cả các trình tự từ địa chỉ URL cho trƣớc, lƣu vào thƣ mục đƣợc chỉ ra
Chƣơng trình đƣợc chia ra làm hai phần chính, chƣơng trình chính và một
chƣơng trình con. Chức năng tải trình tự, cất vào các thƣ mục định sẵn do phần
chƣơng trình con đảm nhận, chƣơng trình chính chỉ làm nhiệm vụ tách Accession
number trong file tonghopdulieu.txt hay nhận số Accession number từ ngƣời
dùng, và sử dụng chức năng của chƣơng trình con tải các trình tự này về.
Chƣơng trình đƣợc đặt tên là load.pl. (Đoạn mã của chương trình xem ở phụ
lục D, nhiệm vụ 5). Ta chạy chƣơng trình load.pl.
Bƣớc 1 : Vào Start. Chọn Run. Gõ “cmd”. Cửa sổ MS-DOS hiện ra.
Bƣớc 2: Gõ nhập đƣờng dẫn đến nơi chứa file load.pl. Nhấn Enter.
Bƣớc 3: Gõ nhập theo hƣớng dẫn của chƣơng trình.
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 92
Hình 2.11: Chƣơng trình load.pl đang chạy
Ở đây ta chọn chế độ all, nghĩa là load toàn bộ trình tự. Chƣơng trình chạy xong
ta đƣợc tất cả 5628 trình tự trong thƣ mục load trên ổ đĩa D. Mỗi trình tự là một file
text với tên là Accession number tƣơng ứng.
Hình 2.12: Minh họa kết quả các trình tự đƣợc tải về
III. Các kết quả thu đƣợc từ quá trình tải trình tự từ Genbank
Từ file tonghopdulieu.txt, sau khi tải trình tự từ Genbank bằng chƣơng
trình load.pl, kết quả thu đƣợc có 5628 trình tự.
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 93
IV. Tổ chức dữ liệu
IV.1. Cách thức tổ chức dữ liệu
Về khía cạnh công nghệ thông tin, nguyên tắc tổ chức một hệ thống ứng dụng
phần mềm nhƣ sau:
Tầng giao
Tầng xử lý Tầng dữ
tiếp ngƣời
thông tin liệu
sử dụng
Sơ đồ 4.1: Mô hình tổ chức một hệ thống ứng dụng
Việc phân loại dữ liệu phụ thuộc vào việc phân tích dữ liệu cho một hệ thống ứng
dụng cụ thể.
Theo yêu cầu của đề tài, tổ chức các gene phục vụ nghiên cứu cây trổng biến đổi
di truyền, ta có thể phân dữ liệu nhƣ sau:
Phân theo nhóm tính trạng:
o Nhóm gene cung cấp tính kháng.
o Nhóm gene cung cấp các tính trạng còn lại.
Tổ chức dữ liệu theo dạng này, cho phép ngƣời dùng tìm gene qui định tính
trạng mình mong muốn nhanh chóng.
Phân theo nguồn gốc gene
Cho phép ngƣời dùng tìm đƣợc trình tự mong khi biết nguồn gốc xuất phát của
trình tự…
Có nhiều cách để phân loại dữ liệu, tuy nhiên việc phân loại dữ liệu cũng phải
phụ thuộc vào việc khảo sát dữ liệu có đƣợc. Dữ liệu của ta là các record Genbank, ta
thấy khi khảo sát dữ liệu mỗi record, các thông tin về nguồn gốc của mỗi trình tự thể
hiện ở khu vực (divisions) và thƣờng mang tính ổn định cao. Các thông tin khác thì
thƣờng không ổn định.
Tổ chức dữ liệu phải mang tính ổn định. Vì vậy để đảm bảo tính ổn định của dữ
liệu, ta phân chia dữ liệu mang tính chất tổng thể theo các khu vực (divisions), tức
phân theo nguồn gốc xuất ở mức độ lớn, không đi vào chi tiết cụ thể từng sinh vật
(càng chi tiết càng càng phức tạp, càng mang tính ổn định không cao).
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 94
IV.2. Tiến hành tổ chức, phân loại dữ liệu
Nhận xét về dữ liệu mà ta đang có, sẽ có rất nhiều cách để phân loại dữ liệu này,
tuy nhiên khi phân tích các dữ liệu ta thấy mỗi trình tự đều có thông tin về nguồn gốc
của chúng, ví dụ nhƣ trình tự AB012288, thuộc về trƣờng vi khuẩn (BCT division)
xuất phát từ Bacillus thuringiensis. Các thông tin khác, thƣờng không ổn định.
Và cũng để phục vụ đúng mục tiêu tìm kiếm theo trƣờng, khu vực, ta sẽ tổ chức,
phân loại dữ liệu dựa trên các thông tin về nguồn gốc xuất phát của trình tự. Vì tính ổn
định của các thông tin này, nên việc cập nhật dữ liệu về sau sẽ rất thuận lợi, đảm bảo
tính ổn định của tầng dữ liệu.
Hiện nay dữ liệu Genbank đƣợc chia ra các khu vực sau:
1. PRI - primate sequences (trình tự bộ linh trƣởng)
2. ROD - rodent sequences (trình tự bộ gặm nhắm)
3. MAM - other mammalian sequences (trình tự động vật hữu nhũ khác)
4. VRT - other vertebrate sequences (trình tự động vật có xƣơng sống khác)
5. INV - invertebrate sequences (trình tự động vật không xƣơng sống)
6. PLN - plant, fungal, and algal sequences (trình tự tảo, nấm, thực vật)
7. BCT - bacterial sequences (trình tự vi khuẩn)
8. VRL - viral sequences (trình tự virus)
9. PHG - bacteriophage sequences (trình tự thể thực khuẩn)
10. SYN - synthetic sequences (trình tự tổng hợp)
11. UNA - unannotated sequences (trình tự chƣa đƣợc chú thích)
12. EST - EST sequences (expressed sequence tags)
13. PAT - patent sequences (trình tự bản quyền)
14. STS - STS sequences (sequence tagged sites)
15. GSS - GSS sequences (genome survey sequences)
16. HTG - HTG sequences (high-throughput genomic sequences)
17. HTC - unfinished high-throughput cDNA sequencing
Thông tin về khu vực (division) đƣợc bao gồm trong nội dung file Genbank,
đƣợc thể hiện ở phần sau:
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
nguon tai.lieu . vn