Trang chủ Chuyên gia viết Giới thiệu về CWL và ứng dụng trong phân tích dữ liệu...

Giới thiệu về CWL và ứng dụng trong phân tích dữ liệu hệ gen

I. Common Workflow Language (CWL)

1. Giới thiệu tổng quan

CWL là một ngôn ngữ được xây dựng để định nghĩa ra các workflow (luồng thực thi) một cách đơn giản, hiệu quả và nhanh chóng. Mục tiêu của CWL là làm cho các workflow được định nghĩa theo một ngôn ngữ thống nhất, đầy đủ thông tin, có thể thực hiện trên mọi hệ thống tương thích với CWL. Các đối tượng được CWL hướng tới là những ngành yêu cầu xử lý dữ liệu chuyên sâu như Tin sinh, Xử lý ảnh y tế, Học máy, vật lý, thiên văn học,….

Hiện nay, CWL được ứng dụng trong nhiều dự án, tổ chức lớn trên thực tế. Ví dụ như trong lĩnh vực Tin sinh thì có:

Hoặc trong các lĩnh vực khác như:

  • CERN: Tổ chức nghiên cứu về hạt nhân Châu Âu
  • Netherlands eScience Cente: Trung tâm nghiên cứu và phát triển phần mềm quốc gia Hà Lan

Để tìm hiểu thêm về CWL, mọi người có thể tham khảo tại:

2. Một số tính năng đặc biệt của CWL

CWL cho phép định nghĩa trong workflow các yêu cầu mà hệ thống thực thi phải đáp ứng như:

  • Requirements: yêu cầu môi trường thực thi phải hỗ trợ như Docker, Javascript .
  • Nested Workflows: cho phép lồng các workflow để tạo thành một workflow mới.
  • Conditional workflow: Tùy chọn chạy các bước dựa vào các điều kiện đặt sẵn.
  • Scatter workflow: cho phép chạy một bước hoặc workflow nhiều lần trên một danh sách các giá trị của biến đầu vào.
  • Software package requirement: yêu cầu môi trường thực thi phải có những phần mềm, phiên bản tương ứng.
  • Runtime environment variable: Lấy giá trị từ các biến môi trường làm đầu vào cho các bước chạy.

3. Cấu trúc của CWL

CWL có thể được định nghĩa thông qua 2 kiểu biểu diễn là JSON và YAML.

Cấu trúc CWL về cơ bản được chia ra làm 3 phần chính:

  • CommandLineTool: Chỉ một bước trong Workflow, thường đại diện cho 1 phần mềm (tool) tính toán.
  • Workflow: Dùng để mô tả một luồng thực thi, có thể bao gồm nhiều CommandLineTool với các đầu vào/đầu ra được liên kết với nhau.
  • Input: File định nghĩa các dữ liệu đầu vào cho Workflow.

Sau đây là ví dụ cơ bản về CWL, để tìm hiểu sâu hơn về các tính năng của CWL, mọi người có thể tham khảo:

3.1. CommandLineTool

Đây là một file CWL cơ bản, và đang được sử dụng cho bước QC_FastQ trong hệ thống genome analysis:

Có thể dễ dàng nhận thấy một file CommandLineTool gồm 6 thành phần chính:

  1. Mô tả các đặc điểm của file
    1. class: Loại file CWL
    1. cwlVersion: Phiên bản CWL sử dụng
    1. id: định danh độc nhất của bước
  2. Yêu cầu để thực thi file: requirements
    1. DockerRequirement: Địa chỉ để lấy Docker image
    1. ResourceRequirement: Yêu cầu về tài nguyên hệ thống
  3. Đầu vào của CommandLineTool: inputs
  4. Đầu ra của CommandLineTool (Dùng pattern để định nghĩa các dữ liệu đưa vào biến đầu ra): outputs
  5. Các tham số của CommandLineTool: arguments
    1. position: Vị trí để sắp xếp nếu có nhiều tham số
    1. valueFrom: Chỉ cách lấy dữ liệu vào tham số
  6. Command để khởi chạy: baseCommand

3.2. Workflow

Các phần của Workflow cũng khá giống với CommandLineTool khi chung các phần:

  1. Mô tả đặc điểm của file (class, cwlVersion, id)
  2. : inputs
  3. Các bước trong workflow
    1. Tên của bước:QCFastq, Alignement
    1. Địa chỉ file: run
    1. Ánh xạ đầu vào của workflow với CommandLineTool: in (Có thể ánh xạ tới đầu ra của bước trước)
    1. Định nghĩa đầu ra của CommandLineTool
  4. Đầu ra của workflow: outputs

2.3. File định nghĩa các biến

# FILENAME: input.yml
input_fastq1:
  - /home/ubuntu/input/RB1_1.fastq
input_fastq2:
  - /home/ubuntu/input/RB1_2.fastq

File biến đầu vào chỉ gán dữ liệu cho biến đầu vào của workflow.

II. Ứng dụng của CWL trong hệ thống phân tích Genome

1. Mục đích

CWL trong hệ thống phân tích genome được dùng để định nghĩa các workflow với mục tiêu:

  • Đơn giản hóa công việc cho người nghiên cứu, người tạo workflow.
  • Phù hợp với các tiêu chuẩn chung.
  • Dễ dàng tích hợp với các công cụ khác.
  • Dễ dàng tái thực hiện các phân tích trên một nền tảng khác tương thích với CWL.

