Biopython - Microarray kiểu hình
Kiểu hình được định nghĩa là một đặc điểm hoặc đặc điểm quan sát được của một sinh vật chống lại một chất hóa học hoặc môi trường cụ thể. Microarray kiểu hình đồng thời đo phản ứng của một sinh vật chống lại một số lượng lớn hơn các chất hóa học & môi trường và phân tích dữ liệu để hiểu đột biến gen, các ký tự gen, v.v.
Biopython cung cấp một mô-đun tuyệt vời, Bio.Phenotype để phân tích dữ liệu kiểu hình. Hãy để chúng tôi tìm hiểu cách phân tích cú pháp, nội suy, trích xuất và phân tích dữ liệu microarray kiểu hình trong chương này.
Phân tích cú pháp
Dữ liệu microarray kiểu hình có thể ở hai định dạng: CSV và JSON. Biopython hỗ trợ cả hai định dạng. Biopython parser phân tích cú pháp dữ liệu microarray kiểu hình và trả về dưới dạng một tập hợp các đối tượng PlateRecord. Mỗi đối tượng PlateRecord chứa một tập hợp các đối tượng WellRecord. Mỗi đối tượng WellRecord chứa dữ liệu ở định dạng 8 hàng và 12 cột. Tám hàng được biểu thị bằng A đến H và 12 cột được biểu thị bằng 01 đến 12. Ví dụ, hàng thứ 4 và cột thứ 6 được biểu thị bằng D06.
Hãy để chúng tôi hiểu định dạng và khái niệm phân tích cú pháp với ví dụ sau:
Step 1 - Tải xuống tệp Plates.csv do nhóm Biopython cung cấp - https://raw.githubusercontent.com/biopython/biopython/master/Doc/examples/Plates.csv
Step 2 - Tải mô-đun phenotpe như bên dưới -
>>> from Bio import phenotype
Step 3- Gọi phương thức phenotype.parse truyền tệp dữ liệu và tùy chọn định dạng (“pm-csv”). Nó trả về PlateRecord có thể lặp lại như bên dưới,
>>> plates = list(phenotype.parse('Plates.csv', "pm-csv"))
>>> plates
[PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ..., WellRecord['H12']'),
PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ..., WellRecord['H12']'),
PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ..., WellRecord['H12']'),
PlateRecord('WellRecord['A01'], WellRecord['A02'],WellRecord['A03'], ..., WellRecord['H12']')]
>>>
Step 4 - Truy cập tấm đầu tiên từ danh sách như bên dưới -
>>> plate = plates[0]
>>> plate
PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ...,
WellRecord['H12']')
>>>
Step 5- Như đã thảo luận trước đó, một cái đĩa có 8 hàng, mỗi hàng có 12 món. WellRecord có thể được truy cập theo hai cách như được chỉ định bên dưới:
>>> well = plate["A04"]
>>> well = plate[0, 4]
>>> well WellRecord('(0.0, 0.0), (0.25, 0.0), (0.5, 0.0), (0.75, 0.0),
(1.0, 0.0), ..., (71.75, 388.0)')
>>>
Step 6 - Mỗi giếng sẽ có chuỗi đo tại các thời điểm khác nhau và có thể truy cập bằng vòng lặp for như quy định bên dưới -
>>> for v1, v2 in well:
... print(v1, v2)
...
0.0 0.0
0.25 0.0
0.5 0.0
0.75 0.0
1.0 0.0
...
71.25 388.0
71.5 388.0
71.75 388.0
>>>
Phép nội suy
Nội suy cung cấp thêm thông tin chi tiết về dữ liệu. Biopython cung cấp các phương pháp nội suy dữ liệu WellRecord để lấy thông tin cho các điểm thời gian trung gian. Cú pháp tương tự như lập chỉ mục danh sách và do đó, rất dễ học.
Để nhận dữ liệu lúc 20,1 giờ, chỉ cần chuyển các giá trị chỉ mục như được chỉ định bên dưới:
>>> well[20.10]
69.40000000000003
>>>
Chúng tôi có thể vượt qua điểm thời gian bắt đầu và điểm thời gian kết thúc cũng như được chỉ định bên dưới -
>>> well[20:30]
[67.0, 84.0, 102.0, 119.0, 135.0, 147.0, 158.0, 168.0, 179.0, 186.0]
>>>
Lệnh trên nội suy dữ liệu từ 20 giờ đến 30 giờ với khoảng thời gian 1 giờ. Theo mặc định, khoảng thời gian là 1 giờ và chúng tôi có thể thay đổi nó thành bất kỳ giá trị nào. Ví dụ: hãy để chúng tôi đưa ra khoảng thời gian 15 phút (0,25 giờ) như được chỉ định bên dưới -
>>> well[20:21:0.25]
[67.0, 73.0, 75.0, 81.0]
>>>
Phân tích và trích xuất
Biopython cung cấp một phương pháp phù hợp để phân tích dữ liệu WellRecord bằng cách sử dụng các hàm sigmoid của Gompertz, Logistic và Richards. Theo mặc định, phương pháp phù hợp sử dụng hàm Gompertz. Chúng ta cần gọi phương thức fit của đối tượng WellRecord để hoàn thành nhiệm vụ. Cách mã hóa như sau:
>>> well.fit()
Traceback (most recent call last):
...
Bio.MissingPythonDependencyError: Install scipy to extract curve parameters.
>>> well.model
>>> getattr(well, 'min') 0.0
>>> getattr(well, 'max') 388.0
>>> getattr(well, 'average_height')
205.42708333333334
>>>
Biopython phụ thuộc vào mô-đun scipy để thực hiện phân tích nâng cao. Nó sẽ tính toán chi tiết min, max và average_height mà không cần sử dụng mô-đun scipy.