KHÓA LUẬN TỐT NGHIỆPdulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan... · 1 bỘ giÁo...

94
BGIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC NÔNG LÂM TP. HỒ CHÍ MINH BMÔN CÔNG NGHỆ SINH HC ************ KHÓA LUẬN TT NGHIP KHAI THÁC DLI U EST (Expressed Sequence Tags) NHM PHÁT HI N MICROSATELLITE PHC VCHO CÔNG TÁC PHÂN TÍ CH VÀ SO SÁNH ĐẶC ĐI M DI TRUYN CA ONG MT Ngành học: CÔNG NGHỆ SINH HC Niên khóa: 2002-2006 Sinh viên thực hin: TRN NGC VIT Thành phHChí Minh Tháng 8/2006

Transcript of KHÓA LUẬN TỐT NGHIỆPdulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan... · 1 bỘ giÁo...

1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƢỜNG ĐẠI HỌC NÔNG LÂM TP. HỒ CHÍ MINH

BỘ MÔN CÔNG NGHỆ SINH HỌC

************

KHÓA LUẬN TỐT NGHIỆP

KKHHAAII TTHHÁÁCC DDỮỮ LLIIỆỆUU EESSTT ((EExxpprreesssseedd SSeeqquueennccee TTaaggss))

NNHHẰẰMM PPHHÁÁTT HHIIỆỆNN MMIICCRROOSSAATTEELLLLIITTEE PPHHỤỤCC VVỤỤ CCHHOO

CCÔÔNNGG TTÁÁCC PPHHÂÂNN TTÍÍCCHH VVÀÀ SSOO SSÁÁNNHH ĐĐẶẶCC ĐĐIIỂỂMM

DDII TTRRUUYYỀỀNN CCỦỦAA OONNGG MMẬẬTT

Ngành học: CÔNG NGHỆ SINH HỌC

Niên khóa: 2002-2006

Sinh viên thực hiện: TRẦN NGỌC VIỆT

Thành phố Hồ Chí Minh

Tháng 8/2006

2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƢỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH

BỘ MÔN CÔNG NGHỆ SINH HỌC

************

KKHHAAII TTHHÁÁCC DDỮỮ LLIIỆỆUU EESSTT ((EExxpprreesssseedd SSeeqquueennccee TTaaggss))

NNHHẰẰMM PPHHÁÁTT HHIIỆỆNN MMIICCRROOSSAATTEELLLLIITTEE PPHHỤỤCC VVỤỤ CCHHOO

CCÔÔNNGG TTÁÁCC PPHHÂÂNN TTÍÍCCHH VVÀÀ SSOO SSÁÁNNHH ĐĐẶẶCC ĐĐIIỂỂMM

DDII TTRRUUYYỀỀNN CCỦỦAA OONNGG MMẬẬTT

Giáo viên hƣớng dẫn: Sinh viên thực hiện:

TS. BÙI MINH TRÍ TRẦN NGỌC VIỆT

Thành phố Hồ Chí Minh

Tháng 8/2006

iii

LỜI CẢM TẠ

Cảm ơn công lao nuôi dƣỡng, dạy dỗ của cha mẹ

Xin chân thành cảm tạ

Ban Giám hiệu Trƣờng Đại học Nông Lâm Thành Phố Hồ Chí Minh

Ban chủ nhiệm Bộ Môn Công nghệ Sinh Học cùng tất cả quý thầy cô đã

truyền đạt kiến thức cho tôi trong suốt quá trình học tại trƣờng.

Chân thành cảm ơn

TS. Bùi Minh Trí đã tận tình hƣớng dẫn, giúp đỡ tôi trong suốt thời gian thực

hiện đề tài tốt nghiệp.

Xin cảm ơn CN. Lƣu Phúc Lợi đã giúp đỡ, hỗ trợ tài liệu chuyên môn.

Cảm ơn các anh chị tại phòng Sinh Hóa đã tạo điều kiện tốt cho tôi khi tiến hành thực

hiện công việc tại Trung Tâm.

Xin cảm ơn bạn bè thân yêu của lớp DH02SH đã chia sẻ cùng tôi những vui buồn

trong thời gian học cũng nhƣ hết lòng hỗ trợ, giúp đỡ tôi trong thời gian thực hiện đề

tài.

Tp. Hồ Chí Minh tháng 08 năm 2006

Sinh viên thực hiện

Trần Ngọc Việt

iv

TÓM TẮT

TRẦN NGỌC VIỆT, Đại Học Nông Lâm Thành phố Hồ Chí Minh. Tháng 8/2006.

“KHAI THÁC DỮ LIỆU EST (Expressed Sequence Tags) NHẰM PHÁT HIỆN

MICROSATELLITE PHỤC VỤ CHO CÔNG TÁC PHÂN TÍCH VÀ SO SÁNH

ĐẶC ĐIỂM DI TRUYỀN CỦA ONG MẬT”

Giảng viên hƣớng dẫn:

TS. BÙI MINH TRÍ

Thời gian nghiên cứu: từ tháng 2 đến tháng 7 năm 2006

Địa điểm nghiên cứu: Trung tâm Phân tích Thí Nghiệm - trƣờng Đại học Nông

Lâm TP. Hồ Chí Minh

Ở Việt Nam, nghề nuôi ong mật đã hình thành rất lâu và hiện nay các sản phẩm

của ong mật hầu hết là đƣợc xuất khẩu. Hiệu quả kinh tế mang về từ nghề nuôi là khá

cao. Tuy nhiên, việc nuôi ong chỉ tập trung chủ yếu ở một số vùng nhất định nhƣ Tây

Nguyên (Đak Lak), miền Đông Nam Bộ, chƣa tận dụng đƣợc hết nguồn tài nguyên có

sẵn. Sự hạn chế này là do chƣa xác định đƣợc loài ong cho mật nào phù hợp với từng

vùng địa lý cụ thể tại Việt Nam. Chính vì thế chúng tôi tiến hành nghiên cứu về việc

thiết lập nên primer chạy phản ứng PCR dựa vào chỉ thị microsatellite của các loài ong

cho mật để làm cơ sở cho những bƣớc nghiên cứu định danh và xác định đặc điểm di

truyền của ong mật phục vụ cho việc mở rộng nghề nuôi ong mật ở các vùng ở Việt

Nam.

Những kết quả đã đạt đƣợc:

۰ Chúng tôi đã chọn đƣợc một nguồn dữ liệu (EST) tốt cho nghiên cứu

۰ Thiết lập đƣợc phƣơng pháp để tìm kiếm microsatellite từ nguồn EST

۰ Thiết kế đƣợc những cặp primer dựa vào vùng bảo tồn hai bên những

loại microsatellite tìm đƣợc

Kết luận: Sự thành công của việc thiết kế primer đã làm cơ sở cho những bƣớc

nghiên cứu xa hơn về đặc điểm di truyền của các loài ong cho mật. Thành công này

mở ra một triển vọng cho việc ứng dụng lĩnh vực Bioinformatic hỗ trợ cho nghiên cứu

thực nghiệm, làm giảm đáng kể chi phí và đẩy nhanh tốc độ nghiên cứu thực nghiệm

tại Trung Tâm.

v

MỤC LỤC

CHƢƠNG TRANG

Trang tựa

Lời cảm tạ ……………………………………………………………………………..iii

Tóm tắt …………………………………...………….………………………………..iv

Mục lục …………………………………………………………………………..…….v

Danh sách các chữ viết tắt............................................................................................viii

Danh sách các bảng .......................................................................................................ix

Danh sách các hình .........................................................................................................x

1. MỞ ĐẦU ....................................................................................................................1

1.1. Đặt vấn đề...........................................................................................................1

1.2. Mục đích và yêu cầu nghiên cứu........................................................................2

1.2.1. Mục đích nghiên cứu .................................................................................2

1.2.2. Yêu cầu nghiên cứu ...................................................................................2

1.3. Giới hạn .............................................................................................................2

2. TỔNG QUAN TÀI LIỆU ...........................................................................................3

2.1. Giới thiệu chung về ong mật .............................................................................3

2.1.1. Cấu tạo cơ thể của ong mật........................................................................3

2.1.1.1. Hình thái cơ thể ................................................................................3

2.1.1.2. Các cơ quan bên trong ......................................................................6

2.1.2. Tổ chức của đàn ong ..................................................................................6

2.1.3. Yêu cầu dinh dƣỡng của ong .....................................................................7

2.1.4. Các sản phẩm của ong ...............................................................................7

2.1.4.1. Mật ong .............................................................................................7

2.1.4.2. Phấn hoa .................................................................................................7

2.1.4.3. Sữa ong chúa ..........................................................................................7

2.1.4.4. Sáp ong ..................................................................................................8

2.2. Nguồn gốc EST (Expressed Sequence Tags) ....................................................8

2.2.1. EST là gì? ..................................................................................................8

2.2.2. Phƣơng pháp tạo EST ................................................................................8

vi

2.3. Microsatellite là gì? .........................................................................................10

2.3.1. Các dạng microsatellite ...........................................................................10

2.3.2. Cơ chế hình thành microsatellite .............................................................11

2.3.3. Ứng dụng của microsatellite ....................................................................12

2.3.4. Marker phân tử (molecular markers) .......................................................13

2.3.5. Vì sao chọn marker microsatellite? .........................................................14

2.4. Ngôn ngữ lập trình Perl (Practical Extraction and Reporting Language) .............15

2.4.1. Nguồn gốc của Perl ......................................................................................15

2.4.2. Cấu trúc của Perl ..........................................................................................16

2.4.2.1. Dữ liệu vô hƣớng (scala data) ..............................................................16

2.4.2.2. Cấu trúc điều khiển ...............................................................................16

2.4.2.3. Các List, Array và Hash .......................................................................19

2.4.2.4. Dòng chƣơng trình và các thƣờng trình con .........................................19

2.4.2.5. Package và Module ..............................................................................20

2.5. Giới thiệu về mồi (primer) ....................................................................................21

2.5.1. Khái quát về mồi ..........................................................................................21

2.5.2. Đặc điểm của mồi .........................................................................................21

2.5.2.1. Tính chuyên biệt ...................................................................................21

2.5.2.2. Tính ổn định .........................................................................................22

2.5.2.3. Tính tƣơng thích ...................................................................................23

2.6. Tin sinh học ...........................................................................................................24

2.6.1. Khái niệm tin sinh học ..................................................................................24

2.6.2. Các lĩnh vực nghiên cứu chính của tin sinh học ...........................................24

2.6.2.1. Genomics - Hệ gen học ........................................................................24

2.6.2.2. Sinh học tiến hóa ..................................................................................26

2.6.2.3. Phân tích chức năng gen .......................................................................26

3. PHƢƠNG TIỆN VÀ PHƢƠNG PHÁP NGHIÊN CỨU .........................................29

3.1. Thời gian và địa điểm tiến hành nghiên cứu ...................................................29

3.1.1. Thời gian nghiên cứu ...............................................................................29

3.1.2. Địa điểm nghiên cứu ...............................................................................29

3.2. Vật liệu và công cụ nghiên cứu .......................................................................29

3.2.1. Vật liệu nghiên cứu .................................................................................29

vii

3.2.2. Công cụ nghiên cứu .................................................................................29

3.3. Phƣơng pháp tiến hành nghiên cứu .................................................................30

3.3.1. Quy trình nghiên cứu tổng quát ...............................................................30

3.3.2. Phƣơng pháp nghiên cứu .........................................................................31

3.3.2.1. Sơ đồ các bƣớc tiến hành nghiên cứu .............................................31

3.3.2.2. Các bƣớc tiến hành nghiên cứu chi tiết ..........................................32

4. KẾT QUẢ VÀ THẢO LUẬN ..................................................................................42

4.1. Kết quả tìm kiếm và tải trình tự EST về máy tính cá nhân .............................42

4.1.1. Kết quả tìm kiếm EST .............................................................................42

4.1.2. Kết quả tải trình tự EST về máy tính cá nhân .........................................43

4.2. Kết quả tìm và phân loại microsatellite ...........................................................44

4.2.1. Kết quả tìm microsatellite qua xử lý của EST_TRIMMER ....................44

4.2.2 Kết quả xử lý qua MISA ..........................................................................45

4.3. Kết quả thiết kế primer ....................................................................................49

4.3.1. Kết quả thiết kế primer qua 6 Script Perl ................................................49

4.3.2. Kết quả so sánh và chọn lọc primer đƣợc thiết kế ...................................56

5. KẾT LUẬN VÀ ĐỀ NGHỊ ......................................................................................59

5.1. Kết luận ...........................................................................................................59

5.1.1. Sơ đồ phƣơng pháp thực hiện ..................................................................59

5.1.2. Kết quả đạt đƣợc .....................................................................................60

5.2. Đề nghị ............................................................................................................60

6. TÀI LIỆU THAM KHẢO ........................................................................................61

7. PHỤ LỤC .................................................................................................................64

viii

DANH SÁCH CÁC CHỮ VIẾT TẮT

AFLP Amplified Fragment Length Polymorphism

ALP Amplified Length Polymorphism

AP-PCR Arbitrary Primer –Polymerase Chain Reaction

BLAST Basic Local Alignment Search Tools

CEB Computional Evolution Biology

DAF DNA Amplification Fringerprinting

DDBJ DNA Data Bank of Japan

EMBL the European Molecular Biology Laborary

EST Expressed Sequence Tags

NCBI the National Center for Biotechnology Information

MPSS Massively Parllel Signatur Sequencing

PCR Polymerase Chain Reaction

PDA Primer Design Assitant

PERL Practical Extraction and Reporting Language

RAPD Radom Aplified Polymorphic DNA

RFLP Restriction Fragment Length Polymorphism

SNP Single Nucleotide Polymorphism

SSCP Single Strand Conformation Polymorphism

SSR Simple Sequence Repeats

STS Sequence Tagged Sites

ix

DANH SÁCH CÁC BẢNG

BẢNG TRANG

Bảng 2.1. Tên gọi một số marker DNA ..................................................................13

Bảng 4.1. Kết quả xử lý qua MISA ........................................................................47

Bảng 4.2. Thành phần của các dạng microsatellite .................................................47

Bảng 4.3. Tỷ lệ phần trăm các dạng microsatellite .................................................48

Bảng 4.4. Phần trăm các loại microsatellite chiếm tỷ lệ cao ..................................48

Bảng 4.5. Kết quả primer của dạng dinucleotide SSR ............................................54

Bảng 4.6. Kết quả primer của dạng trinucleotide SSR ...........................................55

Bảng 4.7. Kết quả primer của dạng tetranucleotide SSR .......................................56

Bảng 4.8. Kết quả primer sau cùng của dạng dinucleotide SSR ............................57

Bảng 4.9. Kết Quả primer sau cùng của dạng tri/tetra-nucleotide SSR ..................57

Bảng 4.10. Trình bày loại SSR và mã số truy cập của EST ...................................58

x

DANH SÁCH CÁC HÌNH

HÌNH TRANG

Hình 2.1. Hình thái các loài ong cho mật .......................................................................3

Hình 2.2. Thể hiện ba phần chính của ong .....................................................................4

Hình 2.3. Hình thái phần đầu của con ong .....................................................................4

Hình 2.4. Hình thái phần ngực của con ong ...................................................................5

Hình 2.5. Hình thái phần bụng của con ong ...................................................................5

Hình 2.6. Sơ đồ nguồn gốc của EST ..............................................................................9

Hình 2.7. Cách thức tạo nên EST .................................................................................10

Hình 2.8. Cơ chế bắt chéo lỗi trong giảm phân ............................................................11

Hình 2.9. Cơ chế trƣợt lỗi trong quá trình sao mã ........................................................12

Hình 3.1. Trình bày qui trình nghiên cứu tổng quát .....................................................30

Hình 3.2. Các bƣớc tiến hành nghiên cứu chính ..........................................................31

Hình 3.3. Giao diện trên trang NCBI với từ khóa honeybee ........................................32

Hình 3.4. Cú pháp thực thi của EST_TRIMMER ........................................................35

Hình 3.5. Cú pháp thực thi của MISA ..........................................................................36

Hình 3.6. Giao diện của Primer3 ..................................................................................38

Hình 3.7. Giao diện của PrimerQuest ...........................................................................40

Hình 3.8. Giao diện của PDA .......................................................................................40

Hình 3.9. Giao diện của DNAClub ..............................................................................41

Hình 4.1. Kết quả tìm thấy EST trên NCBI .................................................................42

Hình 4.2. Kết quả download với tùy chọn có sẵn của NCBI .......................................43

Hình 4.3. Kết quả thực thi 4 tác vụ của EST_TRIMMER ...........................................45

Hình 4.4. File chứa kết quả trình tự EST đƣợc chọn ....................................................45

Hình 4.5. File định dạng FASTA .................................................................................45

Hình 4.6. Thể hiện kết quả thực thi của MISA ............................................................46

Hình 4.7. Kết quả của file new_ids170404 ..................................................................49

Hình 4.8. Kết quả trình diễn của ssrout170404 ............................................................50

Hình 4.9. Kết quả trình diễn của labdbout170404 ........................................................50

Hình 4.10. Xuất kết quả các thông số thiết lập từ script ..............................................51

Hình 4.11. Trình bày primer đƣợc thiết kế ...................................................................51

xi

Hình 4.12. Trình diễn của rescreened170404 ...............................................................52

Hình 4.13. Kết quả màn hình xử lý qua 4_ssr_blast ....................................................52

Hình 4.14. Thể hiện EST và primer sau cùng ..............................................................53

Hình 4.15. Trình bày primer đạt đƣợc sau cùng ...........................................................53

Hình 5.1. Qui trình nghiên cứu thiết kế primer ............................................................59

1

Phần 1

MỞ ĐẦU

1.1. Đặt vấn đề

Trong thế giới động vật, ong mật là loài thuộc lớp côn trùng. Chúng xuất hiện

cách đây 40 triệu năm vào thời kỳ Eocene. Ong mật có ở khắp nơi trên thế giới gồm

nhiều loài khác nhau. Mỗi loài có điều kiện môi trƣờng phát triển khác nhau và hiệu

quả sản xuất cũng khác nhau. Sản phẩm đƣợc làm ra bởi ong mật nhƣ phấn hoa, mật

ong, sáp ong, sữa ong chúa, keo ong, nọc ong là các loại thực phẩm dƣợc liệu độc đáo

có giá trị kinh tế cao. Ngoài ra, ong mật còn có tác động hữu ích đến nhiều loài động

vật và đặc biệt là tác động rất cần thiết trên thực vật đó là thụ phấn hoa.

Sự đa dạng và giá trị di truyền học của ong mật cần phải có phƣơng pháp để

định danh chính xác từng loài và dƣới loài (thứ). Điều này rất cần thiết, nó có tác động

quyết định đến hiệu quả kinh tế trong nghề nuôi ong nói riêng và ý nghĩa về bảo vệ đa

dang sinh học nói chung. Công việc này sẽ phục vụ đắc lực trong việc tuyển chọn

đƣợc loài ong phù hợp nhất cho nghề nuôi ong ở từng vùng địa lý riêng (nhƣ nguồn

mật hoa, thời tiết…), đảm bảo bảo vệ “thuần khiết” đặc điểm di truyền ban đầu của

mỗi loài ong.

Hiện nay, marker microsatellite là một chọn lựa tốt trong việc phân tích sự đa

dạng di truyền, lập bản đồ di truyền, nhận biết giữa các loài và các cá thể trong một

loài. Dựa trên nguồn dữ liệu EST (Expressed Sequence Tags) chúng ta có thể tìm ra

đƣơc những vị trí microsatellite có ở trên các EST một cách nhanh chóng nhờ vào lĩnh

vực nghiên cứu gọi là tin sinh học (bioinformatics).

Việc ứng dụng bioinformatic sẽ làm cho công việc nghiên cứu trở nên dễ dàng

và chính xác hơn rất nhiều. Bioinformatic là một lĩnh vực khoa học sử dụng các công

nghệ của các ngành toán học ứng dụng, tin học, thống kê và khoa học máy tính để giải

quyết các vấn đề sinh học.

Trên cơ sở đó tôi tiến hành thực hiện đề tài:

“Khai thác dữ liệu EST (Expressed Sequence Tags) nhằm phát hiện

microsatellite phục vụ cho công tác so sánh và phân tích đặc điểm di truyền của

ong mật”

2

Đề tài đƣợc thực hiện dƣới sự hƣớng dẫn của TS. Bùi Minh Trí. Đối tƣợng

nghiên cứu là các loài ong cho mật.

1.2. Mục đích và yêu cầu nghiên cứu

1.2.1. Mục đích nghiên cứu

- Xây dựng đƣợc phƣơng pháp nhận diện marker microsatellite từ dữ liệu EST

có tìm thấy microsatellite của các loài ong cho mật.

- Thiết kế đƣợc primer từ hai vùng bảo tồn của microsatellite cho việc chạy

phản ứng PCR (Polymerase Chain Reaction) khuếch đại trình tự microsatellite đặc

trƣng nhất.

- So sánh lựa chọn, thiết kế đƣợc các công cụ tin học phù hợp nhất cho công

việc nghiên cứu.

1.2.2. Yêu cầu

- Tập hợp đƣợc toàn bộ và nhanh nhất dữ liệu EST hiện có của các loài ong mật

để cho xác suất tìm thấy microsatellite là lớn nhất.

- Phải có phƣơng pháp nhanh nhất trong việc xác định và phân loại

microsatellite có trong các EST.

- Xây dựng đƣợc một qui trình trong nghiên cứu về thiết kế mồi (primer) để

thực hiện phản ứng PCR khuyếch đại microsatellite đặc trƣng có trong EST.

- Mồi đƣợc thiết kế phải đảm bảo nghiêm ngặt về tiêu chuẩn các thông số kỹ