Hệ thống hiện tại đang được triển khai trên: https://genome.vinbigdata.org/

2. Ứng dụng

Hiện tại trong hệ thống Analysis, một Workflow CWL được biểu diễn như một đồ thị có hướng không chu trình (DAG – Directed acyclic graph):

  • Mỗi CommandLineTool sẽ được coi là một nút trong đồ thị
  • Hướng của các nút biểu diễn phụ thuộc dữ liệu trong workflow
  • Lưu ý: 2 nút bigbang và ragnarok là 2 nút ảo, không nằm trong Workflow, được tạo ra nhằm định nghĩa điểm bắt đầu và kết thúc của DAG.
Ví dụ về biểu diễn từ Workflow CWL thành DAG
Ví dụ về biểu diễn từ Workflow CWL thành DAG

Theo hình ảnh trên, có một vài ưu điểm ta có thể nhận ra ngay đó là:

  • Xác định được sự phụ thuộc của các nút, từ đó giúp tối ưu việc lập lịch chạy một quy trình
  • Tự động ánh xạ đầu ra và đầu vào của các nút
  • Sắp xếp các nút chạy song song: qcfastq, fastqtobams, alignmentreads (Mỗi nút này có thể được triển khai trên 1 máy riêng để tăng tốc độ xử lý của quy trình)

Bên cạnh đó, áp dụng các tính năng của CWL cũng giúp cho việc xây dựng và quản lý các quy trình được nhẹ nhàng hơn cho các nhà nghiên cứu, ví dụ:

  • Có thể định nghĩa sẵn các nút và người nghiên cứu chỉ cần sắp xếp và điều chỉnh các nút chứ không cần phải viết lại từ đầu
  • Giới hạn được tài nguyên phần cứng yêu cầu tránh việc lãng phí hoặc thiếu hụt tài nguyên
  • Chia nhỏ một nút thành các nút nhỏ hơn có thể chạy song song để tăng thời gian tính toán (Tính năng scatter)
  • Tiền kiểm tra dữ liệu đầu vào, đầu ra theo các ràng buộc cho trước, tránh tốn thời gian thực thi cũng như đảm bảo tính an toàn của hệ thống
  • Chạy các bước xử lý dữ liệu thô như đổi tên file, loại bỏ các file thừa, …

III. Kết luận

Việc sử dụng CWL trong hệ thống tự động phân tích nhằm mục đích đơn giản hóa cho người nghiên cứu, phù hợp với tiêu chuẩn chung, cùng với đó là khả năng dễ dàng tích hợp với các công cụ có sẵn. Tuy nhiên để cài đặt toàn bộ các đặc điểm kỹ thuật của CWL cũng như ứng dụng một cách tối ưu nhất vẫn yêu cầu nhiều thời gian và công sức. Cùng với đó, việc phát triển bằng CWL cũng yêu cầu những người nghiên cứu cần phải học thêm một tiêu chuẩn mới, từng bước chuyển đổi và kiểm thử để đạt được kết quả tốt nhất.

IV. Tài liệu tham khảo

  1. https://www.commonwl.org/
  2. https://www.commonwl.org/user_guide/
  3. https://genome.vinbigdata.org/analysis#

Hướng dẫn: Đỗ Ngọc Tuấn

Tác giả: Thành Phan Phú

BÀI MỚI NHẤT

Toàn cảnh về ánh xạ gen

Ánh xạ gen (Genetic mapping) giúp cung cấp bằng chứng về mối liên hệ của gen đối với một số bệnh di truyền, đồng...

Mô hình phân quyền ABAC và ứng dụng trong hệ thống quản lý dữ liệu lớn

Giới thiệuTrong thời đại hiện nay, với việc ngày càng có nhiều hệ thống phần mềm lớn nhỏ được ra đời và phát triển, bài toán quản lý truy cập tài...

Tổng quan về một số phiên bản bộ gen tham chiếu thông dụng

Một trong những trụ cột không thể thiếu để xây dựng một nền Y học chính xác là bộ gen tham chiếu. Trải qua...

Bộ gen người hoàn chỉnh đã dần hé lộ

Ngày 27/05/2021 vừa qua, các nhà nghiên cứu của hiệp hội Telomere-to-Telomere đã giải mã thêm 200 triệu base và 115 vùng gen mã...

BÀI ĐỌC NHIỀU

Công nghệ giải trình tự thế hệ mới – cuộc cách mạng trong nghiên cứu hệ gen và sinh học phân tử

Công nghệ giải trình tự thế hệ mới cho phép đồng thời giải mã hàng triệu trình tự DNA cùng lúc, nhờ vậy, nâng...

Bộ gen tham chiếu đã được xây dựng như thế nào?

Thật khó để tưởng tượng các nghiên cứu Sinh học, Tin sinh học ngày nay sẽ được thực hiện như thế nào nếu bộ...

Bộ gen người hoàn chỉnh đã dần hé lộ

Ngày 27/05/2021 vừa qua, các nhà nghiên cứu của hiệp hội Telomere-to-Telomere đã giải mã thêm 200 triệu base và 115 vùng gen mã...

Mô hình phân quyền ABAC và ứng dụng trong hệ thống quản lý dữ liệu lớn

Giới thiệuTrong thời đại hiện nay, với việc ngày càng có nhiều hệ thống phần mềm lớn nhỏ được ra đời và phát triển, bài toán quản lý truy cập tài...