Xem mẫu
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 97
Hình 4.4: Kết quả cuối cùng sau khi chƣơng trình phân Division đã chạy xong
Dữ liệu của ta đƣợc phân loại theo từng trƣờng riêng biệt, đây là cấu tạo tầng dữ
liệu của ta.
Thống kê kết quả cuối cùng, tất cả các trình tự đƣợc phân loại vào các trƣờng nhƣ
sau:
PLN: 3129 trình tự.
BCT: 476 trình tự.
VRL: 662 trình tự.
PAT: 228 trình tự.
SYN: 210 trình tự.
EST: 874 trình tự.
INV: 36 trình tự.
STS: 1 trình tự.
GSS: 10 trình tự.
ENV: 1 trình tự.
VRT: 1 trình tự.
Qua khảo sát tài liệu và các record Genbank, có nhận xét sau: Các gene dùng
trong thực vật biến đổi di truyền hiện nay đa số từ thực vật, vi khuẩn, virus, ngoài ra
còn một số trình tự đƣợc tổng hợp nhân tạo nhƣ CryIAb, cp4epsps…
Các trình tự này chủ yếu nằm trên các khu vực PLN, BCT, VRL, PAT, SYN,
EST, các trƣờng còn lại chứa các trình tự dƣ thừa, vì thế ta chỉ cho tìm kiếm trên các
khu vực chứa trình tự quan tâm.
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 98
V. Java tiến hành xử lý dữ liệu
Xây dựng ứng dụng tra cứu dữ liệu trình tự thông qua các keyword do ngƣời
dùng chọn lựa và nhập vào.
V.1. Các yêu cầu đặt ra
Với keyword bất kỳ nhập vào, cần tìm đƣợc file chứa từ đó trong nội dung.
Để thông tin tìm đƣợc đúng mong muốn, ta sẽ tạo thêm các giới hạn tìm kiếm.
Có hai mức giới hạn đƣợc đặt ra:
Mức dữ liệu: ta cho ngƣời dùng giới hạn tìm kiếm trên các bộ dữ liệu:
o Thực vật (Plant)
o Vi khuẩn (bacterial)
o Virus (viral)
o EST (EST)
o SYN (SYN)
o PAT (PAT)
Mức các trƣờng trong record GenBank:
o LOCUSID
o Length
o Molecular type
o DEFINITION
o ACCESSION NUMBER
o VERSION
o GI
o ORGANISM
o AUTHOR
o TITLE
o JOURNAL
o Gene name
o Product name
Ngƣời dùng có thể kết hợp các yêu cầu qua các toán tử AND, OR, NOT để tìm
kiếm chính xác thông tin cần tìm.
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 99
V.2. Xử lý yêu cầu bằng Java và Biojava
Phân tích nội dung của dữ liệu genbank. Có thể phân nội dung thành hai phần:
Phần tìm kiếm thông tin liên quan đến trình tự: Bắt đầu từ trƣờng
LOCUS đến phần bắt đầu của trƣờng ORIGIN.
Phần tìm kiếm thông tin trình tự: Tìm kiếm trong nội dung của trƣờng
ORIGIN.
Xử lý dữ liệu tìm kiếm theo các trƣờng
Đầu tiên ta thực hiện việc tách các trƣờng mà yêu cầu nội dung khi tìm
kiếm phải chính xác. Các trƣờng này đƣợc chỉ ra trong hình sau:
Hình 5.1: Các trƣờng tìm kiếm chính xác
Trƣớc hết tách các trƣờng lớn nhƣ LOCUS, VERSION: Việc tách
các trƣờng này đƣợc thực hiện bằng các phƣơng thức cụ thể t rong lớp
GetFieldOfGenBank.java. Phƣơng thức quan trọng trong lớp này là get(File file,
String fieldRequest). Phƣơng thức này nhận hai tham số là nội dung file và nội dung
trƣờng cần tìm.
Tiếp theo tiến hành tách các trƣờng nhỏ hơn trong hai trƣờng
LOCUS và VERSION nhƣ chỉ ra trên hình. Thực hiện việc này đƣợc đảm nhận bởi
các phƣơng thức trong lớp Get FieldInLocVerAcc. Các phƣơng thức chính đảm nhận
việc tách là và
GetFieldOfLocus(File file, String fieldRequest)
GetFieldOfVersion(File file, String fieldRequest).
Trƣờng ACCESSION cũng tiến hành tƣơng tự.
Tiếp theo tiến hành tách các trƣờng khác cung cấp thông tin về chức
năng trình tự:
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 100
Hình 5.2: Các trƣờng cung cấp thông tin trình tự cần tách
Cách tách các trƣờng này (các trƣờng đƣợc khoanh đỏ) đƣợc thực
hiện bởi các phƣơng thức trong lớp GetFieldOfGenBank giống nhƣ các lớp trên.
Trong các trƣờng trên thì trƣờng FEATURES chứa các thông tin
quan trọng của trình tự. Ở đây ta quan tâm các thông tin trong vùng mã hóa CDS
(đƣợc đóng khung). Các thông tin trong trƣờng CDS thƣờng là tên gene, tên sản phẩm
của trình tự, và trình tự amino acid tƣơng ứng. Đây là các nội dung quan trọng cần cho
tìm kiếm và hiển thị kết quả.
Mỗi nội dung trong trƣờng CDS đƣợc bắt đầu bằng biểu tƣợng
“/” sau đó là tên tiêu mục nội dung tiếp theo là dấu “=” cuối cùng là nội dung của tiêu
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 101
mục, ví dụ /gene= : bắt đầu nội dung tên gene. Dựa vào điều này ta tạo các phƣơng
thức trong lớp GetFieldInSmallFieldOfFeature để tách các phần nội dung này.
Thực hiện tìm kiếm trình tự trong trƣờng ORIGIN
Phần này ta ứng dụng mã biojava để xử lý. Lớp CheckOriginRequest
làm nhiệm vụ tìm kiếm cho trƣờng này.
Đến đây ta đã hoàn thành tìm kiếm trên từng trƣờng cụ thể, việc tìm kiếm trên tất
các trƣờng đƣợc thực hiện bằng cách xét tuần tự từng trƣờng, nếu tìm thấy nội dung
trong bất kỳ trƣờng nào thì việc tìm kiếm đƣợc dừng lại.
V.3.Thiết kế giao diện
Qua tham khảo giao diện các trang web trên thế giới và theo yêu cầu thực tế của
đề tài, trang giao diện đƣợc chúng tôi thiết kế nhƣ sau:
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 102
Hình 5.3: Trang giao diện tìm kiếm GM Databases
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 103
Thiết kế trang giao diện trên chúng tôi dựa theo các tiêu chí sau:
Khung tìm kiếm tạo thuận lợi, dễ chọn lựa, không phức tạp và rắc rối đối
với ngƣời dùng.
Hình 5.4: Nội dung trang tìm kiếm
Phần hƣớng dẫn, giúp ngƣời sử dụng hiệu quả hơn với các chọn lựa tìm
kiếm.
Chữ viết tắt ở đầu trang: NLBI là chữ viết tắt của tên nhóm nghiên cứu
Tin – Sinh học của Đại Học Nông Lâm Tp.HCM. (Nông Lâm BioInformatics)
Trên thanh chỉ mục ngang ở đầu trang web có các liên kết đến các trang
cung cấp thông tin chung nhƣ:
NLBI Home: liên kết đến trang chủ, tại đây cung cấp đầy đủ các
thông tin hiện có về nhóm bioinformatics của Đại Học Nông Lâm.
About NLBI: cung cấp thông tin về nhóm bioinformatics của Đại
Học Nông Lâm.
Contact Us: cung cấp các cách tiếp cận các cơ sở dữ liệu hiện có
của nhóm.
Help: cung cấp thông tin hỗ trợ cho tất cả các nội dung hiện có.
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 104
Trong khung chỉ mục phía trái trang web có các mục: Index, Tools,
Documentation, News. Những mục này là những liên kết tới các trang thông tin hỗ trợ
trang NLBI Search nhƣ:
Index: liệt kê tất cả các kiểu tìm kiếm hiện có.
Tools: cung cấp các công cụ phân tích trình tự hoạt động tại web
server hay software download.
Documentation: cung cấp các tài liệu về trang NLBI search nhƣ
cách hoạt động của trang, các chỉ dẫn tìm kiếm thông tin hiệu quả…
News: các thông tin cập nhật về trang NLBI search.
Ngoài ra, trang web còn đƣợc trang trí với màu sắc dễ nhìn và mang tính
đặc trƣng riêng của nhóm làm việc. Các mục trên trang web về sau có thể mở rộng,
nâng cao, tăng tính năng tìm kiếm, tăng những hỗ trợ cho ngƣời sử dụng, …
Một tiện lợi nhỏ của trang web tìm kiếm này là ngoài khả năng tìm kiếm trên dữ
liệu GM Database của NLBI, thì ngƣời sử dụng khi cần thiết vẫn có thể chọn lựa tìm
kiếm trên dữ liệu của các trang tìm kiếm lớn trên thế giới là GenBank, EMBL, DDBJ,
không phải mất thời gian để mở một cửa sổ tìm kiếm khác trên máy tính.
V.4. Lập trình hiển thị giao diện sử dụng
a) Lập trình web
Kết quả sau khi xử lý sẽ đƣợc hiển thị ra giao diện web. Nội dung hiển thị tạo
thuận lợi cho ngƣời dùng trong việc nắm bắt các thông tin về trình tự tìm đƣợc. Cụ
thể:
Trang tìm kiếm với giao diện và hƣớng dẫn tạo thuận lợi cho tìm kiếm.
Kết quả tìm kiếm đƣợc hiển thị mặc định ở dạng thông tin tóm tắt tiện cho
ngƣời dùng có khái niệm khái quát về trình tự.
Có thể hiển thị linh động sang các kiểu hiển thị nội dung khác nhƣ:
Thể hiện đầy đủ thông tin dƣới dạng GenBank
Thể hiện trình tự dạng FASTA
Thể hiện chỉ vùng trình tự mã hóa (CDS) dƣới dạng FASTA
Thể hiện trình tự amino acid dƣới dạng FASTA.
Nội dung hiển thị đƣợc xem dƣới dạng web (HTML) hay dạng văn bản (text).
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 105
Giao diện web đƣợc thiết kế với hai công cụ thiết kế thông dụng Frontpage và
Dreamweaver, sau đó đƣợc chuyển mã vào Java Servlet. Công nghệ Java Servlet cho
phép kết nối các ứng dụng trên web với cơ sở dữ liệu.
b) Ứng dụng Java Servlet lập trình web
Ứng dụng tìm kiếm:
Hình 5.5: Một trƣờng hợp tìm kiếm trên web
Đây là một trang web tìm kiếm bằng keyword, để trang web có thể hoạt động ta
có thể chuyển mã của trang này thành mã của Java Servlet (sau này có thể cải tiến
bằng cách dùng JSP hoặc các công cụ khác). Ở đây ta lấy một ví dụ cụ thể một cách
tìm kiếm để minh họa cụ thể cách hoạt động của trang web:
Chúng ta có thể nhập bất cứ nội dung tìm kiếm nào vào khung Search for, ở
đây ta nhập keyword là PAT.
Trong khung Limited Field ta chọn trƣờng tìm kiếm cụ thể, ở đây ta chọn
Anyfields.
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 106
Trong khung Choose Database, chọn nhóm dữ liệu tìm kiếm ở đây ta chọn
Patent Database.
Sau khi ngƣời dùng nhấn Submit yêu cầu đƣợc gởi lên máy chủ, khi đó máy
chủ gởi yêu cầu đến Servlet Controller kèm theo các tham số mà ngƣời dùng chọn lựa
khi submit.
Tại lớp Controller đầu tiên sẽ nhận vào cơ sở dữ liệu cần tìm, đọc nội dung
trong folder dữ liệu và lần lƣợt lấy hết các tham số cần thiết cho việc tìm kiếm nhƣ:
nội dung và trƣờng cần tìm. Tiếp theo sẽ tiến hành tìm kiếm lần lƣợt các file trong
folder, nếu kết quả đúng sẽ trả về file đó và lƣu giữ trong biến session (là danh sách
các file thỏa việc tìm kiếm). Việc thực hiện tìm kiếm theo tham số nhận vào đƣợc thực
hiện trong lớp Check.
Sau khi có đƣợc các tham số chƣơng trình sẽ gọi hàm check(String fileName,
String fieldName, String value) ba tham số nhận vào lần lƣợt là tên file dữ liệu cần
tìm, trƣờng cụ thể muốn tìm kiếm và nội dung tìm kiếm. Trƣớc khi việc tìm kiếm đƣợc
thực hiện chƣơng trình sẽ kiểm tra xem trƣờng tìm kiếm là Anyfield hay LimitedField.
Nếu AnyField sẽ thực hiện tìm kiếm các trƣờng bằng phƣơng thức
checkAllField(File file, String value)
Nếu là LimitedField sẽ tìm kiếm trên trƣờng cụ thể bằng phƣơng thức
checkLimitedField(File file, String fieldName, String value)
Việc kiểm tra từng trƣờng cụ thể sẽ đƣợc truyền cho một lớp khác thực hiện. Cụ
thể:
Tìm kiếm trên trƣờng LOCUS, VERSION, ACCESSION đƣợc thực hiện
trong lớp CheckFieldOfVerAcc. Phƣơng thức quan trọng thực hiện nhiệm vụ
này là check(File file, String fieldRequest, String valueRequest).
Việc thực hiện tìm kiếm cho những trƣờng khác đƣợc thực hiện trong
lớp CheckOtherRequest. Các phƣơng thức trong lớp này sẽ lấ y nội dung của
trƣờng cần tìm và thực hiện phƣơng thức Contain kiểm tra xem nội dung này
có chứa nội dung mà ngƣời dùng nhập vào hay không, kết quả tra về là boolean
(true hay false).
Tiếp theo là tìm kiếm các nội dung trong CDS, việc này đƣợc đảm nhận
bởi các phƣơng thức trong lớp CheckFieldInSmallFieldOfFeature. Các
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 107
phƣơng thức trong lớp này sẽ lấy đúng nội dung của từ khoá cần tìm kiếm và
thực hiện so sánh với nội dung mà ngƣời dùng nhập vào.
Cuối cùng là tìm kiếm cho trình tự. Cách tìm kiếm đã đƣợc mô tả bên
trên, đƣợc thực hiện bằng phƣơng thức CheckOriginRequest.
Sau khi đã tìm kiếm các file thỏa yêu cầu, công việc tiếp theo là định dạng kết
quả để xuất ra. Danh sách các file thỏa sẽ đƣợc chuyển sang lớp Servlet Result.
Phƣơng thức doGet trong lớp này tự động gọi và chuyển yêu cầu xuất kết quả mặc
định summary sang lớp Servlet printSummaryHTML, tại đây sẽ gọi các phƣơng thức
lấy dữ liệu xuất đúng kết quả kèm theo các mã HTML. Kết quả đƣợc xuất ra nhƣ sau:
Hình 5.6: Thể hiện kết quả tìm kiếm với nội dung tóm tắt.
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 108
Tại lớp Servlet này sẽ lƣu trữ một biến session, lƣu lại các tham số mà ngƣời
dùng chọn lựa định dạng kết quả và danh sách các file. Khi ngƣời dùng chọn lựa và
nhấn view phƣơng thức doPost trong lớp này đƣợc gọi và thực hiện hành động gọi
tiếp phƣơng thức doPost của lớp Result, tại đây sẽ xử lý và chọn định dạng mà ngƣời
dùng muốn xuất, cuối cùng là gọi trang xuất thích hợp cụ thể nhƣ: dạng GenBank,
dạng FASTA…
Dạng GenBank: phƣơng thức doPost trong lớp Result lấy yêu cầu và gọi trang
xuất là lớp Servlet PrintGenbankHTML.
Dạng CDS FASTA: tƣơng tự, lớp printCdsNuclotideSeqHTML đƣợc gọi.
Phần này ta chỉ lấy đoạn trình tự CDS trong phần ORIGIN, ban đầu nó sẽ lấy vị
trí giới hạn trong CDS, sau đó gọi phƣơng thức writeSequence(PrintStream
out, int origin, int destination) trong lớp PrintOrigin.
Dạng Nucleotide sequences FASTA: lớp PrintNucleotideSeqFastaHTML
đƣợc gọi. Trong lớp này sẽ gọi phƣơng thức writeSequence, phƣơng thức
writeSequence thuộc lớp PrintOrigin và thực hiện in hết Origin.
Dạng CDS amino acid Seq FASTA: lớp PrintCdsAAcidSeqFastaHTML đƣợc
gọi. Lớp này sẽ lấy nội dung “/translation=” trong CDS và thực hiện in tuần tự
mỗi hàng 60 ký tự.
VI. Kết quả giao diện tìm kiếm với dữ liệu tập hợp đƣợc
Sau khi xử lý dữ liệu với Java Servlet và thiết kế giao diện cho ngƣời dùng. Ta
đƣợc kết quả nhƣ sau:
Giao diện của trang tìm kiếm
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 109
Hình 6.1: Trang chủ tìm kiếm trình tự GM Plants bằng keyword.
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 110
Trang này cho phép ta nhập keywords cần tìm, chọn trƣờng giới hạn, chọn cơ
sở dữ liệu cần tìm sau đó nhấn nút submit để tìm kiếm.
Keywords có thể đƣợc kết hợp với nhau theo toán tử AND, OR, NOT. Theo
mặc định keywords đƣợc tìm kiếm trong cơ sở dữ liệu NLBI (Nông Lâm
Bioinformatics Group). Các cơ sở dữ liệu Genbank, EMBL, DDBJ hiện tại
chƣa tích hợp đƣợc.
Ta thực hiện một ví dụ về hoạt động của trang web:
Ta tìm kiếm trình tự tổng hợp 5-enolpyruvylshikimate-3-phosphate (enzyme
kháng thuốc diệt cỏ) trong cơ sở dữ liệu vi khuẩn. Ta thực hiện nhƣ sau:
Hình 6.2: Nhập keyword cần tìm vào khung tìm kiếm
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 111
Sau khi đánh keywords, chọn các trƣờng và cơ sở dữ liệu thích hợp ta nhận nút
submit thực hiện tìm kiếm. Ta thu đƣợc kết quả sau:
Hình 6.3: Trang kết quả tìm kiếm mặc định là dạng Summary
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 112
Theo mặc định kết quả xuất ra ở dạng tóm tắt (Summary). Tại trang này ta có
thể hiện thị các kết quả khác nhau thể hiện trong khung displays, chọn kiểu
format, và kết quả xuất ra tối đa trên một trang. Sau đây là một vài hiển thị:
Biểu diễn dạng Genbank
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 113
Hình 6.4: Trang biểu diễn kết quả dạng GenBank
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 114
Biểu diễn trình tự dƣới dạng FASTA
Hình 6.5: Trang biểu diễn kết quả dạng FASTA
Biểu diễn vùng trình tự mã hóa (CDS) dạng FASTA
Hình 6.6: Trang biểu diễn vùng trình tự mã hóa (CDS) dạng FASTA
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 115
Biểu diễn trình tự aminoacid do CDS mã hóa, dạng FASTA
Hình 6.7: Trang Biểu diễn trình tự aminoacid do CDS mã hóa, dạng FASTA
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
- PHẦN D: KẾT QUẢ VÀ THẢO LUẬN 116
Bất kỳ kết quả biểu diễn nào cũng có thể chọn lựa định dạng HTML
hoặc text. Sau đây là biểu diễn genbank thể hiện dạng text
Hình 6.8: Trang biểu diễn kết quả dạng text của kiểu GenBank
NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG
nguon tai.lieu . vn