thuật và tính đại diện cao, đảm bảo cho việc chạy phản ứng PCR có đƣợc kết quả tốt.

1.3. Giới hạn

- Đề tài chỉ thực hiện trên loài ong mật.

- Chỉ tiến hành thiết kế mồi và khảo sát toàn bộ qui trình trên lý thuyết mà chƣa

đƣợc tiến hành kiểm tra lại bằng thực nghiệm.

- Năng lực và thời gian có giới hạn nên việc nghiên cứu sẽ có những hạn chế

nhất định.

3

Phần 2

TỔNG QUAN TÀI LIỆU

2.1. Giới thiệu chung về ong mật

Trong thế giới động vật, ong mật thuộc ngành chân đốt (Athropoda), lớp côn

trùng (Insecta), bộ cánh màng (Hymenoptera), họ ong mật (Apisdae), giống ong mật

(Apis). Ong mật xuất hiện cách đây khoảng 40 triệu năm đƣợc tìm thấy trong mẫu hóa

thạch vào thời kỳ Eocene (Mark L. Winston, 1987).

Trên thế giới có 7 loài ong cho mật, ở Việt Nam có 4 loài chính:

1. Apis mellifera: Ong Ý

2. Apis cerena: Ong ruồi

3. Apis dorsata: Ong khoái hay ong gác kèo

4. Apis florae: Ong muỗi

Trong đó hai loài Apis mellifera và Apis cerena có giá trị kinh tế cao, đang

đƣợc nuôi rộng rãi. Hai loài còn lại chỉ đƣợc khai thác tự nhiên.

2.1.1. Cấu tạo cơ thể của ong mật

2.1.1.1. Hình thái cơ thể

Hình 2.1. Hình thái các loài ong cho mật

Ong có bộ vỏ bao ngoài đƣợc cấu tạo bởi chất chitin có vai trò nhƣ

khung xƣơng ngoài nâng đỡ các cơ quan bên trong và chống lại các nhân tố bất

lợi bên ngoài. Cơ thể ong gồm ba phần khớp động với nhau: đầu, ngực và bụng.

Trong quá trình phát triển cơ thể ong phải trải qua những lần lột xác.

4

Hình 2.2. Thể hiện 3 phần chính của ong

Phần đầu

Hình 2.3. Hình thái phần đầu của con ong

Đầu con ong có cấu tạo hình hộp, trên đầu có hai mắt kép. Đỉnh đầu có

ba mắt đơn phân bố dạng tam giác. Trƣớc đầu có một đôi râu có nhiều đốt (râu

ong đực có 12 đốt, râu ong chúa và ong thợ có 11 đốt), râu của ong là cơ quan

xúc giác rất nhạy.

Miệng và vòi ong có đặc điểm khác với những loài côn trùng khác có

chức năng cắn, nghiền, hút. Ong dùng hàm trên cắn vật cứng, nghiền phấn

hoa… Vòi hút của ong đặc trƣng cho từng giống, ong dùng vòi hút để hút mật

hoa, sirô, nƣớc.

Phần ngực

Ngực gồm 3 đốt: đốt ngực trƣớc, đốt ngực giữa và đốt ngực sau. Phần

ngực mang các cơ quan vận động là cánh và chân ong. Các đốt ngực đƣợc chia

ra nửa lƣng và nửa bụng.

Ngực gồm 3 đốt: đốt ngực trƣớc, đốt ngực giữa và đốt ngực sau. Phần

ngực mang các cơ quan vận động là cánh và chân ong. Các đốt ngực đƣợc chia

ra nửa lƣng và nửa bụng.

5

Hình 2.4. Hình thái phần ngực của con ong

Nửa lƣng có 2 đôi cánh: đôi cánh trƣớc lớn hơn đôi cánh sau, khi ong

bay đôi cánh trƣớc móc lại với đôi cánh sau thông qua hệ thống móc cánh. Nửa

bụng của phần ngực có 3 đôi chân gắn vào 3 đốt ngực tƣơng ứng.

Phần bụng

Hình 2.5. Hình thái phần bụng của con ong

Bụng ong có 6 đốt và nối với phần ngực qua đốt chuyển tiếp. Mỗi đốt gồm hai

nửa: nửa lƣng và nửa bụng, các đốt bụng nối với nhau bằng màng kitin mỏng và đàn

hồi (nhờ màng này ong có thể thay đổi thể tích bụng), hai bên mỗi đốt bụng có lỗ thở.

Ở phần bụng của 4 đốt bụng cuối cùng có cơ quan tiết sáp, cuối bụng có ngòi

đốt (ong đực không có ngòi đốt, ong chúa trƣởng thành thì ngòi đốt có tác dụng nhƣ

một máng đẻ trứng và là một vũ khi đánh nhau với các con ong chúa khác).

Giữa đốt bụng thứ 5 và thứ 6 của ong có tuyến Naxonop tiết ra mùi đặc trƣng

cho đàn ong (ở ong chúa tuyến này phát triển mạnh và tiết ra mùi đặc trƣng gọi là chất

chúa để điều khiển hoạt động bìng thƣờng của đàn ong).

6

2.1.1.2. Các cơ quan bên trong

Cơ quan tiêu hóa

Ong mật thuộc vào các côn trùng ding dƣỡng chuyên tính, cơ quan tiêu

hóa còn là nơi dự trữ tạm thời mật khi thu và chuyển về tổ.

Cơ quan hô hấp

Gồm hai lỗ thở, hệ thống khí quản phân nhiều nhánh, các túi khí và hệ

thống mao quản trao đổi khí với các tế bào, mô trong cơ thể.

Cơ quan tuần hoàn

Hệ thống tuần hoàn của ong là hệ thống mở, tim gồm 5 ngăn, hai bên

sƣờn của mỗi ngăn có các cửa để máu lƣu thông.

Cơ quan thần kinh

Cơ quan thần kinh của ong mật phát triển cao, bảo đảm mối liên hệ của

đàn ong với môi trƣờng xung quanh, điều khiển mọi hoạt động thống nhất trong

cơ thể ong. Cơ quan thần kinh của ong chia làm ba phần: thần kinh trung ƣơng,

thần kinh ngoại biên, thần kinh thực vật.

Cơ quan sinh dục

Cơ quan sinh dục của ong chúa gồm hai buồn trứng hình quả lê, mỗi

buồn trứng có rất nhiều ống dẫn trứng nằm song song với nhau.

Cơ quan sinh dục của ong thợ về cấu tạo giống nhƣ cơ quan sinh dục của

ong chúa, nhƣng không đƣợc phát triển hoàn chỉnh, hai buồn trứng ong thợ có

dạng dải.

Cơ quan sinh dục của ong đực gồm hai đôi dịch hoàn: ống dẫn tinh,

tuyến phụ và bộ phận giao phối.

2.1.2. Tổ chức của đàn ong

Đàn ong là một tổ chức phức tạp gồm hàng nghìn con liên kết với nhau

thành một đơn vị thống nhất bằng quá trình trao đổi chất. Nhờ có sự thống nhất

giữa các cá thể, đàn ong có thể giữ đƣợc nhiệt độ tối ƣu trong tổ, thu đƣợc

nhiều mật và phấn hoa, bảo vệ tổ chống kẻ thù và phát triển. Mỗi đàn ong có

những đặc điểm cá thể riêng: mùi đặc thù, khả năng khai thác mật và tiết sáp,

khả năng chia đàn, sức chống bệnh truyền nhiễm…

7

Đàn ong chỉ sống và phát triển khi có đủ các thành phần. Mỗi cá thể

trong đàn (ong chúa, ong thợ, ong đực) thực hiện một chức năng nhất định theo

hƣớng bảo tồn và kéo dài cuộc sống của cả đàn.

Ong chúa: ong chúa làm nhiệm vụ đẻ trứng

Ong thợ: ong thợ làm nhiệm vụ nuôi ấu trùng, lấy mật và phấn hoa, xây

bánh tổ, điều chỉnh nhiệt độ, làm sạch tổ, bảo vệ tổ, chăm sóc ong chúa…

Ong đực: nhiệm vụ của ong đực là giao phối với ong chúa tơ

2.1.3. Yêu cầu dinh dƣỡng của ong

Khẩu phần ăn tự nhiên của ong mật trƣởng thành phải có: protein (amino

acid), carbonhydrate (đƣờng), lipid (acid béo, sterol), vitamin, chất khoáng

(muối), nƣớc. Những nguồn dinh dƣỡng này trong khẩu phần ăn phải đƣợc xác

định rõ tỉ lệ về số lƣợng và chất lƣợng để đạt đƣợc mức dinh dƣỡng cao nhất.

2.1.4. Các sản phẩm của ong mật

2.1.4.1. Mật ong

Thành phần mật ong có trên 65% dạng đƣờng khử gồm glucose và

fructose, còn saccharose ít, chỉ có khoảng 5%. Ngoài ra trong quá trình luyện

mật hoa, con ong còn tiết ra một số acid hữu cơ có tác dụng làm cho đƣờng

trong mật ong không bị lên men.

2.1.4.2. Phấn hoa

Phấn hoa là sản phẩm giàu dinh dƣỡng đƣợc ong thu từ nhị hoa của các

loài hoa khác nhau để làm thức ăn cho chúng. Phấn hoa chứa 30 – 35% protein,

trong đó 10% là acid amin tự do, các enzyme, vitamin… (phấn hoa chứa 21

acid amin cần thiết cho cơ thể, trong đó có 10 acid amin không thay thế).

Dùng phấn hoa có tác dụng tốt cho cơ thể, tăng cƣờng sức khỏe vì phấn

hoa có nhiều chất dinh dƣỡng dễ hấp thụ…

2.1.4.3. Sữa ong chúa

Sữa ong chúa (tên gọi có nguồn gốc lịch sử) là nguồn dinh dƣỡng cao

cấp, là sản phẩm đặc biệt. Nó là nguồn thức ăn duy nhất để nuôi ong chúa và ấu

8

trùng của ong chúa do ong thợ non tiết ra. Sữa ong chúa có thành phần dinh

dƣỡng nhƣ sau: protein (18%), lipid (6,46%), các vitamin, chất khô (39,95%),

tro (0,83%).

Sữa ong chúa kích thích quá trình trao đổi lipid và protein giúp cơ thể

khỏe mạnh. Sữa ong chúa giàu hormon, vitamin E có tác dụng kích thích sinh lý,

tái tạo tế bào, chống sự già cỗi của các hệ thống tế bào. Sữa ong chúa dùng để

chữa các bệnh đƣờng tiêu hóa, gan, thận, nâng cao sức đề kháng với các bệnh

truyền nhiễm.

2.1.4.4. Sáp ong

Sáp ong là dẫn xuất của acid béo no và không no có phân tử lƣợng lớn,

các acid tự do và rƣợu gồm 50 hợp chất, 75% là este, carbonhydrate 12 – 15%,

acid béo tự do 13 – 15%.

Ngoài ra còn có nọc ong và keo ong là những sản phẩm dƣợc liệu thiên

nhiên có giá trị cao do ong mật tạo ra.

2.2. Nguồn gốc EST (Expressed Sequence Tags)

2.2.1. EST là gì?

EST là một phần nhỏ của trình tự DNA (thƣờng dài từ 200 – 500 nucleotide)

đƣợc tạo ra từ một hoặc cả hai đầu của một gen biểu hiện (từ đầu 5‟ hay 3‟ của cDNA).

Gồm có 5‟EST và 3‟EST

5‟ EST đƣợc tạo ra từ một phần đầu 5‟ của cDNA, có khuynh hƣớng bảo

tồn giữa các loài và không thay đổi nhiều trong một họ gen.

3‟ EST đƣợc tạo ra từ một phần đầu 3‟ của cDNA, dạng này có thể sẽ rơi

vào vùng không mã hoá (non-coding) hay vùng không dịch mã

(Untranslated Regions, UTRs). Do đó khuynh hƣớng bảo tồn giữa các

loài thấp hơn những trình tự mã hóa.

Một Expressed Sequence Tag (EST) có thể sử dụng giúp cho việc xác đinh

những gen chƣa biết và lập bản đồ của chúng trong một bộ gen (genome).

9

2.2.2 Phƣơng pháp tạo EST

Sơ đồ nguồn gốc của EST

Hình 2.6. Sơ đồ nguồn gốc của EST

Sử dụng mRNA để tạo cDNA

cDNA là gì?

cDNA là một dạng của DNA đƣợc tạo ra trong các phòng thí nghiệm, sử

dụng một loại enzyme gọi là reverse transcriptase. Tạo cDNA đi ngƣợc với tiến

trình bình thƣờng của sự sao mã trong tế bào. Bởi vì, ngƣời sản xuất sử dụng

mRNA làm khuôn (template) chứ không phải DNA. Không giống nhƣ DNA

của bộ gen, cDNA chỉ chứa exon hay gen biểu hiện.

mRNA là một chìa khóa để tìm thấy những gen biểu hiện trong bộ gen.

Tuy nhiên, mRNA không bền vững ở bên ngoài tế bào. Do đó, các nhà khoa

học đã sử dụng một loại enzyme đặc biệt để biến đổi nó thành dạng DNA

(cDNA) bổ sung (complementary DNA). cDNA có cấu tạo bền vững hơn rất

nhiều so với mRNA. Vì đƣợc tạo ra từ mRNA, các intron đã đƣợc bị loại bỏ

nên cDNA chỉ đại diện cho những trình tự DNA biểu hiện.

Từ cDNA đến EST

Một cDNA đại diện cho một gen biểu hiện đƣợc phân lập, sau đó các

nhà khoa học có thể giải trình tự từ hai đầu của phân tử này thƣờng khoảng 100

đến vài trăm nucleotide (khoảng 500 nucleotide) để tạo ra hai loại EST. Đó có

thể là 5‟EST và 3‟EST.

10

Hình 2.7. Cách thức tạo nên EST

2.3. Microsatellite là gì?

Microsatellite là trình tự đơn lặp lại (Simple Sequence Repeats - SSR) từ 1 – 10

nucleotide. Chúng xuất hiện khắp trong các loài sinh vật bậc cao, mặc dù tần số xuất

hiện của SSR có sự biến đổi giữa các loài. SSR rất phong phú, nằm rải rác khắp nơi

trong bộ gen và cho thấy mức độ đa hình cao hơn so với các marker di truyền khác.

Những đặc điểm này, kết hợp lại làm cho SSR đƣợc xác định một cách dễ dàng, chúng

đƣợc sử dụng làm marker phân tử. Khả năng tự thừa kế của SSR trong những tính

trạng trội, đó là những thuận lợi mà chúng có đƣợc khi so sánh với các loại marker

phân tử khác. SSR gần đây đã trở thành marker di truyền quan trọng, đặc biệt là với

các loài ngũ cốc nhƣ lúa mì và lúa mạch.

2.3.1. Các dạng microsatellite

Dạng mononucleotide SSR là dạng chỉ có 1 loại base trong trình tự lặp lại. Ví dụ

nhƣ AAAAAAAAAA

Dạng dinucleotide SSR là dạng trong trình tự lặp lại có 2 loại base. Ví dụ nhƣ

GTGTGTGTGTGT

Dạng trinucleotide SSR là dạng có đến 3 loại base trong trình tự lặp lại. Ví dụ

nhƣ ATGATGATGATGATG

Dạng tetranucleotide SSR là dạng có tới 4 loại base trong trình tự lặp lại. Ví dụ

nhƣ ACGTACGTACGTACGT

11

Dạng trinucleotide xuất hiện ít hơn dạng dinucleotide tới 10 lần, dạng

tetranucleotide thì ít hơn dạng trinucleotide (Ma và ctv., 1996)

Sự lặp lại của polyA/T là rất phổ biến ở các loài. Tuy nhiên, sự phân bố giữa

các loài rất khác nhau. Dạng này thƣờng không ổn định vì vậy trong phân tích di

truyền và lập bản đồ di truyền… là không phù hợp.

Dạng CA/GT thƣờng gặp trong các loài có vú, gấp đôi dạng AT và gấp 3 dạng

AG/CT. Ở thực vật dạng thƣờng gặp là AA/TT và AT/TA. Chúng có thể đƣợc phần

thành ba dạng, sau đây là 3 ví dụ cụ thể:

Dạng liên tục: ATATATATATATAT

Dạng kết hợp: GCGCGCGC TATATA

Dạng ngắt quảng: CACACACA TGCT CACACACA

Loại đa hình cao nhất là dạng không bị ngắt quãng. Tuy nhiên, trong thực tế

dạng kêt hợp và ngắt quãng đƣợc tìm thấy nhiều hơn.

2.3.2. Cơ chế hình thành microsatellite

Cơ chế đột biến hình thành microsatellite vẫn chƣa đƣợc hiểu biết một cách đầy

đủ. Tuy nhiên, di truyền học và các nghiên cứu khác cho rằng cơ chế xuất hiện và hình

thành microsatellite là do 2 quá trình sau:

Quá trình bắt chéo lỗi trong quá trình giảm phân ( unequal crossing- over

during meiosis)

.

Hình 2.8. Cơ chế bắt chéo lỗi trong giảm phân

12

Quá trình trƣợt lỗi trong sao mã (replication slippage)

Đây đƣợc coi là nguyên nhân chủ yếu và nó xảy ra trên mạch chậm (lagging

strand). Quá trình này liên quan đến quá trình trƣợt lỗi của enzyme polymerase trên

phân tử DNA mới tổng hợp. Sự trƣợt lỗi này tạo ra một chỗ phình nhất thời có thể bị

loại bỏ trong quá trình sửa lỗi hoặc là có thể kéo dài thêm ở mạch đối diện tạo thành

một đoạn lặp lại dài hơn.

Hình 2.9 . Cơ chế trƣợt lỗi trong quá trình sao mã

2.3.3. Ứng dụng của microsatellite

SSR đƣợc sử dụng để lập bản đồ di truyền. Chúng dễ dàng sử dụng và chứa

đựng thông tin cao có thể thay thế tốt cho RFLP trong kỹ thuật lập bản đồ di truyền ở

ngƣời (Dib và ctv., 1996). Sự phát triển SSR trong thực vật là rất nhanh, và vị trí SSR

hiện giờ đƣợc hợp nhất để thành lập bản đồ di truyền của tất cả các loài ngũ cốc (Liu

và ctv., 1996; Korzun và ctv., 1997; Smith và ctv., 1997; Stephenson và ctv., 1998).

SSR có thể đƣợc sử dụng trong công tác phân tích và so sánh đặc điểm di

truyền của các loài. Sự đa hình của SSR đƣợc xác định bằng phƣơng pháp PCR với

13

mồi đƣợc thiết kế ở vùng bảo tồn hai bên SSR (flanking regions) trên cơ sở sự khác

nhau về kích thƣớc của các băng khi điện di của trình tự lặp lại.

2.3.4. Marker phân tử (molecular marker)

Chỉ thị phân tử là những đặc điểm thể hiện ở khía cạnh hoá học hay cấu trúc

phân tử di truyền lại cho đời sau, giống nhƣ các nhân tố di truyền Meldel, nhƣng lại có

thể định lƣợng đƣợc. Về nguyên tắc, bất cứ đoạn DNA nào phân biệt đƣợc hai cá thể,

hai dòng hoặc các giống khác nhau thì có thể xem nhƣ là một marker DNA. Marker

DNA có nhiều ƣu điểm hơn so với marker hình thái và isozyme vì sản phẩm thể hiện

tính đa hình cao, tính đồng trội, tính ổn định không phụ thuộc vào yếu tố môi trƣờng.

Các chỉ thị di truyền phân tử đƣợc sử dụng để xác định mối quan hệ giữa các cá thể

trong cùng một loài hoặc giữa các loài, là cơ sở cho việc phân loại dƣới loài (thứ), phát

hiện loài mới và mối quan hệ tiến hóa giữa loài (Ahn và ctv, 1993; Dunforal và ctv,

1995). Chúng có thể đƣợc dùng để chọn các tổ hợp lai (Nair và ctv, 1995; Zhang và

ctv, 1995).

Các chỉ thị DNA có thể chia thành 2 nhóm sau (Bùi Chí Bửu và Nguyễn Thị

Lang, 2004):

- Chỉ thị dựa trên cơ sở chuỗi phản ứng polymerase (PCR - Polymerase Chain

Reaction) (PCR-based): có các RAPD, AFLP, SSR, SSCP, STS

- Chỉ thị trên cơ sở đánh dấu thăm dò và lai DNA (DNA / DNA hydridization-based):

RFLP, minisatellite.

Bảng 2.1. Tên gọi một số marker DNA

Chỉ thị (marker) Tên đầy đủ

RAPD Random amplified polymorphic DNA

AP-PCR Arbitrary primer-PCR

DAF DNA amplification fingerprinting

AFLP Amplified fragment length polymorphism

ALP Amplicon length polymorphism

SSR Simple sequence repeat (microsatellite)

SSCP Single strand conformation polymorphism

RFLP Restriction fragment length polymorphism

14

STS Sequence-tagged sites

Chọn giống nhờ chỉ thị phân tử là một chiến lƣợc đƣợc thế giới ủng hộ từ năm

1995, là phƣơng pháp tác động mạnh đến hiệu quả chọn giống với các marker có kết

quả kỹ thuật cao trên cơ sở PCR để đánh giá kiểu gen của tính trạng mục tiêu. Sau khi

đánh giá kiểu gen chúng ta so sánh với đánh giá kiểu hình để tìm ra mức độ chính xác

của phƣơng pháp (Bùi Chí Bửu, 2002).

2.3.5. Vì sao chọn marker SSR?

Hiện nay marker SSR là một công cụ mạnh (powerful tool) đƣợc ứng dụng rộng

rải trong việc lập bản đồ bộ gen của các loài; phân tích đặc điểm di truyền của các loài,

