- 48 - MỘT SỐPHƯƠNGPHÁPTRONGSẮPXẾPCHUỖISINHHỌCSinh viên: Vũ Hồng Khiêm MSV: 0121955 Email: vuhongkhiem@gmail.com Người hướng dẫn: ThS. Trần Thị Minh Châu NCS. Lê Sĩ Vinh 1. Giới thiệu Thế kỉ 21 sẽ là thế kỉ của Tin học và Sinh học. Hai ngành khoa học đang ngày càng khẳng định vai trò khoa học mũi nhọn của mình trong sự phát triển chung của nhân loại.Trên thực tế, sự ra đời của Tin sinh học, một ngành mới kết hợp giữa Tin Học và Sinh học, như là một qui luật tất yếu của sự phát triển. Tin SinhHọc đã được sự hưởng ứng tham gia củ a đông đảo những nhà nghiên cứu trên toàn thế giới. Bản thân tôi, một người lính mới, kiến thức và kinh nghiệm chưa nhiều, cũng mong muốn sẽ được đóng góp một phần nhỏ bé nào đó trong công cuộc khai phá miền đất mới mẻ này. Một trong những bài toán điển hình trong Tin SinhHọc là bài toán sắpxếp các chuỗisinhhọc thẳng hàng. Sẵpxếpchuỗisinhhọc không những cho chúng ta thấy được m ối quan hệ tiến hoá giữa các loài sinh vật mà còn được áp dụng trong một số bài toán khác như chuẩn đoán cấu trúc bậc hai của protein… 2. Khái niệm/kiến thức cơ bản Một trở ngại đầu tiên đối với người làm Tin SinhHọc đó là phải hiểu rõ về các khái niệm được coi là cốt tử trongsinhhọc phân tử, một nhánh của Sinhhọc nghiên cứu vật chất trong thế giới vi mô. Việc tìm hiểu các khái niệm này phục vụ cho nghiên cứu Tin SinhHọc chủ yếu tập chung vào cấu trúc không gian của chúng. Trong khoá luận của mình, tôi cũng đã tập chung nêu ra các khái niệm về DNA , RNA , và protein, đây là những khái niệm quan trọng nhất cần phải xác định, phần lớn các vấn đề trong Tin sinhhọc chỉ tập chung quanh các khái niệm trên. Chuỗisinhhọc thực chất là biểu diễn tuyến tính của các đại phân tử sinhhọc DNA, RNA hay protein. Chúng được biểu diễn bằng một dãy liên tiếp có thứ tự các chữ cái đại diện. Ví dụ về các chuỗisinhhọc biểu diễn 1 đ oạn trongchuỗi axid amin của protein ” RDILSVKNAGI”. Bài toán sắpxếpchuỗisinhhọc thực chất là tìm một giả thuyết phù hợp nhất về mối quan hệ tiến hoá của hai hay nhiều chuỗisinhhọc tương ứng. Do bản chất số tự nhiên của các chuỗisinhhọc cũng như kích thước các chuỗi có thể lên tới hàng triệu đơn vị, chính vì vậy việc thực hiện sắpxếp bằng các phươngpháp thông thường là hoàn toàn không th ể, chúng ta cần phải áp dụng những thuật toán cũng như kĩ thuật trong Tin học để có thể giảm được lượng tính toán cần thiết. Cụ thể trong khoá luận của tôi đã sử dụng các phươngpháp qui hoạch động kết hợp với phươngpháp chia để trị nhằm phục đích đưa ra những phương án tối ưu nhất có thể. 3. Sắpxếp 2 hay nhiều chuỗisinhhọc 3.1. Sắpxếp 2 chuỗiSắpxếp 2 chuỗi là bài toán hạt nhân, quan trọng nhất trongsắpxếpchuỗisinh học. Đặc tả bài toán có dạng như sau: Một sắpxếp thực hiện trên 2 chuỗi là việc bố trí thêm các khoảng trống (biểu diễn bởi dấu “-“) vào các vị trí nhất định nào đó trên mỗi chuỗi sao cho thoả mãn 2 điều kiện: Thứ tự các phần tử trên 2 chuỗi không thay đổi. 2 chuỗ i đích thể hiện được “mức độ tương đồng” lớn nhất. Mức độ tương đồng được phản ánh thông qua số lượng các cặp giống nhau ở cùng 1 vị trí nhất định trên 2 chuỗi. Nếu sắpxếp đưa ra được nhiều cặp giống nhau nhất thì sắpxếp đó là tối ưu mà ta chúng ta phải sử dụng thuật toán để tìm ra nó. Do các đặc thù về tiêu chuẩ n của sắpxếp phải thỏa mãn, người ta cũng phân sắpxếpchuỗi thành 2 loại khác nhau. Để có thể giải quyết bài toán sắpxếpchuỗisinh học, trước hết tôi áp dụng phươngpháp mô hình hóa để đưa vấn đề về việc tìm đường đi trongtrong đồ thị định hướng. Sau đó sẽ áp dụng phươngpháp qui hoạch động để giải quyết bài toán tìm đường đi nói trên. Nộ i dung thuật toán có thể được mô tả theo các bước sau: - 49 - Khởi tạo ma trận tìm đường đi tối ưu. Dựa trên các qui tắc gán trọng số/trừ điểm khoảng trắng ta sẽ tính toán các điểm còn lại trong ma trận cho tới khi lấp đầy ma trận. Tìm lại đường đi ngắn nhất bằng kĩ thuật back-tracking. Vấn đề quan trọng nhất đối với bài toán sắpxếp 2 chuỗi đó là cách đ ánh giá của chúng ta đối với các tham số cho hàm trừ điểm các khoảng trống này, một công việc mang nhiều ý nghĩa sinhhọc xong lại ảnh hưởng đến kết quả. Ngoài ra, việc sử dụng ma trận trọngsố cũng có ý nghĩa rất quan trọng đến việc kết quả thực thi của bài toán. 3.2. Bài toán sắpxếp nhiều chuỗiSắpxếp nhiều chuỗi là sắpxếpchuỗi áp dụng cho nhiều chuỗisinhhọc khác nhau, nó có rất nhiều ứng dụng trong việc xây dựng cây phả hệ giữa nhiều loài sinh vật và trong vấn đề chuẩn đoán cấu trúc bậc cao của protein. Về mặt lý thuyết ta hoàn toàn có thể áp dụng kĩ thuật lập trình động như đã làm với trường hợp 2 chuỗi. Tuy vậy, phươngpháp trên không thể đáp ứng được yêu cầu về thời gian thực thi, ngay cả khi số lượng chuỗi cần sắpxếp chỉ có 3 hay 4 chuỗi. Chính vì vậy, người ta đã phải áp dụng nhiều kĩ thuật khác nhau nhằm tối ưu hóa thời gian tính toán. Trong phần này, tôi đã tìm hiểu cách tiếp cập phả hệ, cụ thể là sử dụng phươngpháp ClustalW, đây là một phươngpháp được sử dụng rộ ng rãi và có thể nói là cách tiếp cận hiệu quả nhất cho tới thời điểm này. ClustalW đã và đang được cải tiến hơn nữa bởi rất nhiều nhóm nghiên cứu khác nhau. Nội dung cơ bản của cách tiếp cận phả hệ đó là việc xây dựng cây phát sinh loài, hay còn gọi là cây chỉ dẫn. Cây này mô tả một cách trực quan mối quan hệ tiến hóa giữa các chuỗi được sắp xếp. Sau khi đã có cây phát sinh loài, sắpxếp đa chuỗi được xây dựng dựa trên việc nhóm các chuỗi theo thứ tự độ tương đồng lớn nhất tại thời điểm đó. Như vậy, các chuỗi sẽ đựợc lần lượt thêm vào sắpxếp cho đến khi kết thúc quá trình. 4. Kết luận và kết quả thu được Qua thời gian nghiên cứu của mình, tôi cũng đã học hỏi được rất nhiều điều lý thú từ lĩnh vực khoa học mới mẻ này, đặc biệt là cách thức áp dụng các thuật toán Tin học vào việc giải quyết một vấn đề thực tế trong các lĩnh vực khác. Tôi đã nghiên cứu và cài đặt thành công thuật toán sắpxếp loại 1 áp dụng cho 2 chuỗisinhhọc khác nhau. Kết quả thu được có độ chính xác cao và có thể áp dụng cho nhiều bài toán nghiên cứu về sau. Đối với bài toán sắpxếp nhiều chuỗi, tôi đã tham khảo và làm thực nghiệm với phần mềm ClustalW do Viện nghiên cứu Tin SinhHọc Châu Âu phát triển. Kết quả thực nghiệm trên những bộ dữ liệu rất lớn, với lượng tính toán khổng lồ đã chứng minh tính ưu việt cao của phươngpháp này. 5. Kết luận Trong thời gian làm khóa luận này, tôi tập chung phần lớn thời gian vào tìm hiểu các vấn đề liên quan đến kĩ thuật tối ưu hóa trong thuật toán sắpxếp áp dụng cho hai chuỗi. Đây cũng là vấn đề có vai trò rất quan trọng bởi nó là một thành phần được sử dụng lại nhiều lần trong bài toán sắpxếp với nhiều chuỗi. Trên thực tế, có rất nhiều cách tiếp cận giải quyết khác nhau đối với sắpxếp nhiều chuỗi. Việc tìm ra một cách giải quyết độc lập và hiểu quả là một hướng hoàn toàn khả thi cao. Đây sẽ là một hướng đi mà tôi chọn trong thời gian nghiên cứu tiếp theo. Tuy kết quả chưa đạt những thành công lớn, xong tôi cũng đã có dịp tìm hiểu những kiến thức về Sinhhọc phân tử, những thứ sẽ cần thi ết cho tôi có thể thuận lợi hơn khi áp dụng các kiến thức trong Tin học vào Sinh Học. Tài liệu tham khảo [1] Arthur M. Lesk, “Introduction to Bioinformatics” University of Cambridge [2] Julie D.Thompson and Desmond G.Higgins+ and Toby J.Gibson, “CLUSTALW: improving the sensitivity of progressive multiple sequence alignment through sequence weighting, position- specific gap penalties and weight matrix choice”. . đất mới mẻ này. Một trong những bài toán điển hình trong Tin Sinh Học là bài toán sắp xếp các chuỗi sinh học thẳng hàng. Sẵp xếp chuỗi sinh học không những. phương pháp chia để trị nhằm phục đích đưa ra những phương án tối ưu nhất có thể. 3. Sắp xếp 2 hay nhiều chuỗi sinh học 3.1. Sắp xếp 2 chuỗi Sắp xếp 2 chuỗi