dƣới loài và các cá thể trong một loài phục vụ có hiệu quả cho công tác chọn giống

trong chăn nuôi và trồng trọt; tìm hiểu về nguồn gốc và phân lập các gen gây bệnh (các

gen có liên quan đến bệnh Alzheimer, ung thƣ ruột kết và nhiều bệnh khác) từ đó

nghiên cứu ra phƣơng pháp điều trị.

Marker SSR có các ƣu điểm nổi bật sau

Di truyền đa allen và đồng trội

Có tính chỉ thị cao (non- abundant)

Có ở tận hai đầu của bộ gen (tính chỉ thị rộng)

Marker RAPD thì dễ dàng phát triển nhƣng giới hạn trong nhiều mục đích ứng

dụng (Haymer 1994). Microsatillite (Simple Sequence Repeats, SSRs) có độ đa hình

cao, marker đồng trội, hiệu quả này đã đƣợc chứng minh qua nhiều mục đích ứng dụng

bao gồm kỹ thuật finger-printing (Smith và Devey, 1994), nghiên cứu di truyền quần

thể (Haymer 1994; Tsumura và ctv, 1996; Thomas và ctv, 1999), kiểm tra sƣ phân bố

di truyền cho đời sau (Dow và ctv, 1995), kiểm tra sự thuần hóa (Morchen và ctv,

1996).

SSR dễ dàng sử dụng hơn sự đa hình chiều dài đoạn cắt giới hạn (Restriction

Fragment Length Polymorphisms, RFLPs) chỉ giải quyết đƣợc số lƣợng nhỏ DNA, sự

đa hình cao và khả năng phân tích nhanh. Marker SSR có thể dễ dàng thay đổi giữa

15

các nhà khoa học bởi vì mỗi locus đƣợc xác định bởi trình tự mồi riêng. SSR phân tích

nhanh hơn sự khuyếch đại đa hình ngẫu nhiên DNA (Random Amplified Polymorphic

DNA, RAPD) và sự chuyển đổi tốt hơn AFLP. SSR hiện giờ thay thế cho RFLP trong

lập bản đồ di truyền các cây trồng nông nghiệp. Sự kết hợp của SSR với AFLP tạo nên

bản đồ di truyền chi tiết. Sự đồng trội tự nhiên của SSR cũng là điểm mạnh trong lập

bản đồ di truyền.

2.4. Ngôn ngữ lập trình Perl (Practical Extraction and Reporting

Language)

2.4.1. Nguồn gốc của Perl

Trƣớc khi Java hay JavaScript chiếm lĩnh Internet, và thậm chí trƣớc khi Web

xuất hiện, Perl đã có một vai trò rất quan trọng. Từ viêc tự động hóa các tác vụ quản lý

UNIX cho đến việc thực hiện thƣờng trình phân tích file, Perl đƣợc sử dụng nhƣ một

ngôn ngữ tiện ích thực sự.

Vào ngày 18 tháng 10 năm 1987, Larry Wall, tác giả của ngôn ngữ này, lần đầu

tiên đƣa Perl vào sử dụng tại nhóm usenet comp.sourse. Ngôn ngữ mới này phát sinh

từ ngôn ngữ lập trình C và bị ảnh hƣởng bởi các ngôn ngữ khác nhƣ BASIC, awk, sed,

và UNIX shell. Perl là sự kết hợp các ƣu điểm của những ngôn ngữ trên.

Những ngƣời có ít hay không có kinh nghiệm lập trình đều có thể học và sử

dụng Perl để lập trình một cách dễ dàng. Ngoài việc dễ dàng học, Perl còn là một ngôn

ngữ hữu dụng. Ngay từ đầu, Perl đã có một khả năng rất lớn trong việc thao tác text,

file, và các tiến trình hệ thống.

Từ lúc khai sinh đến nay, Perl đã có nhiều phiên bản, sau Perl 1.0 là Perl

2.0, …Perl 5.6. Perl 5.6 xuất hiện vào tháng 3 năm 2000. Bênh cạnh một cú pháp mới

đƣợc dùng để diễn dịch và khai báo các thuộc tính thƣờng trình phụ, Perl 5.6 còn bổ

sung khá nhiều đặc tính nhỏ mà những ngƣời lập trình yêu cầu vốn không có trong các

phiên bản trƣớc. Các đặc tính này bao gồm:

Hỗ trợ Unicode và UTF-8

Hỗ trợ 64 bit

Hỗ trợ các file lớn hơn 2GB

16

Có nhiều khả năng chẩn đoán hơn

Các loại cảnh báo theo phạm vi từ vựng

Hàm open có thêm một số đối số

Hàm pack đƣợc cải tiến thêm

2.4.2. Cấu trúc của Perl

2.4.2.1. Dữ liệu vô hƣớng (scalar data)

Dữ liệu vô hƣớng (scalar data) ám chỉ một kiểu dữ liệu duy nhất gồm số

và chuỗi. Đây là kiểu dữ liệu cơ bản nhất mà Perl đã quen xử lý. Biến vô hƣớng

phải đƣợc đặt tên với ký tự “$”.

Các số

Theo quan điểm của ngƣời sử dụng, thƣờng có hai dạng khác nhau. Kiểu

số thứ nhất là một interger, tức là một số nguyên. Các số nguyên này đƣợc trình

bày với các cơ số 10. Kiểu thứ hai là số thập phân. Ngoài ra còn có hai kiểu số

đặc biệt khác là các số bách phân và thập lục phân. Các số bách phân đƣợc trình

bày với cơ số 8 và các số thập lục phân với các chữ số cơ số 16.

Các chuỗi

Một chuỗi là một loạt các ký tự liên tiếp. Một chuỗi có thể đƣợc tạo

thành bởi bất kỳ tổ hợp ký tự nào từ bộ 256 ký tự.

Chuỗi có hai dạng khác nhau, gồm chuỗi có dấu trích dẫn đơn và chuỗi

có dấu trích dẫn kép.

Khi viết một chƣơng trình cần phải lƣu một số các dữ liệu vô hƣớng cho

nhiều muc đích lập trình khác nhau. Và nó sẽ đƣợc lƣu vào các biến vô hƣớng

(scalar variable). Một biến vô hƣớng có thể đƣợc xem nhƣ là một thùng chứa.

Ngƣời lập trình có thể đặt một giá trị vô hƣớng vào thùng này và lấy nó ra bất

kỳ lúc nào khi cần nó. Ngƣời lập trình có thể thay đổi những gì họ có trong

thùng chứa vào bất kỳ lúc nào trong khi một chƣơng trình đang thực thi.

2.4.2.2. Cấu trúc điều khiển

17

Cấu trúc điều khiển là tập hợp các câu lệnh điều kiện. Các câu lệnh điều

kiện đƣợc sử dụng trong ngôn ngữ lập trình khi một quyết định cần đƣợc thực

hiện trƣớc khi một phần mã đƣợc thƣc thi.

Các khối câu lệnh

Một khối lệnh là một chuỗi các câu lệnh thƣc thi đƣợc đƣợc nhóm lại với

nhau bằng các dấu ngoặc „{„ và „}‟. Một khối lệnh trong một chƣơng trình

trông giống nhƣ thế này:

{

$a = 12;

$a + = 5;

print “a equals $a\n”}

Câu lệnh điều kiện if-then-else

Câu lệnh điều kiện if-then-else nhận một biểu thức và đánh giá nó với

một giá trị là đúng/sai. Nếu việc xác định của một biểu thức là giá trị đúng, khối

lệnh cho phần câu lệnh then đƣợc thực thi. Nếu phần xác định của biểu thức là

sai, khối lệnh else sẽ đƣợc thực thi. Cú pháp của câu lệnh điều kiện if-then-else

nhƣ sau:

if ( biểu thức) ví dụ:

{ #!/usr/bin/perl

khối lệnh „then‟ $a = 20;

} if($a =15){print “a is equal to 15.\n”;}

else else{print “a is not equal to 15.\n”;}

{

khối lệnh „else‟

}

Việc bỏ đi phần else của câu lệnh này là hoàn toàn hợp lệ nếu chúng ta

không cần nó. Dƣới đây là cú pháp câu lệnh if-then mà không có else.

If (biểu thức)

{

khối lệnh „then‟

}

Việc có một khối lệnh else mà không có khối lệnh if trƣớc đó là không

hợp lệ trong Perl.

Câu lệnh điều kiện while

18

Câu lệnh điều kiện while là một câu điều kiện hữu ích bởi vì nó cho phép

ngƣời lập trình lặp lại một khối lệnh bao nhiêu lần tùy ý. Lệnh while hoạt động

giống nhƣ câu lệnh điều kiện if-then-else ở chỗ xác định một biểu thức cho

việc đánh giá đúng/sai. Một khác biệt lớn là nó tiếp tục thực thi khối lệnh khi

biểu thức là đúng. Dƣới đây là cú pháp cho câu lệnh điều kiện while.

While (biểu thức) ví dụ: #!/usr/bin/perl

{ $a = 15;

khối lệnh „while‟ while ($a<25) {

} print“$a is still less than 25\n”;}

Câu lệnh điều kiện until

Câu lệnh điều kiện until ngƣợc với câu lệnh while. Khối lệnh until chỉ

thực thi khi biểu thức xác định là sai. Dƣới đây là cú pháp cho câu lệnh điều

kiện until.

until (biểu thức) ví dụ: #!/usr/bin/perl

{ $a = 15;

khối lệnh „until‟ } until ($a >25) { print “the

value of is $a \n”; $a; }

Câu lệnh điều kiện do while-until

Trong một số trƣớng hợp, ngƣời lập trình có thể cần khối lệnh phải đƣợc

thực thi ít nhất một lần. Perl cho phép ngƣời lập trình thực hiện điều này bằng

cách sử dụng câu lệnh điều kiện do while-until. Câu lệnh có cú pháp nhƣ sau:

do

{

khối lệnh „do‟

} until (biểu thức)

Câu lệnh điều kiện do while–until cho phép bạn thƣc thi khối lệnh ít nhất

một lần, bất kể biểu thức xác định nhƣ thế nào (đúng hay sai).

Ví dụ

#!/usr/bin/perl

$a = 12;

do {

print “ the statement block has been excuted \n”;

while ($a < 10)

Câu lệnh điều kiện for

19

Câu lệnh for đƣợc sử dụng rộng rãi bởi các nhà lập trình trong tất cả các

ngôn ngữ. Lý do của điều này là câu lệnh for cung cấp cho ngƣời lập trình một

phƣơng pháp nhanh chóng xác định số lần mà một khối lệnh đƣợc thực thi. Cú

pháp câu lệnh điều kiện for nhƣ sau.

For (câu lệnh 1;biểu thức điều kiện; câu lệnh 2)

{

khối lệnh „for‟

}

Ví dụ

#!/usr/bin/perl

for ($a=1;$a<10;$a++){# the for conditional statement

print “the statement block has been executed $a times \n”;}

2.4.2.3. Các List, Array và Hash

Danh sách (list)

Danh sách là một nhóm dữ liệu vô hƣớng sắp xếp theo thứ tự, nó là một

chuỗi các giá trị vô hƣớng đƣợc đặt trong các dấu ngoặc đơn, nó có dạng: (1, 2,

3, 6, 7, 12); (1, 2, “hello”, 3, 6 , “again”); (4, 5, “$name”, 7, 10).

Các Array

Một biến mảng (array variable) giống nhƣ một biến vô hƣớng trong đó

nó đƣợc tạo ra để lƣu trữ dữ liệu. Sự khác biệt là biến mảng đƣợc thiết kế để lƣu

trữ một danh sách trong khi một biến vô hƣớng đƣợc thiết kế để lƣu trữ một dữ

liệu vô hƣớng số ít. Biến mảng đƣợc biểu thị bằng ký tự @ đầu tiên

(@number).

Các hash (băm)

Một hash là một biến khác mà ngƣời lập trình có thể sử dụng để lƣu trữ

dữ liệu vô hƣớng. Đối với các array, phần tử đâu tiên có một index là 0, phần tử

thứ hai có một index là 1,… Mỗi trong các phần tử đƣợc chứa trong một hash

có những gì đƣợc gọi là các khóa (key), các khóa đƣợc sử dụng làm index.

Những khoá này có thể đƣợc ấn định bởi ngƣời dùng và chúng có thể là bất kỳ

nếu muốn. Cú pháp của hash nhƣ sau.

%hash = (key, element, key, element)

20

2.4.2.4. Dòng chƣơng trình và các thƣờng trình con

Dòng chƣơng trình và các thƣờng trình con là một cách để giúp cho

ngƣời lập trình phân chia mã của mình thành các đoạn. Bằng cách thực hiện

điều này, ngƣời lập trình thƣờng có thể tổ chức chƣơng trình của mình tốt hơn

theo chức năng.

Ngoài ra, điều này còn cho phép ngƣời lập trình tạo các phần hay chức

năng để sử dụng lại thay vì phải viết lại.

Dòng chƣơng trình

Khi bàn về dòng chƣơng trình lôgic, chúng ta ám chỉ đến dòng mà

chƣơng trình đi qua khi nó giải quyết một tác vụ. Ví dụ, khi bạn thức dậy vào

buổi sáng, bạn có thể tắm rửa, mặc đồ, ăn sáng, và sau đó đi làm. Một chƣơng

trình đƣợc thiết kế logic sẽ tuân theo tiến trình tƣơng tự đó, bất kể bất kỳ điểm

chung giữa các bƣớc nhƣ mở cửa hay đi bộ. Do đó, bằng cách tuân theo kiểu

phƣơng pháp này, ngƣời lập trình sẽ khai báo các biến này thay vì tại phần trên

cùng – và các thƣờng trình con thay vì tại phân dƣới cùng – khi cần thiết.

Một dòng chức năng là nơi mà ngƣời lập trình nhóm các chƣơng trình lại

với nhau. Ví dụ, tại cuối chƣơng trình, ngƣời lập trình kéo tất cả thƣờng trình

con, đƣợc sắp xếp bằng chức năng tƣơng tự. Các thủ tục đi bộ, mở cửa, và lái

xe có thể nằm kề nhau, trong khi đó nói chuyện và các dạng giao tiếp khác có

thể theo sau.

Thƣờng trình con

Một thƣờng trình con là phƣơng pháp để tạo các hàm của Perl. Những

hàm này cho phép ngƣời lập trình thực hiện mọi thứ từ việc truyền các đối số và

chỉnh sửa các giá trị đến việc cho ra giá trị.

Sự khai báo các thƣờng trình con trong ngôn ngữ Perl đƣợc thực hiện

bằng cách sử dụng từ khóa ngôn ngữ sách. Theo sau từ khóa này là một mã

nhận dạng tên dùng để gọi thƣờng trình con khi cần đến. Sau đây là cú pháp cơ

bản, trong đó NAME tham chiếu tên mà ngƣời lập trình muốn gọi thƣờng trình

con và code là mã mà ngƣời lập trình muốn thực thi khi thƣờng trình con đƣợc

gọi.

Sub NAME {

Code }

21

2.4.2.5 Package và Module

Package

Một package là một tập hợp các hàm Perl đƣợc nhóm thành một file đơn.

File này, cũng đƣợc gọi là một thƣ viện (library) và có phần mở rộng .pl (đôi

khi là .pm), đƣợc chỉ ra bởi tên file của nó trong mã. Một package khai báo một

namespace khác của các biến và/hoặc các thƣờng trình con bên trong nó. Mục

đích là để các biến tránh ghi đè lên nhau.

Module

Module không có gì hơn là một package. Điểm khác biệt duy nhất là một

Module đƣợc thiết kế để sử dụng lại. Điều này đƣợc thực hiện bằng cách cho

phép xuất một số hay tất cả các biến và thƣờng trình con của một Module sang

các package khác.

Trên đây, tôi chỉ trình bày sơ lƣợt một vài thành phần trong cấu trúc hoạt

động của ngôn ngƣ lập trình Perl. Còn rất nhiều các yếu tố cấu tạo - nguyên tắc

chi tiết ứng dụng của từng thành phần trong Perl mà do mục đích và yêu cầu

của đề tài nên tôi không thể trình bày hết đƣợc.

2.5. Giới thiệu về mồi (primer)

2.5.1. Khái quát về mồi

Mồi (primer) là một thành phần quan trọng không thể thiếu trong phản ứng

PCR (Polymerase Chain Reaction). Mồi là những đoạn nucleotide ngắn, bắt cặp bổ

sung với đầu 5‟ hay 3‟ của mạch DNA khuôn mẫu. Mồi đƣợc thiết kế dựa vào vùng

trình tự đã đƣợc biết, nằm ở hai đầu của đoạn gen cần khuếch đại.

Trong phản ứng PCR bao giờ cũng cần có cặp mồi (mồi xuôi và mồi ngƣợc).

Có rất nhiều tiêu chuẩn nghiêm ngặt đặt ra khi thiết kế một cặp mồi nhƣ chiều dài mồi,

tính chuyên biệt của cặp mồi, nhiệt độ nóng chảy Tm của mồi, nhiệt độ bắt cặp, sự tạo

thành cấu trúc bậc hai của mồi… để đảm bảo phản ứng PCR thành công và thu đƣợc

sản phẩm nhân bản (một số lƣợng lớn bản sao của đoạn DNA khuôn ban đầu).

2.5.2. Đặc điểm của mồi (primer)

22

2.5.2.1 Tính chuyên biệt

Duy nhất: chỉ có duy nhất một vị trí bắt cặp của primer trên khuôn DNA,

nghĩa là trình tự primer chỉ xuất hiện một lần trên trình tự khuôn. Ngoài ra, cũng phải

cần đảm bảo primer không thể bắt cặp bổ sung vào trình tự DNA của các nguồn có khả

năng nhiễm nhƣ DNA ngƣời, chuột, tác nhân gây cùng triệu chứng.

DNA khuôn

5‟ …TCAACTTAGCATGATCGGGTA…GTAGCAGTTGACTGTAAATTCAACTTAGCAA…3‟

3‟-GTTGAATCGT-5‟ 3‟ -CATCGTCAACTGAC-5‟ 3‟-GTTGAATCGT-5‟

Primer 1 3‟-GTTGAATCGT-5‟ Không duy nhất

Primer 2 3‟ -CATCGTCAACTGAC-5‟ Duy nhất

Chiều dài: chiều dài của primer ảnh hƣởng đến tính duy nhất, nhiệt độ nóng

chảy và nhiệt độ bắt cặp của primer. Nói một cách khác, primer càng dài thì nó càng

thể hiện đƣợc tính duy nhất và nhiệt độ nóng chảy, nhiệt độ bắt cặp càng cao. Để đảm

bảo tính duy nhất thì chiều dài của primer tối thiểu là 15 base, thƣờng thì primer có

chiều dài từ 17 – 28 base.

Thành phần base: ảnh hƣởng đến độ đặc hiệu của quá trình lai, nhiệt độ nóng

chảy, nhiệt độ lai và sự ổn định của cấu trúc phân tử. Các base đƣợc sắp xếp ngẫu

nhiên thì thích hợp hơn là những vùng (A+T) dài hay là những vùng giàu (G+C).

Thành phần (G+C) trung bình khoảng từ 50 – 60% sẽ cho ta nhiệt độ nóng chảy, nhiệt

độ lai thích hợp trong một phản ứng PCR bình thƣờng.

Template DNA

5‟…TCAACTTAGCATGATCGGGCA…AAGATGCACGGGCCTGTACACAA…3‟

TACTAGCCCGT

2.5.2.2. Tính ổn định

Nhiệt độ nóng chảy (Tm) là nhiệt độ mà tại đó một nửa sợi DNA là sợi đơn và

một nửa còn lại là DNA sợi đôi. Tm là đặc tính của thành phần base. Thành phần (C

+G) trong DNA cao sẽ dẫn tới nhiệt độ Tm cao vì liên kết H trong DNA mạnh hơn. Có

nhiều công thức tính Tm, một trong những công thức đƣợc nhiều ngƣời sử dụng nhất

có dạng nhƣ sau:

Tm = 59.9 +0.41*(%GC) – 600/chiều dài

23

Nhiệt độ bắt cặp (Tanneal) là nhiệt độ mà tại đó primer bắt cặp vào DNA khuôn.

Tanneal đƣợc tính theo công thức: Tanneal = Tm-primer – 40C

Để đảm bảo primer bắt cặp vào DNA mạch khuôn trƣớc khi hai sợi đơn của

mạch khuôn bắt cặp với nhau thì: Tm-product - Tanneal 300C

Tính nghiêm ngặt trong quá trình bắt cặp của mồi: quyết định tính đặc hiệu

của sản phẩm DNA đƣợc nhân bản. Tanneal là nhân tố ảnh hƣởng quan trọng nhất của

tính chuyên biệt này. Nếu Tanneal quá thấp thì mồi sẽ bắt cặp không đặt hiệu tính

nghiêm ngặt thấp. Ngƣợc lại, nếu Tanneal quá cao thì mồi không có khả năng bắt cặp

tính nghiêm ngặt cao.

Cấu trúc thứ cấp: nếu sự bắt cặp giữa mồi xuôi và mồi ngƣợc hình thành

dimer, hetero-dimer; mồi xuôi với mồi xuôi self-dimer, homo-dimer, giữa mồi ngƣợc

với mồi ngƣợc self –dimer, homo-dimer; hay primer tự tạo cấu trúc kẹp tóc (hairpin)

xảy ra nhiều hơn so với sự bắt cặp của primer với DNA mẫu thì hiệu quả nhân bản của

phản ứng PCR sẽ giảm một cách rõ rệt.

Tuy nhiên, trong một số trƣờng hợp những cấu trúc này không ảnh hƣởng đến

kết quả của phản ứng PCR vì nhiệt độ bắt cặp không cho phép sự hình thành các cấu

trúc đó. Ví dụ: một số dimer hay hairpin chỉ hình thành ở nhiệt độ 300C. Trong khi đó

nhiệt độ của phản ứng PCR thấp nhất cũng là 560C.

Hairpin Self-Dimer Dimer

3‟ GGGAAA 8bp

3‟ GGGAAAATTCCAGGATCTAT 5‟

mồi xuôi

5‟TATCTAGGACCTTA 5‟ TATCTAGGACCTTAAAAGGG 5‟ TATCTAGGACCTTAAAAGGG 3‟

4bp

3‟ GGGAAAATTCCAGGATCTAT 5‟ 3‟CATGGAAACGTAGGAGAC5‟

mồi ngƣợc

5‟ TATCTAGGACCTTAAAAGGG 3‟

3‟ GGGAA

A

5‟ TATCTAGGACCTTA

2.5.2.3. Tính tƣơng thích

24

Sự hòa hợp của cặp mồi: mồi làm việc theo cặp, mồi xuôi và mồi ngƣợc.

Chúng đƣợc sử dụng trong cùng điều kiện của phản ứng PCR, vì vậy phải đảm bảo

điều kiện phản ứng PCR thỏa mãn cho cả mồi xuôi và mồi ngƣợc. Một đặc điểm cần

chú ý là nhiệt độ bắt cặp. Nhiệt độ này thể hiện sự tƣơng thích giữa mồi xuôi và mồi

ngƣợc. Sự chênh lệch giữa mồi xuôi và mồi ngƣợc cho phép là 30C. Nhiệt độ lai giữa

môi xuôi và mồi ngƣợc càng gần thì phản ứng PCR diễn ra càng tốt.

2.6. Tin sinh học

2.6.1. Khái niệm tin sinh học

Tin sinh học (bioinformatics) là một lĩnh vực khoa học sử dụng các công nghệ

của các ngành toán học ứng dụng, tin học, thống kê và khoa học máy tính để giải quyết

các vấn đề sinh học.

Các nghiên cứu trong ngành sinh học tính toán (computational biology) thƣờng

trùng lắp với sinh học hệ thống (systems biology). Những lĩnh vực nghiên cứu chính

của nó bao gồm bắt cặp trình tự (sequence alignment), bắt cặp cấu trúc protein (protein

structural alignment), dự đoán cấu trúc protein (protein structural prediction), dự đoán

biểu hiện gen (gene expressions), tƣơng tác protein–protein (protein-protein

interaction) và mô hình hóa các quá trình tiến hóa. Thuật ngữ tin sinh học và khoa học

tính toán thƣờng dùng hoán đổi cho nhau, mặt dù cái trƣớc, nói một cách nghiêm túc là

tập con của cái sau.

Những mối quan tâm chính trong các dự án tin sinh học và khoa học tính toán

là việc sử dụng các công cụ toán học để trích rút các thông tin hữu ích từ các dữ liệu

hỗn độn đƣợc thu nhận từ các kỹ thuật sinh học với lƣu lƣợng mức độ lớn. Lĩnh vực

khai thác dữ liệu (data mining) trùng lắp với sinh học tính toán về phƣơn diện này.

Những bài toán đặc trƣng trong sinh học tính toán bao gồm việc lắp ráp (assembly)

những trình tự DNA chất lƣợng cao từ các đoạn ngắn DNA đƣợc thu nhận từ kỹ thuật

xác định trình tự DNA và việc dự đoán qui luật biểu hiện điều hoà gen (gene

regulation) với dữ liệu từ các mRNA, microarray hay khối phổ (mass spectrometry).

2.6.2. Các lĩnh vực nghiên cứu chính của tin sinh học

2.6.2.1. Genomics - Hệ gen học

25

Phân tích trình tự

Kể từ khi Phage - X174 đƣợc xác định trình tự (1977). Cho đến nay,

trình tự DNA của rất nhiều loài đƣợc dự trữ trong các ngân hàng cơ sở dữ liệu.

Việc thực hiện phân tích nguồn dữ liệu này về các vấn đề tìm kiếm gen cấu trúc

(mã hóa cho một protein nào đó), quy luật những trình tự tƣơng đồng, so sánh

gen trong cùng một loài hay giữa các loài, mối quan hệ phát sinh chủng loài là

không thể thực hiện đƣợc bằng tay. Do đó, các chƣơng trình máy tính đã đƣợc

phát triển và ứng dụng vào các công việc này với nguồn dữ liệu lên đến hàng tỷ

và nhiều công đoạn nghiên cứu phức tạp khác. Mà dự án genome ngƣời

(Human Genome Project) là một minh chứng. Trong dự án này các nhà tin sinh

học đã phải mất cả hàng tháng trên một loạt siêu máy tính (các máy DEC Alpha

ra đới năm 2000) để sắp xếp đúng toàn bộ số lƣợng trình tự DNA nhỏ (shotgun

DNA sequence) đƣợc giải mã tạo nên một sợi DNA với kích thƣớc lớn mà với

kỹ thuật hiện nay không thể giải mã đƣợc sợi DNA cở vài chục ngàn nucleotide.

Giải mã genome hiện nay và giải thuật lắp ráp genome (genome

assembly algorithms) là một trong những lĩnh vực nóng của tin sinh học.

Chỉ định gen

Annotation là quá trình đánh dấu các gen và các đặc tính sinh học

(biological features) khác trong một chuỗi DNA. Hệ thống phần mềm làm

nhiệm vụ “ genome annotation” đã đƣợc phát triển. Công việc này giúp cho lĩnh

vực chuyên về nghiên cứu bản đồ gen (genomics).

Dò tìm đột biến và SNP

Rất nhiều nghiên cứu xác định trình tự (sequencing) hiện nay là nhằm

tìm ra các đột biến điểm (point mutation) xảy ra các gen khác nhau trong ung

thƣ. Tập sơ khởi (sheer volume) các dữ liệu đƣợc tạo ra đòi hỏi các hệ thống tự

động đọc những dữ liệu kiểu chuỗi này (sequence data), rồi so sánh trình tự kết

quả với các trình tự đã biết trên genome ngƣời, bao gồm những điểm đa hình

trên các tế bào dòng tinh (germline) đã biết.

Những hệ thống oligonucleotide microarray, bao gồm những hệ thống

dùng để xác định điểm đa hình đơn nucleotide (Sinlge Nucleotide Polymophism)

hoặc khảo sát tính dị biệt so sánh genome (comparative genomic hybridization)

26

với khả năng cho phép khảo sát một lúc hàng trăm ngàn vị trí trên cùng một bản

đồ gen đang đƣợc sử dụng để xác định những đột biến thêm và mất đoạn nhiễm

sắc thể trong quá trình hình thành ung thƣ.

2.6.2.2. Sinh học tiến hóa

Phân loại học phân tử

Tiến hóa học máy tính (Computional Evolutation Biology, CEB) đã ra

đời trƣớc kỹ nguyên hệ gen học (genomics) nghiên cứu xây dựng các mô hình

tính toán quần thể và sự biến thiên của chúng theo thời gian.

Bảo tồn đa dạng sinh học

Tin sinh học thƣờng áp dụng trong lĩnh vực bảo tồn đa dạng sinh học

(biodiversity). Thông tin quan trọng nhất đƣợc thu thập chính là tên, mô tả, sự

phân bố, trạng thái và kích thƣớc phân bố của các chủng loài (speciese), nhu cầu

thói quen (habitat) mà cách mà mỗi tổ chức tƣơng tác với các chủng loài khác.

Thông tin này đƣợc lƣu trữ trong cơ sở dữ liệu các máy tính, đƣợc truy xuất bởi

các chƣơng trình phần mềm để tìm kiếm, hiển thị, phân tích thông tin đó một

cách tự động và quan trọng nhất là để giao tiếp đƣợc với con ngƣời, đặc biệt là

qua internet.

Một ví dụ của ứng dụng này là dự án Speciese 2000. Nó là một dự án

nghiên cứu toàn cầu dựa vào internet để giúp cung cấp thông tin về mỗi chủng

loài đƣợc biết đến của cây, động vật, nấm (fungus), và vi khuẩn (microbe) còn

tồn tại để làm cơ sở cho việc nghiên cứu đa dạng sinh học toàn cầu.

2.6.2.3. Phân tích chức năng gen

Mức độ biểu hiện gen

Nhà sinh học phân tử có thể đánh giá mức độ biểu hiện của một gen bằng

cách xác định lƣợng mRNA đƣợc tạo ra từ gen đó thông qua các kỹ thuật nhƣ

microarray, EST, SAGE (Serial Analygis of Gene Expression), MPSS

(Massively Parllel Signature Sequencing), hay khối phổ định lƣợng protein. Tất

cả những dữ liệu trên đƣợc tạo ra đều chứa thông tin nhiễu (noise-prone) làm

việc phân tích, tính toán trở nên phức tạp. Yêu cầu thực tế đó đã cho ra đời một

27

lĩnh vực mới trong sinh học tính toán đó là phát triển công cụ thống kê để lọc

tín hiệu xác đáng khỏi thông tin nhiễu trong những nghiên cứu biểu hiện gen đa

lƣợng (high-thoughput gene expression).

Nhận diện protein

Protein microarray và hệ thống khối phổ cao năng (high- throughput

mass spectrometry) có thể cung cấp hình ảnh (snapshot) tổng thể của các

protein hiện có trong một mẫu sinh học (biological sample). Các ứng dụng tin

sinh học có liên quan rất nhiều đến việc lý giải các dữ liệu thu đƣợc từ những hệ

thống này.

Đối với protein microarray, những nhà tin sinh học cần kiểm tra dữ liệu

mRNA gắn trên array. Trong khi đó, những vấn đề tin sinh học liên quan đến

việc gán (matching) dữ liệu phổ sắc ký MS với cơ sở dữ liệu về trình tự protein.

Dự đoán cấu trúc protein

Dự đoán cấu trúc là một ứng dụng quan trọng nữa của tin sinh học. Có

thể dễ dàng xác định trình tự acid amin của protein từ trình tự gen mã hóa cho

nó. Nhƣng protein chỉ có chức năng khi nó có cấu trúc bậc hai, bậc ba, bậc bốn.

Sẽ là vô cùng khó khăn khi dự đoán cấu trúc gấp nếp này từ tình tự axit amin.

Một số phƣơng pháp dự đoán cấu trúc bằng máy tính hiện đang phát triển.

Trong đó ý tƣởng quan trọng trong nghiên cứu tin sinh học là về quan

điểm tƣơng đồng. Với kỹ thuật mô phỏng tƣơng đồng (homology modeling),

thông tin này đƣợc dùng để dự đoán cấu trúc của một protein khi đã biết cấu

trúc của một protein khác tƣơng đồng với nó. Hiện tại, đây là cách dự đoán cấu

trúc protein đáng tin cậy nhất.

Các hệ thống sinh học kiểu mẫu

Sinh học hệ thống bao gồm việc sử dụng khả năng mô phỏng bằng máy

tính (computer simulation) các hệ cơ quan tế bào để có thể phân tích và hiển thị

hóa (visualize) việc kết nối phức tạp của các quá trình. Sự sống nhân tạo

(artificial life) hay tiến hóa ảo nổ lực nhằm tìm hiểu quá trình tiến hóa thông

qua việc mô phỏng bằng máy tính các dạng sự sống (nhân tạo) đơn giản.

Phân tích hình ảnh mức độ cao

28

Các kỹ thuật tính toán cũng đƣợc dùng để tăng tốc độ hoặc giúp tự động

hoàn toàn quá trình xử lý định lƣợng, và phân tích một lƣợng lớn hình ảnh sinh

học có chứa- thông- tin-cao. Các hệ thống xử lý ảnh hiện đại tăng cƣờng khả

năng quan sát để giúp cho việc tính toán từ môt tập lớn và phức tạp các hình ảnh

bằng cách cải tiến độ chính xác, tính khách quan, hay tốc độ. Một hệ thống phân

tích đƣợc phát triển hoàn thiện có thể thay thế hoàn toàn ngƣời quan sát.

Các công cụ phần mềm

Một trong những công cụ dùng trong sinh học tính toán nổi tiếng nhất là

BLAST, một giải thuật để tìm kiếm các trình tự acid nucleic hoặc protein tƣơng

đồng lƣu trữ trên các cơ sở dữ liệu. Ba nguồn cơ sở dữ liệu công cộng lớn nhất

(thƣờng đƣợc gọi là ngân hàng gen) là NCBI, EMBL, DDBJ.

Các ngôn ngữ lập trình của máy tính nhƣ Perl và Python thƣờng đƣợc

dùng để giao tiếp (interface) và ly trích (parse) dữ liệu từ các ngân hàng cơ sở

dữ liệu sinh học (biological database) thông qua những chƣơng trình tin sinh

học (bioinformatics program).

Cộng đồng những lập trình viên sinh tin học đã triển khai nhiều dự án

phần mềm mã nguồn mở (free/open source) nhƣ EMBOSS, Bioconductor,

BioPerl, BioPhyton, BioRubi, BioJava. Điều này giúp cho việc chia sẻ, phát

triển và phổ biến các công cụ lập trình và tài nguyên lập trình (programming

objects) giữa các nhà tin sinh học.

29

Phần 3

PHƢƠNG TIỆN VÀ PHƢƠNG PHÁP NGHIÊN CỨU

3.1. Thời gian và địa điểm tiến hành nghiên cứu

3.1.1 Thời gian nghiên cứu

Đề tài đƣợc bắt đầu tiến hành nghiên cứu từ tháng 3 năm 2006 và phải hoàn

thành vào ngày 15 tháng 8 năm 2006.

3.1.2. Địa điểm nghiên cứu

Đề tài đƣợc thực hiện tại Trung Tâm Phân Tích Thí Nghiệm Hóa Sinh thuộc

trƣờng Đại học Nông Lâm Thành Phố Hồ Chí Minh.

3.2. Vật liệu và công cụ nghiên cứu

3.2.1. Vật liệu nghiên cứu

Vật liệu nghiên cứu là toàn bộ EST (Expressed Sequence Tags) của của tất cả

các loài ong cho mật (tính đến ngày 14-06-2006), hiện đã đƣợc công bố trên các ngân

hàng cơ sở dữ liệu nhƣ NCBI, EMBL, DDBJ.

Trong số trình tự EST này, sẽ có một số lƣợng nhất định các trình tự đơn lặp lại

(Simple Sequence Repeats, SSRs). Trong số microsatellite tìm đƣợc có những

microsatellite có đặc điểm đặc trƣng, đƣợc ứng dụng làm marker microsatellite. Và

trên thực tế hiện nay marker microsatellite đang đƣợc sử dụng nhiều trong các dự án

nghiên cứu nhƣ lập bản đồ bộ gen của các loài ngũ cốc, trong dự án genome ngƣời

(Human Genome Project) và nhiều nghiên cứu khác trong việc phân tích, so sánh đặc

điểm di truyền của các loài sinh vật.

3.2.2. Công cụ nghiên cứu

Máy tính IBM với hệ điều hành window server 2003 và hệ điều hành Linux

(phiên bản Fedora core 1)

Internet truy cập cơ sở dữ liệu thế giới

Trình biên dịch Active Perl 5.6

30

Phần mềm soạn thảo lập trình Perl: Ultraedit, Notepad

Phần mềm thiết kế mồi Primer3 (Primer.exe)

Các phần mềm thiết kế mồi với mã nguồn mở hiện đang có trên mạng:

PrimerQuest. DNAClub, PDA…

Phần mềm Blastall

Phần mềm Formatdb

Phần mềm MISA, EST_TRIMMER

Cùng một số công cụ, cơ sở dữ liệu khác đƣợc sử dụng để so sánh và chọn lựa

phƣơng thức tối ƣu nhất cho công việc nghiên cứu.

3.3. Phƣơng pháp tiến hành nghiên cứu

3.3.1 Quy trình nghiên cứu tổng quát

Xác định phân loại

Microsatellite có trong EST

Thiết kế primer cho phản ứng

PCR dựa trên vùng hai bên

locus SSR đặc trƣng

Đối tƣợng nghiên cứu

(các loài ong cho mật)

Công cụ nghiên cứu

(các phần mềm và thiết bị cần thiết)

Vật liệu nghiên cứu

EST của ong cho mật

31

Phân tích, so sánh để chọn

ra những primer tốt nhất

Hình 3.1. Sơ đồ trình bày quy trình nghiên cứu tổng quát

Để tiến hành nghiên cứu đạt đƣợc hiệu quả nhanh và tốt thì việc đƣa ra một quy

trình tổng quát là rất cần thiết. Việc thiết lập nên quy trình này giúp cho công việc

nghiên cứu có một kế hoạch tƣơng đối và sẽ bố trí đƣợc công việc thực hiện trong các

phân đoạn đƣợc tiến hành song song, có hiệu quả, đạt đƣợc kết quả trong thời gian

sớm nhất và kết quả tốt nhất. Sau đây là qui trình nghiên cứu tổng quát, tôi đã xây

dựng để hỗ trợ tốt theo những ƣu điểm nêu trên.

3.3.2. Phƣơng pháp nghiên cứu

3.3.2.1. Sơ đồ các bƣớc tiến hành nghiên cứu

Bƣớc 1

Thu thập dữ liệu EST

● Script Perl

● Công cụ hỗ trợ từ NCBI

Bƣớc 2

Tìm và phân loại microsatellite

● Xử lứ qua EST_TRIMMER

● Xử lý qua MISA

Bƣớc 3

Thiết kế primer

Tiến hành qua 6 script Perl

32

Bƣớc 4

So sánh, chọn lựa primer

● Primer3

● Primerquest

● PDA

● DNAClub

Hình 3.2. Sơ đồ các bƣớc tiến hành nghiên cứu chính

Nhằm giúp cho công việc nghiên cứu đƣợc tiến hành nhanh, hiệu quả,

chính xác các công việc đƣợc thực hiện lôgic việc thiết lập nên sơ đồ tiến hành

nghiên cứu chi tiết từng bƣớc là điều cần làm. Công việc này là cụ thể hóa cho

sơ đồ nghiên cứu tổng quát đƣợc xây dựng ở mục 3.1. Hơn thế nữa, sơ đồ

nghiên cứu chi tiết sẽ giúp cho những ngƣời quan tâm đến đề tài dễ dàng hình

dung, theo dõi từng công việc đƣợc làm trong đề tài. Vì mục đích đó, tôi xây

dựng nên bảng đồ chi tiết trong nghiên cứu đƣợc trình bày cụ thể hình 3.2.

3.3.2.2. Các bƣớc tiến hành nghiên cứu chi tiết

Buớc 1: thu thập dữ liệu EST

Chọn ngân hàng cơ sở dữ liệu nào có chứa nguồn EST nhiều nhất, chất

lƣợng cao nhất. Vì rằng, mỗi ngân hàng cơ sở dữ liệu có số lƣợng khác nhau và

mức độ trùng lắp dữ liệu cũng không loại trừ. Việc trùng lắp dữ liệu làm cho số

liệu trở nên dƣ thừa không cần thiết và tốn thời gian hơn cho việc xử lý dữ liệu.

Tôi sử dụng keywork “honeybee” và chọn lựa 3 ngân hàng cơ sở dữ liệu

lớn nhất là NCBI, EMBL, DDBJ. Kết quả tìm đƣợc nhiều nhất trên trang NCBI

với số lƣợng 24,468 trình tự EST. Bên cạnh đó, trang NCBI có trang download

hỗ trợ, giúp cho ngƣời nghiên cứu có thể tải cùng lúc tất cả dữ liệu EST về máy

cá nhân một cách nhanh chóng. Ngƣời nghiên cứu chỉ việc đánh từ khóa cần

quan tâm và vào chọn dạng text là có thể dễ dàng tải trình tự cần nghiên cứu về

máy của mình. Tuy nhiên, dạng định dạng còn phải phụ thuộc vào yêu cầu

nghiên cứu cụ thể.

33

Hình 3.3. Giao diện trên trang NCBI với từ khóa “honeybee”

Dùng ngôn ngữ lập trình Perl để thiết kế đoạn mã (Perl script) tải toàn bộ

nguồn EST đã chọn về máy tính cá nhân. Chi tiết cấu trúc đoạn mã nhƣ sau:

#!/usr/bin/perl –w

# Day la day la script download du lieu EST tu NCBI

##############################################

use strict;

use LWP::Simple;

my($path1,@content,$temp,@acc,$tam,$url);

my(@raw,$undownacc,$file,$i);

$path1="e:\\downpbp\\accession1.txt";

$viet="";

open(ACC,$path1)||die("Can't open file accession");

@content=<ACC>;

for($i=0;$i<=$#content;$i++){

$content[$i]=~s/\n{0,}\s{0,}//g;

@acc=split(":",$content[$i]);

$acc[1]=~s/\s{0,}//g;

chomp($acc[1]);

$url="http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?cmd=

&txt=on&val=";

$url.=$acc[1];

print"Trinh tu thu $acc[0] :\n";

print"$url\n";

if (@raw=get($url)){

$file="d:\\loi\\download\\database\\$acc[1].txt";

open (PBP,"+>$file")|| die("Khong luu duoc file DNA\n");

34

print PBP @raw ;

close (PBP);

$viet=$acc[1];

}else{

#Neu ACCESSION nao khong tai duoc thi luu vao tap tin

undown.txt

print "$acc[1] tai khong duoc\n";

$undownacc = $acc[1]."\n";

$tam=$acc[1];}}

$file="d:\\loi\\download\\undown.txt";

open (UNPBP, "+>$file")|| die("Khong luu duoc file DNA\n");

print UNPBP $undownacc ;

close (UNPBP);

Sở dĩ cần phải thiết lập đoạn mã ngoài việc tải trình tự bằng phƣơng tiện

có sẵn từ trang NCBI là để dễ dàng cho việc phân loại trình tự EST có chứa

microsatellite trong bƣớc thực hiện thiết kế mồi sau này.

Bƣớc 2: tìm và phân loại microsatellite

Tìm và phân loại microsatellite trong toàn bộ EST đã tải về máy, phải

chọn lựa phần mềm tìm và phân loại phù hợp nhất, hay kết hợp các phần mềm

với nhau, hay phải tự thiết kế.

Đây là giai đoạn cần phải giải quyết tốt về vấn đề phân loại. Viêc phân

loại thành cộng sẽ tạo thuận lợi rất nhiều cho các bƣớc tiếp sau. Nó sẽ giúp cho

ngƣời nghiên cứu bƣớc đầu, xác định đƣợc tỷ lệ các dạng lặp lại, từ đó có thể

loại bỏ đƣợc những dạng lặp lại không đặc trƣng, rút ngắn công đoạn nghiên

cứu tiếp sau đó và làm cho việc xử lý số liệu còn lại đơn giản hơn. Trong bƣớc

này, tôi sử dụng các phần mềm EST_TRIMMER và MISA.

EST_TRIMMER là công cụ dùng cho việc tìm microsatellite từ EST.

Ƣu điểm của EST_TRIMMER là dễ dàng thay đổi các thông số cần thiết cho

việc tìm microsatellite. Vì vậy, tôi đã sử dụng EST_TRIMMER đầu tiên cho

việc xác định microsatellite.

Cú pháp thực thi của EST_TRIMMER có dạng:

est_trimmer.pl <FASTAfile> [-amb=n,win] [tr5=(A|C|G|T),n,win]

[-tr3=(A|C|G|T),n,win] [-cut=min,max] [-id=name]

35

[-help]

Để chạy đƣợc chƣơng trình này thì cần phải thực hiện các công việc nhƣ sau:

- Phải tải đƣợc script của EST_TRIMMER về máy tính cá nhân, và cần

phải cài ngôn ngữ lập trình Perl ( Active Perl 5.6) vào máy.

- Phải tạo một file trong đó có chứa dữ liệu EST theo định dạng FASTA.

- Script của EST_TRIMMER và file chứa EST phải nằm trong cùng một

thƣ mục.

Hình 3.4. Cú pháp thực thi của EST_TRIMMER

MISA là một công cụ dùng để tìm microsatellite. Nó đƣợc thiết kế

dùng kết hợp với Primer3 trong việc tìm microsatellite và thiết kế primer vùng

flanking của những locus microsatellite tìm đƣợc.

Ở đây tôi chỉ ứng dụng MISA cho việc tìm microsatellite và chỉnh sửa

thông số cần thiết theo yêu cầu nghiên cứu. Sở dĩ, tôi dùng MISA là vì công cụ

này cho ra kết quả rõ ràng, dễ dàng cho việc phân loại tiếp sau. Và tôi không

dùng cho việc thiết kế primer là vì các thông số trong thiết kế primer đã đƣợc

mặc định và không thể chỉnh sửa nên không phù hợp cho mục đích nghiên cứu.

Việc ứng dụng MISA không có gì phức tạp. Tuy nhiên, ngƣời mới bắt

đầu thì cũng sẽ gặp một vài trở ngại. Vì vậy, trƣớc hết phải tham khảo kỹ phần

readme của chƣơng trình này để có thể vận dụng vào mục đích ứng dụng của

mình đƣợc. Sau đây là cách thức xử lý dữ liệu qua MISA.

Trƣớc tiên, ngƣời ứng dụng cần phải đƣa script của MISA vào cùng

thƣ mục với EST_TRIMMER ở trên (nếu dùng MISA cho cả việc thiết kế

primer thì phải tải phần mềm Primer3_ core vào cùng thƣ mục).

36

Tiếp theo, ngƣời ứng dụng phải định dạng lại dữ liệu (dạng fasta và

lƣu lại bằng một tên file mới) từ file kết quả đạt đƣợc từ việc thực thi

EST_TRIMMER.

Cuối cùng, ngƣời ứng dụng vào MS-DOS thực thi lệnh chạy MISA. Cú

pháp để thực thi MISA có dạng:

misa.pl <FASTAfile>

<FASTAfile> là tên file chứa trình tự DNA theo định dạng FASTA.

Hình 3.3: Cú pháp thực thi của MISA

Sau khi dữ liệu đƣợc xử lý qua MISA, microsatellite đƣợc xác định và

phân nhóm rõ ràng. Tất cả đƣợc lƣu trữ trong cùng một file. Việc cần làm bây

giờ là tính tỉ lệ phần trăm của từng dạng microsatellite trong tổng số

microsatellite và phần trăm của microsatellite với hai loại EST (5‟EST và

3‟EST).

Mục đích của việc tính tỷ lệ phần trăm của từng dạng microsatellite và

phần trăm của microsatellite của hai loại EST là xác định dạng microsatellite

nào sẽ đƣợc sử dụng trong bƣớc thiết kế primer. Việc chọn lựa này loại bỏ đi

một lƣợng lớn các dạng microsatellite nhƣng chiếm tỉ lệ rất thấp. Từ đó làm cho

việc thiết kế primer sẽ đơn giản và chính xác hơn.

Sau khi tính toán và chọn lựa các dạng mocrosatellite hoàn tất, việc làm

kế tiếp là chuyển tất cả những dạng microsatellite chọn vào từng thƣ mục riêng

biệt, chuẩn bị cho bƣớc thiết kế primer.

37

Bƣớc 3: thiết kế primer

Đây là khâu rất quan trọng, primer đƣợc thiết kế phải đảm bảo nghiêm

ngặt các thông số về nhiệt độ, tỷ lệ %GC, nhiệt độ chênh lệch giữa mồi xuôi và

mồi ngƣợc, không tạo cấu trúc kẹp tóc… của primer khi chạy phản ứng PCR.

Đồng thời phải giải quyết đƣợc mức độ phức tạp của các dạng microsatellite có

trong EST, có nhƣ vậy mới không bỏ sót đƣợc những microsatellite đặc trƣng.

Nhiệt độ Tm của primer đƣợc thiết lập ở ba mức độ nhƣ sau:

Tm = 65 - nhiệt độ cao nhất

Tm = 63 - nhiệt độ trung bình

Tm = 60 - nhiệt độ thấp nhất

Sự chênh lệch giữa primer xuôi và primer ngƣợc tối đa là 10C

Chiều dài primer có ba trƣờng hợp:

Chiều dài tối đa = 28 base

Chiều dài trung bình = 24 base

Chiều dài tối thiểu = 20 base

Phần trăm GC nằm trong khoảng từ 50% - 60%

Mức độ phức tạp của các dạng microsatellite: microsatellite không chỉ

có một dạng trong một EST mà trong một EST có thể có rất nhiều dạng

microsatellite cùng tồn tại. Chính sự tồn tại đa dạng này làm cho công việc tìm

microsatellite trở nên phức tạp hơn rất nhiều. Vì vậy, phải làm sao thiết kế đƣợc

đoạn mã để đáp ứng yêu cầu thực có nhƣ trên.

Công đoạn này đƣợc giải quyết qua 6 script perl cùng với sự hỗ trợ của

các phần mềm Primer3, Blastall, Formatdb. Những Script Perl này đƣợc thiết

lập và có thể nhúng vào các phần mềm Primer3, Blastall và Formardb. Thứ tự

các script trên đƣợc sắp xếp từ 1 – 6 và thực thi các tác vụ nhƣ sau:

1_ssr_repeat_finder: thực thi tác vụ tìm và phân loại tất cả các EST

có microsatellite, chuyển vào một file mới chuẩn bị cho bƣớc phân tích tiếp

theo.

2_ssr_primer_designer: thực thi tác vụ thiết kế primer cho mục đích

khuếch đại microsatellite chứa đựng trong một vùng trình tự.

38

3_ssr_primer_rep_check: thực thi tác vụ loại bỏ những mồi đã đƣợc

thiết kế trên những trình tự lặp lại có độ phức tạp thấp.

4_ssr_primer_blast: thực thi tác vụ kiểm tra sự tƣơng thích những

trình tự lặp lại đối với primer đã thiết kế

5_ssr_order_filter: thực thi tác vụ tạo ra một file chứa đựng chỉ

những microsatellite có mồi duy nhất

6_ssr_order_formatter: thực thi tác vụ tạo ra một file chỉ chứa

microsatellite có mồi duy nhất và cung cấp thông tin về primer một cách đơn

giản, dễ quan sát.

Trong đó script thứ 2 nhúng vào Primer3 trong việc thiết kế primer.

Hình 3.6. Giao diện của Primer3

Primer3 là chƣơng trình thiết kế primer miễn phí. Chƣơng trình này đƣợc

tạo bởi các nhà khoa học thuộc Viện Nghiên Cứu Y Sinh Học Whitehead và

Trung Tâm Nghiên Cứu Genome của MTI (Whitehead Institute For Biomedical

Research and Center For Genome Research). Primer3 rất dễ dàng sử dụng để

thiết kế primer, nó có hàng trăm tùy chọn và có thể thay đổi đƣợc nếu ngƣời sử

dụng không muốn sử dụng các thông số đã đƣợc mặc định. Để thay đổi các

thông số này ngƣời sử dụng chỉ việc đƣa trình tự cần thiết kế primer của mình

vào vị trí ô trống lớn nhƣ đƣợc thấy ở Hình 3.4, sau đó đƣa chuột vào các ô tùy

chọn và gõ vào các thông số mong muốn của mình, tiếp theo chỉ việc ấn vào nút

Pick Primers là chƣơng trình tự động thiết kế primer.

39

Tuy nhiên, vì có đến hàng trăm tùy chọn khác nhau nên để sử dụng có

hiệu quả Primer3, ngƣời sử dụng cần tìm hiểu kỹ càng trƣớc khi điều chỉnh các

thông số theo mong muốn là điều cần làm trƣớc tiên. Primer3 có thể sử dụng

hoàn toàn miễn phí tại địa chỉ internet http://www-genome.wi.mit.edu/cgi-

bin/primer/primer3_www.cgi

Bƣớc 4: so sánh, chọn lựa primer

Đây là buớc cuối cùng của cuộc nghiên cứu. Tuy không tốn nhiều công

sức nhƣng cũng rất quan trọng. Bƣớc này với nhiệm vụ là chọn ra những cặp

primer tốt nhất đảm bảo cho việc chạy phản ứng PCR đạt đƣợc kết quả nhƣ

mong muốn.

Trên cơ sở những cặp primer đã đƣợc thiết kế và sàng lọc ở bƣớc thứ 3,

để có đƣợc những cặp primer đảm bảo là tốt nhất thì cần phải tiến hành chọn

lựa lại lần cuối. Việc này đƣợc thực hiện thông qua việc kiểm tra lại các thông

số của các cặp primer cùng với đó là sử dụng các phần mềm thiết kế primer

khác nhƣ PrimerQuest, PDA, DNAClub. Việc sử dụng các phần mềm thiết kế

primer này là nhằm so sánh tính duy nhất của primer. Từ các phân tích và so

sánh này sẽ chọn lại đƣợc những cặp primer hoàn hảo nhất.

Bƣớc này cần phải làm các nhiệm vụ nhƣ sau:

Chọn lựa các primer đã thiết kế ở bƣớc thứ 3, kiểm tra về các thông số của

từng cặp primer với các thông số đƣợc xây dựng trong chƣơng trình thiết kế

primer.

Thanh lọc bớt số lƣợng primer đƣợc tạo ra từ hai trình tự EST giống hệt nhau

và chỉ chọn một, hay giữa hai primer để khuyếch đại cùng một sự đa hình của

một dạng microsatellite có thông số thích hợp hơn.

Sử dụng các phần mềm thiết kế primer để kiểm tra tính đồng nhất của primer.

Tạo bảng danh sách các primer đƣợc chọn lựa cuối cùng.

PrimerQuest

PrimerQuest là chƣơng trình thiết kế primer đƣợc đặt trong trang web của hãng

Intergrated DNA Technology (IDT)

40

(http://www.idtdna.com/Scitools/Applications/PrimerQuest/Default.aspx/).

PrimerQuest đƣợc viết lại trên nền của Primer3. Tuy nhiên, nó không giống với

Primer3, giao diện của nó khác rất nhiều và có thêm nhiều tùy chon thú vị khác so với

Primer3. Một trong những tiện ích hấp dẫn từ PrimerQuest đó là, ngƣời sử dụng có thể

đặt thiết kế primer mình đã thiết kế ngay trên giao diện của PrimerQuest.

Hình 3.7. Giao diện của PrimerQuest

PDA (Primer Design Assistant)

Không nhƣ hầu hết các chƣơng trình thiết kế primer đều chỉ nhận và thiết kế

primer trên một trình tự DNA đƣa vào, PDA có khả năng thiết kế primer dựa trên một

hay nhiều trình tự DAN đƣa vào. PDA đƣợc phát triển bởi các nhà khoa học thuộc

Phân Viện Thống Kê Sinh Học và Tin Sinh Học của Viện Nghiên Cứu Sức Khỏe Đài

Loan. PDA đƣợc sử dụng miễn phí qua internet tại trang web

http://dbb.nhri.org.tw/primer/.

41

Hình 3.8. Giao diện của PDA

DNAClub

DNAClub đƣợc thiết kế bởi Xiongfong Chen ([email protected]) với nhiều tính

năng khác nhau. Ngƣời dùng có thể sử dụng chƣơng trình để thiết kế một bản đồ giới

hạn của trình tự DNA đƣa vào, hay có thể thiết kế primer để nhân bản một trình tự

DNA nào đó. Có thể sử dụng miễn phí DNAClub tại địa chỉ trang web

http://www.imtech.res.in/pub/nsa/dnaclub/.

Hình 3.9. Giao diện của DNAClub

42

Phần 4

KẾT QUẢ VÀ THẢO LUẬN

4.1. Kết quả tìm kiếm và tải trình tự EST về máy tính cá nhân

4.1.1. Kết quả tìm kiếm EST

Sau khi tôi kiểm tra và so sánh số lƣợng, chất lƣợng nguồn vật liệu EST từ ba

ngân hàng cơ sở dữ liệu NCBI, EMBL và DDBJ. Kết quả, ngân hàng cơ sở dữ liệu

NCBI có đƣợc dữ liệu EST tốt nhất. Ngoài ra, ngân hàng cơ sở dữ liệu NCBI còn có

nhiều trang web hỗ trợ rất thuận tiện cho những bƣớc định dạng và download nguồn

dữ liệu EST nầy về máy cá nhân.

Kết quả tìm thấy EST trên NCBI (tính đến ngày 14-06-2006)

Tổng số EST: 24468

Tổng số trang: 1233

Số EST trong một trang: 20

Số lƣợng EST là rất chênh lệch giữa các loài. Sự chênh lệch này do nhiều lý do

khác nhau nhƣng yêu tố tạo nên EST là một lý do quan trọng. Có nhiều loài số lƣợng

EST lại rất lớn nhƣ ở ngƣời (9572322 EST), ruồi giấm (499392 EST) . Với số lƣợng

24468 EST trên loài ong mật là một con số cho tiến hành nghiên cứu theo mục đích

của đề tài là hoàn toàn khả thi. Vì thực tế đã có nhiều nghiên cứu cũng với mục đích

thiết kế primer trên vùng bảo tồn hai bên microsatellite có trong EST với số lƣợng

EST chỉ có vài ngàn nhƣng đã cho ra kết quả rất tốt (trên dâu tây 1800 EST-Kevin M

Folta và ctv,2004; bông vải 9948 EST- Sukumar Saha và ctv, 2004)

Hình 4.1: Kết quả tìm thấy EST trên NCBI

43

4.1.2. Kết quả tải trình tự EST về máy cá nhân

Sau khi việc tìm kiếm và chọn lọc nguồn EST hoàn tất, công việc tiếp theo là

phải tải đƣợc toàn bộ nguồn dữ liệu này về máy cá nhân. Nhƣ kết quả bên trên cho

thấy, nếu thực hiện tải từng trình tự một EST về máy cá nhân thì vô cùng tốn thời gian,

bởi số lƣợng rất nhiều. May mắn là trên trang NCBI có tùy chọn để download cùng lúc

tất cả nguồn dữ liệu EST này. Nhƣng chỉ ở dạng text và nằm cùng trong môt file.

Ngoài ra, thực tế nghiên cứu còn đòi hỏi phải thực hiện download nguồn dữ liệu này

với mỗi EST vào từng file một và tên file là mã số truy cập (accession number) của

EST. Do đó, cần phải lập trình để download đúng với yêu cầu nghiên cứu.

Sau khi vào NCBI gõ từ khóa honeybee, tiếp theo chọn dạng text cho

download, chỉ đƣờng dẫn vào trong thƣ mục cụ thể về máy cá nhân, đợi vài phút tác

vụ download toàn bộ dữ liệu EST đã hoàn tất.

Hình 4.2: Kết quả download với tùy chọn có sẵn của NCBI

Download dữ liệu EST bằng việc thiết lập script perl. Công việc này đòi hỏi

ngƣời nghiên cứu phải biết về lập trình hay có thể nhờ ngƣời biết lập trình và cố vấn

về kiến thức chuyên môn của mình cho ngƣời đó để hoàn tất công việc.

Sau khi thiết kế song script, đoạn mã đã thực thi công việc một cách hiệu quả

và chỉ mất khoảng 30 phút cho tác vụ này. Kết quả đã download đƣợc 24648 trình tự

EST, kết quả này đúng với số lƣợng EST hiện có trên NCBI. Tƣơng đƣơng với đó là

việc thiết lập nên 24648 file dữ liệu EST có tên file là mã số truy cập.

44

Kết quả download không phải lúc nào cũng đạt đƣợc 100% mà còn phụ

thuộc vào nhiều yếu tố nhƣ tốc độ đƣờng truyền của máy, vấn đề này có thể khắc phục

đƣợc dễ dàng. Ngoài ra, một yếu tố quan trọng hơn đó là việc thiết lập nên script để

thực thi tác vụ này. Nếu cách thức tổ chức các khối lệnh không tốt, không hợp lý… thì

kết quả download sẽ không thƣc thi đƣợc hay thực thi không hoàn toàn.

Script Perl thiết lập thực thi việc download trình tự EST đã hoạt động rất

hiệu quả và hoàn thành 100% yêu cầu công việc trong thời gian tƣơng đối ngắn (30

phút). Điều này, cho thấy Script này đã đƣợc tổ chức các khối lệnh và các thƣờng trình

phụ một cách chặt chẽ và tối ƣu nên đã đạt đƣợc yêu cầu đặt ra.

4.2. Kết quả tìm và phân loại microsatellite

4.2.1. Kết quả tìm microsatellite qua xử lý của EST_TRIMMER

Số lƣợng EST đƣợc tải về là rất nhiều và thành phần microsatellite cũng rất

phong phú. Tuy nhiên, sự phong phú của microsatellite không đồng nghĩa với hiệu quả

cho mục đích nghiên cứu. Vì trong tất cả những dạng microsatellite này, có những

dạng không có đủ cơ sở để làm chỉ thị hay sự đa hình là nhƣ nhau giữa các loài, các cá

thể…Vì vậy trƣớc tiên cần phải xây dựng một phƣơng pháp tinh lọc những dạng

microsatellite không cần đến trong việc tìm kiếm microsatellite.

EST_TRIMMER là phần mềm giải quyết đƣợc yêu cầu trên.

EST_TRIMMER thực thi các tác vụ nhƣ sau:

Loại bỏ tất cả những EST có chiều dài ngắn hơn và dài hơn chiều dài nhỏ

nhất và dài nhất đã đƣợc chọn

Loại bỏ đi những dạng base N (A, T, G, C) kéo dài liên tục với giới hạn

không hợp lý trong một độ dài base nhất định

Loại bỏ dạng polyA/T ở đầu 5‟ và 3‟

Thiết lập nên file chứa kết quả

45

Hình 4.3: Kết quả thực thi 4 tác vụ của EST_TRIMMER

EST_TRIMMER thực thi tạo ra hai file kết quả. Một file chứa kết quả tinh lọc

(viet.log), một file (viet.results) chứa trình tự đƣợc chọn. File chứa kết quả đƣợc định

dạng lại để tiến hành nghiên cứu xa hơn.

Hình 4.4: File chứa kết quả trình tự EST đƣợc chọn

4.2.2. Kết quả xử lý qua MISA

Hình 4.5: File định dạng FASTA

46

Một điều bất tiện ở EST_TRIMMER là kết quả không cho biết số lƣợng EST

đƣợc chọn và bị loại bỏ là bao nhiêu. Nhƣng điều này đã có MISA giải quyết, tốt hơn

thế nữa MISA còn cho ta thay đổi thêm vài thông số cần thiết mà với EST_TRIMMER

chƣa thực hiện đuợc. Những tác vụ thực thi của MISA:

Chọn lọc lại kích thƣớc chiều dài của EST

Điều chỉnh mức độ đa hình của microsatellite.

Điều chỉnh mức độ độ dài gián đoạn tối đa giữa hai microsatllite trong 1 EST

Cho biết số lƣợng EST đã xử lý

Cho biết số lƣợng base đã xem xét

Cho biết số lƣợng microsatellite đã tìm đƣợc

Cho biết số lƣợng trình tự chứa hơn 1 microsatellite

Hình 4.6. Thể hiện kết quả thực thi của MISA

Bảng 4.1: Kết quả xử lý của MISA

KẾT QUẢ XỬ LÝ QUA MISA

Tổng

EST

kiểm

tra

Tổng số

base đã

kiểm tra

Số

SSR

tìm

đƣợc

Số

EST

chứa

SSR

Số

EST

chứa

hơn 1

SSR

Số EST chứa

SSR cách nhau

100 base

(interruptions)

24289 11170594 4737 3345 964 970

47

Qua bảng kết quả trên cho thấy, số lƣợng microsatellite tìm thấy là rất nhiều và

cũng rất đa dạng. Không thể sử dụng hết số lƣợng microsatellite này làm móc (anchor)

để thiết kế primer đƣợc. Vì nhƣ vậy sẽ không khả thi trong quá trình chọn lựa primer

và mục đích nghiên cứu sẽ bị phân tán về hiệu quả. Do vậy, cần phải thực hiện thanh

lọc lại trƣớc khi tiến hành thiết kế primer. Công việc thanh lọc ở đây cần làm là:

► Tính tỉ lệ phần trăm từng dạng microsatellite

► Tính tỉ lệ phân trăm 5‟EST và 3‟EST

► Chọn ra EST chứa microsatellite có tính đại diện cao

Bảng 4.2 sau đây bƣớc đầu sẽ trình bày kết quả liệt kê tất cả thành phần của các

dạng microstellite.

Bảng 4.2: Thành phần các dạng microsatellite

Các dạng microsatellite tìm đƣợc

Di -

Nucleotide

Tri -

nucleotide

Tetra -

nucleotide

Penta -

nucleotide

Hexa -

nucleotide

AT; TA;

GA; AG;

CA; TC;

TG; AC

TAT; TTG; TCG;

GAG; GAA; ATT;

TCT; CTT; ATA;

ATG; GGA; AGA;

TTC; CTA; TGA;

TGT; CTA; AGC;

ACA; TCC; CAA;

AAT; AGG; TTA;

TAC; GAC; ACG;

GAT; CGC; GCA;

AAC; ACT; TAA;

GGT; AAG; TAA;

GCG; TCA

ATAA; CCTT;

GAAG; GTTC;

CGAT; AAAG;

TTCT; CTTT;

GTAT; AAGA;

TAAA; TCGT;

AAAT; TGTA;

AATA; ACAT;

TTAA; TTTC;

TACA; AGAT;

GGGA; TCTTT;

ATCG; TCGA;

TTTA; AGCG;

ATCC; CTCA;

AAGG; AATA;

TATT

AGAAA;

GAAGA;

TTTTC;

TCAAA;

AAATA;

AAATA;

CTCTT;

ATAAT;

AAGAA;

ATGAA;

TATAT;

TTTCT;

TCGTGA;

AGAGAC

48

Kiểm tra file kết quả cho thấy các dạng microsatellite chiếm tỷ lệ lớn là:

dinucleotide SSR, trinucleotide SSR và tetranucleotide. Hại dạng còn lại chiếm tỉ lệ rất

thấp. Cụ thể bảng kết quả 4.3 sẽ cho ta thấy rõ.

Bảng 4.3. Phần trăm các dạng microsatellite

Tỷ lệ phần trăm các dạng microsatellite

Dinucleotide Trinucleotide Tetranucleotide Penta/hexanucleotide

36%

(1705 SSR)

48%

(2274 SSR)

15.6%

(739 SSR)

0.4%

(19 SSR)

Qua bảng kết quả này nói lên một điều là sự đa hình của microsatellite hầu hết

là thuộc vào ba loại di/tri/tetra-nucleotide SSR. Vì vậy vấn đề bây giờ là xác định tỷ lệ

của từng loại microsatellite trong từng dạng microsatellite này.

Bảng 4.4. Phần trăm các loại microsatellite chiếm tỉ lệ cao

Tỷ lệ % các loại microsatellite trong 3 dạng di/tri/tetra-nucleotide SSR

Dạng dinucleotide SSR Dạng trinucleotide Dạng tetranucleotide

AG

AT TG TA GA ATA ATT TTC AAAG TTTC

15%

(256

SSR)

29%

(495

SSR)

8%

(136

SSR)

25%

(426

SSR)

17%

(290

SSR)

26%

(591

SSR)

37%

(841

SSR)

30%

(682

SSR)

48%

(355

SSR)

45%

(333

SSR)

Bảng thống kế cho thấy tỷ lệ phần trăm các loại microsatellite tập trung chủ yếu

vào một số loại nhất định. Các loại microsatellite chiếm tỷ lệ rất nhỏ trong các dạng

trên không cần thiết phải liệt kê ra và cũng dễ dàng tính đƣợc là bao nhiêu theo quy tắc

tam suất. Tuy nhiên việc tính những tỷ lệ này có lẽ sẽ không ảnh hƣởng gì đến kết quả

của việc thiết kế primer. Khả năng chỉ thị của chúng là không khả thi vì không mang

tính đặc trƣng (số lƣợng quá ít). Các loại microsatellite đƣợc liệt kê ở bảng trên sẽ

đƣợc chuyển vào từng file riêng biệt chuẩn bị cho việc thiết kế primer.

Về kết quả tính tỉ lệ phần trăm 5‟EST và 3‟EST, tỉ lệ tính ra là rất chênh lệch,

hầu hết là 5‟EST (97% hay 3245 5‟EST). Chính vì sự chênh lệch quá lớn giữa hai

49

dạng EST hay đúng hơn là số lƣợng 3‟EST quá ít, mà việc thực hiện công việc này

không đóng góp gì vào những bƣớc tiếp theo.

4.3. Kết quả thiết kế primer

4.3.1. Kết quả thiết kế primer qua 6 Script Perl

Những script này đƣợc thiết kế làm việc liên tục từ script thứ 1 đến script thứ 6.

Mỗi script thực hiện một chức năng riêng biêt, script thực hiện tác vụ phía trƣớc là tiền

đề cho script kế tiếp thực thi tác vụ của mình. Hay output của script thứ 1 là input cho

script thứ 2 và tƣơng tự nhƣ vậy đến sript thứ 6.

Dữ liệu đƣợc xử lý lôgic qua từng script, các script này đƣợc thiết kế nhƣ một

phần mềm tìm kiếm microsatellite, thiết kế primer, sàng lọc primer, cho ra kết quả

primer cuối cùng. Việc thiết kế primer của chƣơng trình này nhờ vào Primer3, Blastall

và Formatdb. Sau đây là kết quả thực thi tác vụ của từng script.

● 1_ssr_repeat_finder

Script thứ nhất thực thi cho ra 3 file kết quả

► new_ids170404: liệt kê id của các trình tự có microsatellite

► ssrout170404: thể hiện mã số truy cập, trình tự EST và trình tự

microsatellite

► labdbout170404: liệt kê tất cả microsatellite trong một EST, vị trí

khởi đầu của microsatellite, số base của từng microsatellite và trình tự EST.

Hình 4.7. Kết quả của file new_ids170404

50

Hình 4.8: Kết quả của ssrout170404

Hình 4.9. Kết quả trình diễn của labdbout170404

Trong đó ssrout170404 là input của 2_ssr_primer_designer. Ssrout170404 là

một file chứa dữ liệu ở dạng text. Trong file này có 4393 EST chứa microsatellite. Số

EST này là nguồn input cho script thứ hai thực thi tác vụ thiết kế primer.

● 2_ssr_primer_designer

Script thứ hai thực thi tác vụ của nó cho ra 2 file kết quả.

► raw_primer3170404: in ra kết quả các thông số mặc định đƣợc thiết

lập từ Primer3 và từ script thiết lập.

51

Hình 4.10. Xuất kết quả các thông số thiết lập từ script

► primer_results170404

Hình 4.11: Trình bày primer đƣợc thiết kế

Số lƣợng primer đƣợc thiết kế còn khá nhiều (3417 cặp primer). Chắc chắn là

không thể nào sử dụng tất cả số primer để chạy phản ứng PCR đƣợc. Tuy nhiên, vấn

đề này sẽ đƣợc giải quyết qua bƣớc sàng lọc và chọn lại những cặp primer có chất

lƣợng hơn qua 3_ssr_primer_rep_check.

● 3_ssr_primer_rep_check

Script này lấy primer_results170404 làm input và cho ra output là

rescreened170404. Script thứ 3 thực thi tác vụ chọn lọc lại primer đã đƣợc thiết kế từ

52

script thứ 2. Việc chọn lọc này sẽ cho ra những cặp mồi có chất lƣợng cao hơn (đảm

bảo các thông số kỹ thuật đã thiết lập).

Kết quả thực thi của 3_ssr_primer_rep_check chọn lọc ra đƣợc 175 cặp primer.

Số primer này tiếp tục đƣợc xử lý qua script thứ 4 và thứ 5 để chọn ra những cặp

primer cuối cùng.

Hình 4.12: Trình diễn của rescreened170404

● 4_ssr_primer_blast

Script thứ tƣ này sẽ đƣợc nhúng vào Blastall nhờ chƣơng trình này gióng hàng

các trình tự EST có microsatellite đƣợc chọn thiết kế primer ở script thứ 3 để tiếp tục

chọn lại những trình tự có primer tốt nhất. Script này sẽ sử dụng rescreened170404

làm input và cho ra output là blastout170404.

Hình 4.13: Kết quả màn hình xử lý qua 4_ssr_blast

53

● 5_ssr_order_filter

Đây là script cuối cùng thực thi tác vụ tinh lọc primer và các EST đƣợc thiết

kế primer. Thành công của bƣớc này là cơ bản công đoạn thiết kế primer đã hoàn

thành. Từ intput blastout170404, 5_ssr_order_filter thực thi tác vụ của mình cho ra

output filter170404. Filter170404 sẽ chứa trình tự EST và primer đƣợc thiết kế từ nó.

Đây là kết quả primer cuối cùng đã đƣợc chọn.

Hình 4.14. Thể hiện EST và primer sau cùng

● 6_ssr_order_formatter

Kết quả thể hiện những primer cuối cùng đƣợc thiết kế nhƣ đƣợc thấy phần nào

ở Hình 4.14 thì chƣa thật rõ ràng. Vì vậy, script cuối cùng script thứ 6 làm nhiệm vụ

định dạng lại và tách riêng một file chỉ chứa những cặp primer đƣợc chọn cùng với mã

số truy cập của từng EST tƣơng ứng với primer đƣợc thiết kế, nhiệt độ Tm và kích

thƣớc sản phẩm.

Hình 4.15. Trình bày primer đạt đƣợc sau cùng

54

Bảng 4.5: Kết quả primer của dạng dinucleotide SSR

Kết quả primer của dạng dinucleotide SSR

AG MX AATATTTAAGACGACCTGGCACGA

CATACGTGAGGCACTTTCTCTTTC

AAATTTGATGAACGGGAGAATGAA

MN CGTGTCTCATCTCCTCCATTCTTT

ACGAATTAATTTTTAACCATAGCGATT

ATTACCAATATCGGTGCATTTGCT

GA MX ACGTTGAAAATCGTAGCTCGAAAG

GTTTTTGTCCTCCAGTTTCGGAT

CACCTTATAATTCCACCTTCCTCG

MN AAGTTTCCGTTCTCCTCGAGTTCT

ACAAAACTTGTTGACTCACCCGAT

TTACTCTCTCGTTCCTCTTCTCGC

TC MX GAGGAAACGAGGTGTATCGGTTTA

GCAACGATCTTGTCAATATACGCA

TTAAACGAAGGATGATCCAAAACG

AAAATCACATCAATTCCGTTATCTTTTT

TCGATGCCAGTTTCGTTATTTCTT

MN GGAGAGAATGAAAGAAAGTGCGAA

ATAGAGGGAGAGCGTGAGGAAGAG

GAGGACCTCAAGTGAACTGGGATA

GGGATTACCGGTTAGCTCGATTAC

TATGCGTATATCTCAGCGTACGGA

AT MX CGGCTTTCGAGAACAAAATAAAAA

TTTCTGAAAGAAGAAATCGGTTTGAG

GGAACCAATCGTTGTTTCTCGTAT

GGAACCAATCGTTGTTTCTCGTAT

CGACAGCTAGGTGATTTCTATCCG

ACCTTTCCTCTCGCTATCCAATTC

MN GCTCGACCCATTACTTTCTTCCTT

CATCAAAGAGGGCAAGAAATGGTA

ACAAGATCAATGCCACGTCTTTTT

ACAAGATCAATGCCACGTCTTTTT

CTAAGTAATAAATCGTCGAGCCGC

GCTCAGGCGATTGAGATTTAAGTG

TA MX AGCTTAGCCAGCGAATTAATTTAAGA

TGAACGAACAAATATGAGAAAGCG

MN TAACGAACGTCGACGGTTAAAAA

GGGTGGTCACTCCGATGTAGTAAT

55

Bảng 4.6: Kết quả primer của dạng trinuclotide SSR

Kết quả primer của dạng trinucleotide SSR

ATA MX TTCTCTTCGTTTCTTTCTTGCGTT

TTCTTAGACGAATACAAAGAGGACAAAA

TCGTTGATTCAAGAGAAAGAGAGGA

ACCGTGAACATATCAAGGCGTATT

MN CTTCAAGTGGGATAAGGTACGTCG

CTTGAACTCTGAAATAACGCCGA

GGCCTTCCAATCAACTCGAATAA

AATCTTTTACTCGTCGTTGCTTCG

TTC MX AGGTTCGATGAATTTTTCCAAAGG

TTTTACGTCATCCGGTACATCAAG

GTGTCGCAAGACCGTTCTTTTT

ACGTGGCGAATAATTGCCTTACT

AATTGGTCAATTGGTGTGTTGAAA

MN TTCGAATCGAGGAATCAATAAAACA

TTCTCGTTTGTTTCATTGTTTTCG

CCAGAAGCACGTGTAAAACATCAA

GATAAATTGCCATTGCCACGAT

CCCCCTTCCCCTAATTGTAATTTT

ATT MX TTCTCTTCGTTTCTTTCTTGCGTT

TTCTTAGACGAATACAAAGAGGACAAAA

TCGTTGATTCAAGAGAAAGAGAGGA

ACCGTGAACATATCAAGGCGTATT

MN CTTCAAGTGGGATAAGGTACGTCG

CTTGAACTCTGAAATAACGCCGA

GGCCTTCCAATCAACTCGAATAA

AATCTTTTACTCGTCGTTGCTTCG

56

Bảng 4.7: Primer của dạng tetranucleotide SSR

Trong đó MX:mồi xuôi, MN: mồi ngƣợc; chiều primer 5‟-3‟

4.3.2. Kết quả so sánh và chọn lọc primer đƣợc thiết kế

Kết quả cuối cùng đƣợc chọn này đƣợc chọn lọc lại sau khi tiến hành đƣa

những trình tự EST của primer đã đƣợc thiết kế ở phần 4.3.1vào thiết kế lại ở các phần

mềm thiết kế primer Primer3, PrimerQuest, PDA, DNAClub và dựa trên kích thƣớc

sản phẩm, nhiệt độ chênh lệch giữa mồi xuôi và mồi ngƣợc.

Bảng 4.8 và bảng 4.9 là kết quả các cặp primer (9 cặp) của dạng dinucleotide và

tri/tetra-nucleotide đƣợc chọn sau cùng khi sử dụng các phần mềm thiết kế primer đã

đƣợc giới thiệu ở trên, cùng với đó là việc phân tích căn cứ trên các thông số nhƣ

chiều dài sản phẩm, tỷ lệ GC%, nhiệt độ Tm của primer…

Kết quả thiết kế primer của các phần mềm là khác nhau, chỉ có Primer3 là có tỉ

lệ giống nhau cao nhất. Điều này cũng dễ hiểu, bởi vì mỗi chƣơng trình có các thông

số kỹ thuật đƣợc thiết lập dựa trên các tiêu chuẩn khác nhau, đối tƣợng khác nhau. Vì

vậy khi đƣa các trình tự EST chứa các SSR đã đƣợc thiết kế primer bằng bằng 6 Script

Perl vào thiết kế primer trên các phần mềm thiết kế này thì cho ra các kết quả khác

nhau.

Kết quả primer của dạng tetranucleotide SSR

AAAG MX TTCTCTTCGTTTCTTTCTTGCGTT

TTCTTAGACGAATACAAAGAGGACAAAA

TCGTTGATTCAAGAGAAAGAGAGGA

MN CTTCAAGTGGGATAAGGTACGTCG

CTTGAACTCTGAAATAACGCCGA

GGCCTTCCAATCAACTCGAATAA

TTTC MX ACTCGCCTTGTAAATTGGACGATA

TGGCAAATGGAAAGAGAAGAAAGA

CGTTCCTTCTTTCCTTCCTTTTTC

TGGAGAGAAGAAAAGATCCCAATG

MN GCGAAACGAAAAGTAGGAAACAAA

GAAAAAGGAAGGAAAGAAGGAACG

TGCTTCACGACACGCAATACTAAT

CGGTAAAAATTGTGCGTCGTTAAT

57

Bảng 4.8: Kết quả primer sau cùng của dạng dinucleotide SSR

Kết quả primer chọn lọc từ dạng dinucleotide SSR

AG MX CATACGTGAGGCACTTTCTCTTTC

MN ACGAATTAATTTTTAACCATAGCGATT

GA MX ACGTTGAAAATCGTAGCTCGAAAG

AAGTTTCCGTTCTCCTCGAGTTCT

TC MN GCAACGATCTTGTCAATATACGCA

ATAGAGGGAGAGCGTGAGGAAGAG

AT MX ACCTTTCCTCTCGCTATCCAATTC

GCTCAGGCGATTGAGATTTAAGTG

TA MN TGAACGAACAAATATGAGAAAGCG

GGGTGGTCACTCCGATGTAGTAAT

Bảng 4.9: Kết quả primer đƣợc chọn của dang tri/tetra-nucleotide SSR

Kết quả primer chọn lọc của dạng trinucletotide SSR

ATA MX GATTCATGTGTTGGTCGCTGAATA

MN CCCTCTCCCTGTTCCTCTCTTTTA

TTC MX AGGTTCGATGAATTTTTCCAAAGG

MN TTCGAATCGAGGAATCAATAAAACA

Kết quả primer chọn lọc của dạng tetranucleotide SSR

AAAG MX ACCGTGAACATATCAAGGCGTATT

MN AATCTTTTACTCGTCGTTGCTTCG

TTTC MX ACTCGCCTTGTAAATTGGACGATA

MN GCGAAACGAAAAGTAGGAAACAAA

Do đó, việc chọn lọc lại primer đƣợc căn cứ chủ yếu dựa vào Primer3 và kết

quả cuối cùng của 6 Script Perl. Kết quả này cho thấy tính độc lập và ý đồ riêng trong

nghiên cứu với từng đối tƣợng cụ thể. Và việc chọn lựa kết quả sau cùng tùy vào chủ ý

của ngƣời nghiên cứu.

58

Bảng 4.10: Trình bày loại và mã số truy cập EST

Loại microsatellite và mã số truy cập EST

của các primer đã chọn

Loại microsatellite Mã số truy cập

AG CK631623

GA BP874879

TC BI502843

AT BP538128

TA BI517251

ATA BP874541

TTC BP875475

AAAG BI510009

TTTC BI514563

Để dễ dàng trong việc tìm và kiểm tra lại tính chính xác những cặp primer đã

đƣợc thiết kế, tôi thiết lập nên bảng 4.10. Bảng 4.10 cho thấy những loại microsatellite

và mã số truy cập của các EST tƣơng ứng chứa các loại microsatellite này.

59

Phần 5

KẾT LUẬN VÀ ĐỀ NGHỊ

5.1. Kết luận

5.1.1. Sơ đồ phƣơng pháp thực hiện

Từ quá trình thực hiện tôi xin đề xuất sơ đồ phƣơng pháp thực hiện cụ thể cho

việc khai thác dữ liệu, xử lý và thiết kế primer đối với các SSR tìm đƣợc nhƣ sau

EST từ NCBI

Script Perl (Bƣớc 1 mục 3.2) Download

sử dụng công cụ hỗ trợ từ NCBI

Sử dụng phần mềm Phân loại EST lần 1

EST_TRIMMER

EST đã đƣợc phân

loại lần I

Sử dụng phần mềm Phân loại EST lần 2

MISA

Sử dụng 6 script Perl Chọn lọc primer lần 1

Primer chƣa

chọn lọc

Sử dụng DNA Club,

Primer3, PrimerQuest Chọn lọc primer lần 2

Hình 5.1. Qui trình nghiên cứu thiết kế primer

Trình tự EST

EST chứa

microsatellite

Primer

tốt nhất

60

5.1.2. Kết quả đạt đƣợc

Đã tải đƣợc 24648 trình tự EST (mất khoảng 30 phút)

Qua quá trình tìm và phân loại bƣớc đầu microsatellite, kết quả đã xác định

۰ 4737 microsatllite

۰ 3345 EST chứa microsatellite

۰ 964 EST chứa hơn 1 microsatellite

۰ 100 dạng interruptions

Xác định đƣợc tỉ lệ các dạng microsatellite chiếm tỷ lệ cao

۰Dạng dinucleotide SSR: 36% (1705 SSR)

۰Dạng trinucleotide SSR: 48% (2274 SSR)

۰Dạng tetranucleotide SSR: 15,6% (739 SSR)

Từ các dạng microsatellite chiếm tỷ lệ cao đã xác định đƣợc các loại

microsatellite tin cậy cho việc thiết kế primer:

۰Dạng dinucleotide có các loại: AG, GA, TC, AT, TA

۰Dạng trinucleotide có các loại: ATA, ATT, TTC

۰Dạng tetranucleotide có các loại: AAAG, TTTC

Kết quả thiết kế và chọn lọc primer đã chọn ra đƣợc 9 cặp primer đảm bảo các

yêu cầu về các thông số cho primer khi thực hiện phản ứng PCR.

5.2. Đề nghị

Cần tiến hành kiểm tra các cặp mồi này bằng thực nghiệm để kiểm tra hiệu quả

cao nhất của đề tài

Kết quả thành công nên mở rộng đối tƣợng nghiên cứu

Nên tăng cƣờng đầu tƣ và xây dựng một chuyên ngành về lĩnh vực

Bioinformatic tại Trung Tâm, việc này sẽ đóng góp rất lớn đến hiệu quả nghiên

cứu của Trung Tâm.

61

Phần 6

TÀI LIỆU THAM KHẢO

TIẾNG VIỆT

1.Bùi Chí Bửu - Nguyễn Thị Lang-1999. Di truyền phân tử - Những nguyên tắc căn

dbản trong chọn giống cây trồng – Nhà xuất bản Nông Nghiệp thành phố Hồ Chí

Minh, 278 trang

2. CN. Lƣu Phúc Lợi, 2006. Bài giảng tin - sinh học ứng dụng, 37 trang

3. Nguyễn Thị Phƣơng Dung, 2005. Xây dựng phƣơng pháp nhận diện và phân tích

tính đa dạng di truyền của 21 dòng cacao ( themobroma cacaoL.) bằng kỹ thuật

microsatellite. Khóa luận tốt nghiệp kỹ sƣ công nghệ sinh học, trƣờng Đại học Nông

Lâm Thành Phố Hồ Chí Minh, 83 trang

4. Trần Hiếu Thuận,2003. Tài liệu lập trình Perl- Bộ môn Sinh Tin trƣờng Đại Học

Khoa Học Tự Nhiên thành phố Hồ Chí Minh,34 trang

5. Lê Minh Trung - Quốc Bình, 2002. Ngôn ngữ lập trình Perl cho ngƣời mới học.

NXB Thống kê 2002, 426 trang

TIẾNG NƢỚC NGOÀI

5. R. B. Hodgetts. M. A. Aleksiuk

. A. Brown

. C. Clarke. E.Macdonald

S.Nadeem

. D.

Khasa, 2000. Development of Microsatellite Markers for White Spruce ( Picea glauca)

anh related species – © Springer-Verlag 2001

6. T. A. Holton, 1999. Plant Genotyping by Analysis of Microsatellites – Centre for

Plant Conservation Genetics. Southern Cross University, Lisomore, Australia

7. Michel Solignac, Dominique Vautrin, Emmanuelle Baudry, Florence Mougel, Anne

Loiseau and Jean-Marie Cornuet. A Microsatellite-Based Linkage Map of the

Honeybee, Apis mellifera L.- Laboratoire Populations, Génétique et Evolution, Center

National de la Recherche Scientifique, F91198 Gif-sur-Yvette Cedex, France and

Center de Biologie et de Gestion des Populations, F34988 Saint-Gely-Du-Fesc Cedex,

France

8. Pilar De La Rúaa*, Jusé Galián

a, José Serrano

a, Robin F.A. Moritz

b. Genetic

Structure of Balearic Honeybee Polymorphism. Depatarmento de Biología Animal,

62

Facultad de Veterinaria, Apdo.4021, Universidad de Murcia, 30071 Murcia, Spain

bInstitute of Zoology, Martin-Luther-University Halle-Wittenberg, Kroll Witzer Str. 44,

06099 Hawall/Sale, Germany

9. James P. Connell, Sujata Pammi1, Muhammad J. Iqbal, Tim Huizinga and Avutu S.

Reddy*. A High Through-put Procedure for Capturing Microsatelles from Complex

Plant Genomes. Crop Biotechnology Center and Dept. of Soil and Crop Sciences,

1Crop Biotechnology and Dept. of Biochemistry and Biophysics, Texas A&M

University, College Station, Texas 77843- 2123, USA

10. Jean Michel Claverie, Cedric Notredame, 2003. Bioinformatics for Dummies

Wiley Publishing, Inc.

11. Ouellette, 2005. Bioinformatics a practical guide to the analysis of genes and

proteins.3rd

edition, A John Wily And Sons, Inc. Pulication

13. David C, Gilley, David R. Tarpy, Benamin B. Land. Effect of queen quality on

interactions between workers and dueling queens in honeybee ( Apismellifera L.)

colonies. Publlised ooline 30 Otober 2003 © Spriger Verlag 2003

14. Francis L.W. Ratnieks, Laurent Keller. Queen control of egg fertilization the

honey bee. © Springer-Verlag 1998

15. John G.K. Williams, Anne R.Kubelik, Kenneth J.Lavak, J.Atoni Rafal Ski and

Scott V. Tingey. DNA polymorphisms amplified by arbitrary primers are useful as

genetic markers. Central Research and Development Department 1Agricultural

Products Department, E.L.du Pont de Nemours & Co., Inc., Experimental Station,

Wilmington, de 198800, USA

16. Windels, Pieter., Taverniers, Isabel., Van Bockstaele, Erik Ann Depicker., De

Loose, Marc., 2001. Characterisation of the Roundup Ready soybean insert. Eur Food

Res Technol 213:107–112, p:109.

17. Zhen Tao, Xing-Feng Cai, Sheng-Li Yang and Yi Gong. Detection of Exogenous

Genes in Genetically Modified Plants With Multiplex Polymerase Chain Reaction.

Plant Molecular Biology Reporter 19: p. 293.

TRANG WEB

18. http://cals.arizna.edu/pubs/insects/abb/abb/inf2.html

19. http://maarec.cas.psu.edu/bkCD/HBBiology/beebiology.html

63

20. www.cirrisingmage.com/bee_honey.html

21. http://www.beehoo.com/f_the.php?theme=Biology

22. http://www.genome-express.com/AEX_zone/microsat_genotyping.html

23. http://www.ornl.gov/hgmis/medicine/tny.html.

24. http://www.bioinformatics.oupjournals.org/

25. http://www.ftp.genome.washington.edu:80/cgi-bin/RepeatMasker

26. www.ch.embnet.org/CourEMBnet/CHIP02/ppt/embnet_hofmann2.ppt

27. http://www.ncbi.nlm.nch.gov/About/primer/est.html

28. http://www.ihome.cukh.edu.hk/~b400559/arraysoft_prob.html

29. http://www.ibscore.dbs.umt.edu/bio221/downloadtes/Bio221_16.ppt

30. http://www.ncbi.nlm.nih.gov/

31. http://www.ncbi.nlm.nih.gov/BLAST/

32. http://www.ncbi.nlm.nih.gov/Education/BLASTinfo/information3.htm l

33. ftp://ftp.ncbi.nih.gov/blast/executables/

64

PHỤ LỤC

MÃ (Code) CỦA MỘT SỐ ĐOẠN CHƢƠNG TRÌNH ĐÃ ĐƢỢC VIẾT`

TRONG QUÁ TRÌNH XỬ LÝ DỮ LIỆU

1. Script của EST_TRIMMER: thực thi tác vụ phân loại một số dạng mocrosatellite

#!/usr/bin/perl -w

###Program name: est_trimmer.pl

###Author: Thomas Thiel

###Release date: 25/01/01

###Version: 04/09/02

# Check for arguments. If none display syntax #

if (@ARGV == 0) {

open (IN,"<$0");

while (<IN>) {if (/^\#\# (.*)/) {$message .= "$1\n"}};

close (IN);

die $message; };

# Check if help is required #

if ($ARGV[0] =~ /-help/i) {

open (IN,"<$0");

while (<IN>) {if (/^\#\#\#(.*)/) {$message .= "$1\n"}};

close (IN);

die $message; };

# Open FASTA file #

open (IN,"<$ARGV[0]") || die ("\nError: File doesn't exist !\n\n");

# Checking arguments #

$arg = @ARGV;

$arg > 1 || die ("\nError: No arguments determined !\n\n");

for ($i = 1; $i < $arg; $i++) {

if (($amb_n,$amb_win) = ($ARGV[$i] =~ /-amb=(\d+),(\d+)/i)) {

$message .= "$i. Check for ambiguous bases (search for $amb_n

ambiguous bases in a $amb_win bp window).\n"; }

elsif (($tr3_b,$tr3_n,$tr3_win) = ($ARGV[$i] =~ /-

tr3=([ACGT]),(\d+),(\d+)/i)) {

$message .= "$i. Trim 3' end: Remove \"$tr3_b\" tails.";

if ($tr3_win > 0) {$message .= " Check for $tr3_n x $tr3_b in a

$tr3_win bp window.\n"} else {$message .= "\n"}; }

elsif (($tr5_b,$tr5_n,$tr5_win) = ($ARGV[$i] =~ /-

tr5=([ACGT]),(\d+),(\d+)/i)) {

65

$message .= "$i. Trim 5' end: Remove \"$tr5_b\" tails.";

if ($tr5_win > 0) {$message .= " Check for $tr5_n x $tr5_b in a

$tr5_win bp window.\n"} else {$message .= "\n"}; }

elsif (($cut_min,$cut_max) = ($ARGV[$i] =~ /-cut=(\d+),(\d+)/i){

$message .= "$i. Size restrictions: Size cutoff is $cut_min bp.

Restrict sequence size to $cut_max bp.\n"; }

elsif (($file) = ($ARGV[$i] =~ /-id=(.*)/i)) { }

else {die ("\nError: Argument nr. ",++$i," is invalid !\n\n")} };

# Open results & log file#

if ($file) {open (OUT,">$file.results") || die ("\nError: Output file name

not valid !\n\n");open (LOG,">$file.log")}

else {open (OUT,">$ARGV[0].results");open (LOG,">$ARGV[0].log")};

print "\nEST TRIMMER\n===========\n\nPerforming following steps:\n\n";

print LOG "\nLOG FILE OF ALL PERFORMED MODIFICATIONS\n";

print LOG "=======================================\n\n";

print LOG "\nPerforming following steps:\n-----------------------\n\n";

print $message;

print LOG $message;

print LOG "\n\nProcessing steps for each sequence:\n--------------\n";

# core #

$/ = ">";

while (<IN>) {

next unless (($seqname,$seq) = /(.*?)\n(.*)/s);

$seq =~ s/[\d\s>]//g;

$seq =~ s/[^ACGTN]/N/gi; # only "acgtn" characters allowed

$message = '';

$discard = 'nö';

for ($i = 1; $i < $arg; $i++){

if (($amb_n,$amb_win) = ($ARGV[$i] =~ /-amb=(\d+),(\d+)/i)){

&Trim_5_n;

&Trim_3_n; }

elsif (($tr3_b,$tr3_n,$tr3_win) = ($ARGV[$i] =~ /-

tr3=([ACGT]),(\d+),(\d+)/i)){&Trim_3_oligoN }

elsif (($tr5_b,$tr5_n,$tr5_win) = ($ARGV[$i] =~ /-

tr5=([ACGT]),(\d+),(\d+)/i)) {&Trim_5_oligoN }

elsif (($cut_min,$cut_max)=($ARGV[$i]=~/-cut=(\d+),(\d+)/i)){

if ($cut_max < length $seq) {

$seq = substr $seq,0,$cut_max;

$message .= "Restrict sequence size to $cut_max bp.\n" };

if ($cut_min and (length $seq < $cut_min)) {

$message .= "Discard sequence (below $cut_min bp cutoff).\n";

$discard = "yo"; } } };

66

if ($discard eq 'nö') {

$seq = join ("\n",grep($_,split(/(.{70})/,$seq)));

print OUT ">$seqname\n$seq\n" };

if ($message ne '') {print LOG "\n>$seqname\n$message"};};

print "\nDONE\n";

close (IN);

close (OUT);

close (LOG);

# subroutines #

sub Trim_5_n

# trim 5' end until specified window contains less than n ambiguous bases

{$check = '0';

while ((length $seq > $amb_win) and !($check eq '1')) {

$window = substr $seq,0,$amb_win;

if ($window =~ /^(([^N]*N){$amb_n})/i) {

$seq =~ s/^($1N*)//i;

$message .= "Ambiguous sequence at 5' side: $1.\n" }

else {$check = '1'}; };};

sub Trim_3_n

# trim 3' end until specified window contains less than n ambiguous bases

{

$check = '0';

while ((length $seq > $amb_win) and !($check eq '1')) {

$window = substr $seq,-$amb_win;

if ($window =~ /.*((N[^N]*){$amb_n})/i) {

$seq =~ s/(N*$1)$//i;

$message .= "Ambiguous sequence at 3' side: $1.\n" }

else {$check = '1'};};};

sub Trim_5_oligoN

# remove oligoN stretches from 5' side {

$check = '0';

if ($seq =~ s/^($tr5_b+)//i) {$message .= "Remove \"$tr5_b\" tail at 5'

side: $1.\n"};

while (!($check eq '1')) {

if (length $seq > $tr5_win) {$window = substr $seq,0,$tr5_win} else

{$window = $seq};

if ($window =~ /^(.*?($tr5_b){$tr5_n})/i) {

$seq =~ s/^($1$tr5_b*)//i;

$message .= "Remove \"$tr5_b\" stretch at 5' side: $1.\n" }

else {$check = '1'}; }; };

sub Trim_3_oligoN

# remove oligoN stretches from 3'side {

67

$check = '0';

if ($seq =~ s/($tr3_b+)$//i) {$message .= "Remove \"$tr3_b\" tail at 3'

side: $1.\n"};

while (!($check eq '1')) {

if (length $seq > $tr3_win) {$window = substr $seq,-$tr3_win} else

{$window = $seq};

if ($window =~ /.*(($tr3_b){$tr3_n}.*)/i) {

$seq =~ s/($tr3_b*$1)$//i;

$message .= "Remove \"$tr3_b\" stretch at 3' side: $1.\n" }

else {$check = '1'}; } };

2. Script của MISA: thực thi các tác vụ phân loại chọn lọc nguồn EST chứa SSR có

chất lƣợng cho việc thiết kế primer. Script có cú pháp nhƣ sau:

!/usr/bin/perl -w

# Author: Thomas Thiel

# Program name: misa.pl

###Author: Thomas Thiel

###Release date: 14/12/01 (version 1.0)

#§§§§§ DECLARATION §§§§§#

# Check for arguments. If none display syntax #

if (@ARGV == 0) {

open (IN,"<$0");

while (<IN>) {if (/^\#\# (.*)/) {$message .= "$1\n"}};

close (IN); die $message; };

# Check if help is required #

if ($ARGV[0] =~ /-help/i) {

open (IN,"<$0");

while (<IN>) {if (/^\#\#\#(.*)/) {$message .= "$1\n"}};

close (IN);

die $message; };

# Open FASTA file #

open (IN,"<$ARGV[0]") || die ("\nError: FASTA file doesn't exist !\n\n");

open (OUT,">$ARGV[0].misa");

print OUT "ID\tSSR nr.\tSSR type\tSSR\tsize\tstart\tend\n";

# Reading arguments #

open (SPECS,"misa.ini") || die ("\nError: Specifications file doesn't

exist !\n\n");

my %typrep;

my $amb = 0;

while (<SPECS>){

%typrep = $1 =~ /(\d+)/gi if (/^def\S*\s+(.*)/i);

68

if (/^int\S*\s+(\d+)/i) {$amb = $1}};

my @typ = sort { $a <=> $b } keys %typrep;

#§§§§§ CORE §§§§§#

$/ = ">";

my $max_repeats = 1; #count repeats

my $min_repeats = 1000; #count repeats

my (%count_motif,%count_class); #count

my ($number_sequences,$size_sequences,%ssr_containing_seqs); #stores number

and size of all sequences examined

my $ssr_in_compound = 0;

my ($id,$seq);

while (<IN>) {

next unless (($id,$seq) = /(.*?)\n(.*)/s);

my ($nr,%start,@order,%end,%motif,%repeats); # store info of all SSRs

from each sequence

$seq =~ s/[\d\s>]//g; #remove digits, spaces, line breaks,...

$id =~ s/^\s*//g; $id =~ s/\s*$//g;$id =~ s/\s/_/g; #replace whitespace

with "_"

$number_sequences++;

$size_sequences += length $seq;

for ($i=0; $i < scalar(@typ); $i++) #check each motif class {

my $motiflen = $typ[$i];

my $minreps = $typrep{$typ[$i]} - 1;

if ($min_repeats > $typrep{$typ[$i]}) {$min_repeats =

$typrep{$typ[$i]}}; #count repeats

my $search = "(([acgt]{$motiflen})\\2{$minreps,})";

while ( $seq =~ /$search/ig ) #scan whole sequence for that class {

my $motif = uc $2;

my $redundant; #reject false type motifs [e.g. (TT)6 or (ACAC)5]

for ($j = $motiflen - 1; $j > 0; $j--) {

my $redmotif = "([ACGT]{$j})\\1{".($motiflen/$j-1)."}";

$redundant = 1 if ( $motif =~ /$redmotif/ ) };

next if $redundant;

$motif{++$nr} = $motif;

my $ssr = uc $1;

$repeats{$nr} = length($ssr) / $motiflen;

$end{$nr} = pos($seq);

$start{$nr} = $end{$nr} - length($ssr) + 1;

# count repeats

$count_motifs{$motif{$nr}}++; #counts occurrence of individual motifs

$motif{$nr}->{$repeats{$nr}}++; #counts occurrence of specific SSR in

its appearing repeat

69

$count_class{$typ[$i]}++; #counts occurrence in each motif class

if($max_repeats<$repeats{$nr}){$max_repeats=$repeats{$nr}};};};

next if (!$nr); #no SSRs

$ssr_containing_seqs{$nr}++;

@order = sort { $start{$a} <=> $start{$b} } keys %start; #put SSRs in

right order

$i = 0;

my $count_seq; #counts

my ($start,$end,$ssrseq,$ssrtype,$size);

while ($i < $nr) {

my $space = $amb + 1;

if (!$order[$i+1]) #last or only SSR{

$count_seq++;

my $motiflen = length ($motif{$order[$i]});

$ssrtype = "p".$motiflen;

$ssrseq = "($motif{$order[$i]})$repeats{$order[$i]}";

$start = $start{$order[$i]}; $end = $end{$order[$i++]};

next };

if (($start{$order[$i+1]} - $end{$order[$i]}) > $space) {

$count_seq++;

my $motiflen = length ($motif{$order[$i]});

$ssrtype = "p".$motiflen;

$ssrseq = "($motif{$order[$i]})$repeats{$order[$i]}";

$start = $start{$order[$i]}; $end = $end{$order[$i++]};

next};

my ($interssr);

if (($start{$order[$i+1]} - $end{$order[$i]}) < 1) {

$count_seq++; $ssr_in_compound++;

$ssrtype = 'c*';

$ssrseq =

"($motif{$order[$i]})$repeats{$order[$i]}($motif{$order[$i+1]})$repeats{$or

der[$i+1]}*";

$start = $start{$order[$i]}; $end = $end{$order[$i+1]} }

else {

$count_seq++; $ssr_in_compound++;

$interssr = lc substr($seq,$end{$order[$i]},($start{$order[$i+1]} -

$end{$order[$i]}) - 1);

$ssrtype = 'c';

$ssrseq =

"($motif{$order[$i]})$repeats{$order[$i]}$interssr($motif{$order[$i+1]})$re

peats{$order[$i+1]}";

$start = $start{$order[$i]}; $end = $end{$order[$i+1]};

70

#$space -= length $interssr };

while ($order[++$i + 1] and (($start{$order[$i+1]} - $end{$order[$i]})

<= $space)) {

if (($start{$order[$i+1]} - $end{$order[$i]}) < 1){

$ssr_in_compound++;

$ssrseq .= "($motif{$order[$i+1]})$repeats{$order[$i+1]}*";

$ssrtype = 'c*';

$end = $end{$order[$i+1]} }

else{

$ssr_in_compound++;

$interssr = lc substr($seq,$end{$order[$i]},($start{$order[$i+1]} -

$end{$order[$i]}) - 1);

$ssrseq .= "$interssr($motif{$order[$i+1]})$repeats{$order[$i+1]}";

$end = $end{$order[$i+1]};

#$space -= length $interssr } };

$i++; }

continue {

print OUT "$id\t$count_seq\t$ssrtype\t$ssrseq\t",($end - $start +

1),"\t$start\t$end\n" }; };

close (OUT);

open (OUT,">$ARGV[0].statistics");

#§§§§§ INFO §§§§§#

#§§§ Specifications §§§#

print OUT "Specifications\n==============\n\nSequence source file:

\"$ARGV[0]\"\n\nDefinement of microsatellites (unit size / minimum number

of repeats):\n";

for ($i = 0; $i < scalar (@typ); $i++) {print OUT

"($typ[$i]/$typrep{$typ[$i]}) "};print OUT "\n";

if ($amb > 0) {print OUT "\nMaximal number of bases interrupting 2 SSRs in

a compound microsatellite: $amb\n"};

print OUT "\n\n\n";

#§§§ OCCURRENCE OF SSRs §§§#

#small calculations

my @ssr_containing_seqs = values %ssr_containing_seqs;

my $ssr_containing_seqs = 0;

for ($i = 0; $i < scalar (@ssr_containing_seqs); $i++)

{$ssr_containing_seqs += $ssr_containing_seqs[$i]};

my @count_motifs = sort {length ($a) <=> length ($b) || $a cmp $b }

keys %count_motifs;

my @count_class = sort { $a <=> $b } keys %count_class;

for ($i = 0; $i < scalar (@count_class); $i++) {$total +=

$count_class{$count_class[$i]}};

71

#§§§ Overview §§§#

print OUT "RESULTS OF MICROSATELLITE

SEARCH\n================================\n\n";

print OUT "Total number of sequences examined:

$number_sequences\n";

print OUT "Total size of examined sequences (bp):

$size_sequences\n";

print OUT "Total number of identified SSRs: $total\n";

print OUT "Number of SSR containing sequences:

$ssr_containing_seqs\n";

print OUT "Number of sequences containing more than 1 SSR:

",$ssr_containing_seqs - ($ssr_containing_seqs{1} || 0),"\n";

print OUT "Number of SSRs present in compound formation:

$ssr_in_compound\n\n\n";

#§§§ Frequency of SSR classes §§§#

print OUT "Distribution to different repeat type classes\n-----------------

----------------------------\n\n";

print OUT "Unit size\tNumber of SSRs\n";

my $total = undef;

for ($i = 0; $i < scalar (@count_class); $i++) {print OUT

"$count_class[$i]\t$count_class{$count_class[$i]}\n"};

print OUT "\n";

#§§§ Frequency of SSRs: per motif and number of repeats §§§#

print OUT "Frequency of identified SSR motifs\n----------------------------

------\n\nRepeats";

for ($i = $min_repeats;$i <= $max_repeats; $i++) {print OUT "\t$i"};

print OUT "\ttotal\n";

for ($i = 0; $i < scalar (@count_motifs); $i++) {

my $typ = length ($count_motifs[$i]);

print OUT $count_motifs[$i];

for ($j = $min_repeats; $j <= $max_repeats; $j++) {

if ($j < $typrep{$typ}) {print OUT "\t-";next};

if ($count_motifs[$i]->{$j}) {print OUT "\t$count_motifs[$i]->{$j}"}

else {print OUT "\t"}; };

print OUT "\t$count_motifs{$count_motifs[$i]}\n"; };

print OUT "\n";

#§§§ Frequency of SSRs: summarizing redundant and reverse motifs §§§#

# Eliminates %count_motifs !

print OUT "Frequency of classified repeat types (considering sequence

complementary)\n-----------------------------------------------------------

--------------\n\nRepeats";

my (%red_rev,@red_rev); # groups

72

for ($i = 0; $i < scalar (@count_motifs); $i++) {

next if ($count_motifs{$count_motifs[$i]} eq 'X');

my (%group,@group,$red_rev); # store redundant/reverse motifs

my $reverse_motif = $actual_motif = $actual_motif_a = $count_motifs[$i];

$reverse_motif =~ tr/ACGT/TGCA/;

my $reverse_motif_a = $reverse_motif;

for ($j = 0; $j < length ($count_motifs[$i]); $j++){

if ($count_motifs{$actual_motif}) {$group{$actual_motif} = "1";

$count_motifs{$actual_motif}='X'};

if ($count_motifs{$reverse_motif}) {$group{$reverse_motif} = "1";

$count_motifs{$reverse_motif}='X'};

$actual_motif =~ s/(.)(.*)/$2$1/;

$reverse_motif =~ s/(.)(.*)/$2$1/;

$actual_motif_a = $actual_motif if ($actual_motif lt $actual_motif_a);

$reverse_motif_a = $reverse_motif if ($reverse_motif lt

$reverse_motif_a) };

if ($actual_motif_a lt $reverse_motif_a) {$red_rev =

"$actual_motif_a/$reverse_motif_a"}

else {$red_rev = "$reverse_motif_a/$actual_motif_a"}; # group name

$red_rev{$red_rev}++;

@group = keys %group;

for ($j = 0; $j < scalar (@group); $j++) {

for ($k = $min_repeats; $k <= $max_repeats; $k++) {

if ($group[$j]->{$k}) {$red_rev->{"total"} += $group[$j]-

>{$k};$red_rev->{$k} += $group[$j]->{$k}} } }};

for ($i = $min_repeats; $i <= $max_repeats; $i++) {print OUT "\t$i"};

print OUT "\ttotal\n";

@red_rev = sort {length ($a) <=> length ($b) || $a cmp $b } keys %red_rev;

for ($i = 0; $i < scalar (@red_rev); $i++) {

my $typ = (length ($red_rev[$i])-1)/2;

print OUT $red_rev[$i];

for ($j = $min_repeats; $j <= $max_repeats; $j++) {

if ($j < $typrep{$typ}) {print OUT "\t-";next};

if ($red_rev[$i]->{$j}) {print OUT "\t",$red_rev[$i]->{$j}}

else {print OUT "\t"} };

print OUT "\t",$red_rev[$i]->{"total"},"\n";};

3 Các script trong việc thực thi tác vụ thiết kế primer

● 1_ssr_repeat_finder:

#!/usr/bin/perl -w

73

# tim kiem SSR trong EST, tach trinh tu SSR ra va trinh tu bao ton de phan

tich xa hon

# Input: sequence<date>.txt

# CheckedIDs.txt

# Output: new_ids<date>.txt

# ssrout<date>.txt

# labdbout<date>.txt

###############################################

# thay doi nhung thong so nay khi thuc thi!!!!!!!!

###############################################

$datename = '170404'; # ten thu muc phai o dang ngay va cho tat ca cac file

du lieu khac

$runtype = 1; # 1 = genbank fasta, 0 = local (fasta header differences)

##############################################

# khong thay doi bat ky dieu gi o phan nay

##############################################

$seqcount = 0;

$ssr_count = 0;

@ssr_label = qw(a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab

ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az);

# thiet lap vung bao ton o day

$flank_length = 150; # i.e. 150 bp

# thiet lap chieu dai toi thieu của SSR

$min_pattern_length = 12; # 12 bp

# mo file chua trinh tu input – dinh dang fasta ma so truy cap

open (SEQFILE, "../$datename/sequence$datename.txt") || die "file not found:

$!";

# mo file out put cho trinh tu ids

open (IDFILE, ">>../$datename/new_ids$datename.txt") || die "couldn't

create file";

# mo file output ket qua SSR

open (SSROUTFILE, ">>../$datename/ssrout$datename.txt") || die "couldn't

create file";

#mo file output cho toan bo output dua vao labdb

open (LABDBTXT, ">>../$datename/labdbout$datename.txt") || die "couldn't

create file";

# doc file da chua Ids truoc

$CheckedIDs = `cat ../$datename/CheckedIDs.txt`;

# phan tich file trinh tu va tien trinh

if ($runtype == 1) {

while (defined ($line = <SEQFILE>)) {

chomp $line;

74

if ($line =~ /^>/) {

if (defined ($Seq)) {

#kiem tra genbank neu id co truoc

if ($CheckedIDs !~ /$SeqHead[3]/) {

&SSRSearch;

print "new seq\n";

} else {

print "old seq\n";} }

$seqcount++;

print $seqcount;

$HeadLine = $line;

undef $Seq;

@SeqHead = split(/\|/,$HeadLine);

print IDFILE "$SeqHead[3]\t$SeqHead[4]\n";

} else {

$Seq = "$Seq" . "$line"; } }

if (defined ($Seq)) {

# kiem tra genbank neu id co da co

if ($CheckedIDs !~ /$SeqHead[3]/) {

&SSRSearch;

print "new seq\n";

} else {

print "old seq\n";} }} elsif ($runtype == 2) {

while (defined ($line = <SEQFILE>)) {

chomp ($line);

@LineIn = split(/\t/, $line);

$SeqHead[3] = $LineIn[0];

print $SeqHead[3];

$Seq = $LineIn[1];

if (defined ($Seq)) {

&SSRSearch; }

$seqcount++;

print $seqcount;

if ( ($seqcount%5) == 0 ) { print "\n";

} else { print "\t"; }

undef $Seq;

@SeqHead = split(/\|/,$HeadLine) }}

elsif ($runtype == 3) {

while (defined ($line = <SEQFILE>)) {

chomp ($line);

if ($line =~ /^>/) {

if (defined ($Seq)) {

75

&SSRSearch; }

$seqcount++;

print $seqcount;

if ( ($seqcount%5) == 0 ) {

print "\n"; }

else {

print "\t";}

undef $Seq;

$HeadLine = $line;

@templine1 = split(/>/,$HeadLine);

@templine2 = split(/\./, $templine1[1]);

$SeqHead[3] = $templine2[0]."_".$templine2[3];

print IDFILE "$SeqHead[3]\n"; }

else {

$Seq = "$Seq" . "$line";} }

if (defined ($Seq)) {

&SSRSearch; }}

close (SEQFILE);

close (IDFILE);

close (SSROUTFILE);

close (LABDBTXT);

print "Number of sequences in input file = $seqcount \n";

print "Number of Repeats found = $ssr_count \n";

exit 0;

#############################################

# thuongtrinhcon

sub SSRSearch() {print "*";

$suffix = -1;

while ( $Seq =~ /(([ATGC]{2,})\2{3,})/gi ) {

print "+";

$fullmatch = $1;

$minmatch = $2;

# kiem tra tuong hop toi thieu cua SSR: di-nt 6 repeats, tri-nt 4 repeats,

tetra-nt 4

# kiem tra chieu dai SSR lon hon tong chieu dai toi thieu dang tuong hop

# loai bo duoi poly - AAAAAAA, TTTTTTTT, ...

if ( (( $length_sub = length($fullmatch)) >= $min_pattern_length )

&& !( $fullmatch =~ /([ATGC])\1{8,}/ ) ) {

print "-";

$ssr_count++;

$suffix++;

$Accession = "$SeqHead[3]" . "$ssr_label[$suffix]";

76

print SSROUTFILE "$Accession\t$fullmatch\t$minmatch\t";

print LABDBTXT "$SeqHead[3]\t$Accession\t$fullmatch\t$minmatch\t";

$pos2 = index($Seq,$fullmatch);

$pos3 = $pos2 + $length_sub;

if ($pos2 < $flank_length) {

$pos1 = 0;

} else {

$pos1 = $pos2 - $flank_length; }

if ( ( ( $max = length($Seq)) - $pos3 ) < $flank_length ) {

$pos4 = $max;

} else {

$pos4 = $pos3 + $flank_length;}

$seqleft = substr($Seq,$pos1,$pos2-$pos1);

$seqcenter = substr($Seq,$pos2,$pos3-$pos2);

$seqright = substr($Seq,$pos3,$pos4-$pos3);

print SSROUTFILE $seqleft, "[", $seqcenter,"]",$seqright,"\n";

print LABDBTXT $pos2,",",$length_sub,"\t",$seqleft, "[",

$seqcenter,"]",$seqright,"\n"; } }

print "\n";}

● 2_ssr_primer_designer

#!/usr/bin/perl -w

# thiet ke primer khuech dai doan dich SSR

# Input: ssrout<date>.txt

# Output: raw_primer3<date>.out

# primer_results<date>.txt

############################################

# thay doi nhung thong so nay khi chay!!!!!!!!

############################################

$datename = '170404'; ten thu muc la dang so va nhu the voi cac file khac

$primer3app = 'D:\\170404\\primer3'; # duong dan den cau lenh primer3

#############################################

#khong thay doi nhung nhung gi duoi day

#############################################

# mo file output ssr results

open (SSRINFILE, "../$datename/ssrout$datename.txt") || die "couldn't open

file";

open (RAWPRIMER, ">../$datename/raw_primer3$datename.out") || die "couldn't

open file: $!";

open (PRIMEROUT, ">../$datename/primer_results$datename.txt") || die

"couldn't open file: $!";

$counter = 0;

77

while (defined($line = <SSRINFILE>)) {

chomp ($line);

@columns = split(/\t/,$line);

@seq = split(/\[|\]/,$columns[3]);

$length_left = length($seq[0]);

$length_mask = length($seq[1]);

$length_right = length($seq[2]);

$t1 = $length_left+1;

$t2 = $length_mask;

open (PRIMERIN, ">../$datename/primerin.txt") || die "couldn't open file:

$!";

print PRIMERIN "PRIMER_SEQUENCE_ID=",$columns[1],"\n";

print PRIMERIN "SEQUENCE=",$seq[0],$seq[1],$seq[2],"\n";

print PRIMERIN "TARGET=", $t1, ",", $t2, "\n";

print PRIMERIN "PRIMER_PRODUCT_SIZE_RANGE=80-160 80-240 80-300\n";

print PRIMERIN "PRIMER_OPT_SIZE=24\n";

print PRIMERIN "PRIMER_MIN_SIZE=20\n";

print PRIMERIN "PRIMER_MAX_SIZE=28\n";

print PRIMERIN "PRIMER_OPT_TM=63\n";

print PRIMERIN "PRIMER_MIN_TM=60\n";

print PRIMERIN "PRIMER_MAX_TM=65\n";

print PRIMERIN "PRIMER_MAX_DIFF_TM=1\n";

print PRIMERIN "=\n";

close (PRIMERIN);

# $primer3 = `../devel/primer/primer3_0_9_test/src/primer3_core

< ../$datename/primerin.txt`;

$primer3 = `$primer3app < ../$datename/primerin.txt`;

print RAWPRIMER "######## $columns[1] #########\n";

print RAWPRIMER $primer3, "\n";

@prime_out = split(/\n/, $primer3);

foreach $i (0..$#prime_out) {

($varname,$varvalue) = split(/=/, $prime_out[$i]);

$primehash{$varname} = $varvalue; }

if ($primehash{'PRIMER_LEFT_SEQUENCE'}) {

$counter++;

print PRIMEROUT "$columns[0]\t$columns[1]\t$columns[2]";

print PRIMEROUT "\t$seq[0]$seq[1]$seq[2]";

print PRIMEROUT "\t", $primehash{'PRIMER_LEFT_SEQUENCE'};

print PRIMEROUT "\t", $primehash{'PRIMER_LEFT_TM'};

print PRIMEROUT "\t", $primehash{'PRIMER_RIGHT_SEQUENCE'};

print PRIMEROUT "\t", $primehash{'PRIMER_RIGHT_TM'};

print PRIMEROUT "\t", $primehash{'PRIMER_PRODUCT_SIZE'};

78

print PRIMEROUT "\n"; }

undef %primehash;}

close (PRIMEROUT);

close (SSRINFILE);

close (RAWPRIMER);

print "repeats primed: ", $counter, "\n";

exit 0;

● 3_ssr_primer_rep_check

#!/usr/bin/perl -w

# chon loc va loai bo nhung primer co do phuc tap thap

# Input: primer_results<date>.txt

# Output: rescreened<date>.txt

############################################

# thay doi cac tho so nay khi chay!!!!!!!!

############################################

$datename = '170404'; # thu muc chinh phai o dang so va cac file khac

############################################

#khong thay doi nhung gi duoi day

############################################

open (OUTFILE, ">rescreened$datename.txt");

$good = 0;

$bad = 0;

$temp = `bin primer_results$datename.txt`;

@temp1 = split(/\n/, $temp);

foreach $i (0..$#temp1) {

@temp2 = split(/\t/, $temp1[$i]);

print $temp2[0],"\t",$temp2[1],"\t",$temp2[2],"\t",$temp2[3];

print

"\t",$temp2[4],"\t",$temp2[5],"\t",$temp2[6],"\t",$temp2[7],"\t",$temp2[8],

"\t";

if (( $temp2[4] =~ /(([ATGC]{2,3})\2{3,})/gi ) || ( $temp2[6] =~

/(([ATGC]{2,3})\2{3,})/gi )) {

print "bad\n";

$bad++;

} else {

print "good\n";

$good++;

print OUTFILE

$temp2[0],"\t",$temp2[1],"\t",$temp2[2],"\t",$temp2[3],"\t";

79

print OUTFILE

$temp2[4],"\t",$temp2[5],"\t",$temp2[6],"\t",$temp2[7],"\t",$temp2[8],"\n";

}}

print "good: $good\nbad: $bad\n";

close (OUTFILE);

exit(0);

● 4_ssr_primer_blast

#!/usr/bin/perl -w

# so sanh nhung trinh tu SSR da thiet ke primer

# Input: rescreened<date>.txt

# Output: blastout<date>.txt

# fullblastoutput<date>.txt

#############################################

#thay doi nhung thong so khi thuc thi!!!!!!!!

#############################################

$datename = '170404'; # ten thu muc va phan sau cung cua cac file

$blastapp = 'D:\\170404\\blastall'; # duong dan den nhung cau lenh blastall

$blastdbdir = 'D:\\170404\\db'; #duong dan den thu muc chua du lieu blast

$blastdbname = 'AllPrimers.nt'; # ten nhung du lieu blast su dung

$formatdbapp = 'D:\\170404\\formatdb'; #duong dan den cau lenh formatdb

############################################

# khong thay doi nhung gi ben duoi

###########################################

open (PRIMERSIN, "../$datename/rescreened$datename.txt") || die;

open (BLASTOUTFILE, ">../$datename/blastout$datename.txt") || die;

open (FULLBLASTOUT, ">../$datename/fullblastoutput$datename.txt") || die;

$counter = 0;

$b0hit = 0;

while (defined($line=<PRIMERSIN>)) {

chomp ($line);

@columns = split(/\t/,$line);

$Accession = $columns[0];

$sequence = $columns[3];

$forward = $columns[4];

$reverse = $columns[6];

$counter++;

print $counter, "\n";

print BLASTOUTFILE $Accession, "\t", $columns[1], "\t", $columns[2];

print BLASTOUTFILE "\t", $sequence, "\t", $forward, "\t", $columns[5],

"\t";

print BLASTOUTFILE $reverse, "\t", $columns[7], "\t", $columns[8], "\t";

&BlastIt;}

80

print "Blasted Sequences= ",$counter,"\n";

print "Blast NON-Hits= ",$b0hit,"\n";

close (PRIMERSIN);

close (BLASTOUTFILE);

close (FULLBLASTOUT);

exit 0;

sub BlastIt() {

open (TMPSEQFILE, ">../$datename/repeats/$Accession.fasta");

print TMPSEQFILE "> ",$Accession,"\n",$sequence,"\n";

close (TMPSEQFILE);

# $blastout = `blastall -p blastn -d db/AllPrimers.nt -e 0.01 -

i ../$datename/repeats/$Accession.fasta`;

$blastout = `$blastapp -p blastn -d $blastdbdir/$blastdbname -e 0.01

-i ../$datename/repeats/$Accession.fasta`;

print FULLBLASTOUT

"XXXXX\t",$Accession,"\tXXXXXXXXXXXXXXXXXXXXXXXXX\n\n";

print FULLBLASTOUT $blastout;

&ParseBlast;}

sub DBup() {

# open (BLASTDBFASTA, ">>../blast/db/AllPrimers.nt");

open (BLASTDBFASTA, ">>$blastdbdir/$blastdbname");

print BLASTDBFASTA "> ",$Accession,"_f\n",$forward,"\n";

print BLASTDBFASTA "> ",$Accession,"_r\n",$reverse,"\n";

close (BLASTDBFASTA);

# $formatdbstatus = system("formatdb -i db/AllPrimers.nt -p F -o T");

$formatdbstatus = system("$formatdbapp -i $blastdbdir/$blastdbname -p

F -o T");}

sub ParseBlast() {

# tach nhung output blast output vao mot danh sach

@blastrecs = split(/\n\n/, $blastout);

if ($blastrecs[5] =~ /Sequence/) {

@blastmatch = split(/\n/, $blastrecs[6]);

print BLASTOUTFILE $#blastmatch-1, "\t";

for $entry (0 .. $#blastmatch) {

($name,$score, $E) = split(/[ ]+ /, $blastmatch[$entry]);

print $name,"\t",$score,"\t",$E,"\n";

print BLASTOUTFILE "\t",$name,"\t",$score,"\t",$E; }

} else {

print BLASTOUTFILE "0\t";

$b0hit++;

print "No Hits found\n";

print BLASTOUTFILE "\tnone\tnull\tnull";

81

&DBup; }

print BLASTOUTFILE "\n";}

● 5_ssr_order_filter

#!/usr/bin/perl -w

# tao file chua chi nhung SSR co primer duy nhat

# Input: blastout<date>.txt

# Output: filter<date>.txt

################################################

#thay doi cac thong so duoi day khi chay!!!!!!!!

################################################

$datename='170404';# ten thu mục chinh dang so va phan cuoi cua cac file

################################################

# khong thay doi nhung gi ben duoi

################################################

open (OUTFILE, ">filter$datename.txt");

$infile = `ten blastout$datename.txt`;

$count = 0;

@temp1 = split(/\n/, $infile);

foreach $f (0..$#temp1) {

@temp2 = split(/\t/, $temp1[$f]);

if ($temp2[11] eq 'none') {

print OUTFILE $temp2[0],"\t",$temp2[1],"\t";

print OUTFILE $temp2[2],"\t",$temp2[3],"\t";

print OUTFILE $temp2[4],"\t",$temp2[5],"\t";

print OUTFILE $temp2[6],"\t",$temp2[7],"\t";

print OUTFILE $temp2[8],"\n";

print $temp2[0],"\t",$temp2[10],"\t",$temp2[11],"\n";

$count++;}}

print "non-hits: ",$count,"\n";

close (OUTFILE);

exit (0);

● 6_ssr_order_formatter

#!/usr/bin/perl -w

# tao mot file chi chua nhung SSR co primer duy nhat-co thong tin can

thiet cho phan cap primer

# Input: blastout<date>.txt

# Output: order<date>.txt

###################################################

# thay doi cac thong so ben duoi khi chay!!!!!!!!

82

###################################################

$datename = '170404'; # ten thu muc chin va phan cuoi cac file

###################################################

# khong thay doi nhung gi duoi day

###################################################

open (OUTFILE, ">order$datename.txt");

$infile = `nin blastout$datename.txt`;

$count = 0;

@temp1 = split(/\n/, $infile);

foreach $f (0..$#temp1) {

@temp2 = split(/\t/, $temp1[$f]);

if ($temp2[11] eq 'none') {

print OUTFILE $temp2[0],"\t";

print OUTFILE $temp2[4],"\t",$temp2[5],"\t";

print OUTFILE $temp2[6],"\t",$temp2[7],"\t";

print OUTFILE $temp2[8],"\n";

print $temp2[0],"\t",$temp2[10],"\t",$temp2[11],"\n";

$count++;}}

print "non-hits: ",$count,"\n";

close (OUTFILE);

exit (0);

83