Biopython-표현형 마이크로 어레이
표현형은 특정 화학 물질 또는 환경에 대해 유기체가 나타내는 관찰 가능한 특성 또는 특성으로 정의됩니다. 표현형 마이크로 어레이는 많은 수의 화학 물질 및 환경에 대한 유기체의 반응을 동시에 측정하고 데이터를 분석하여 유전자 돌연변이, 유전자 특성 등을 이해합니다.
Biopython은 표현형 데이터를 분석하기위한 우수한 모듈 인 Bio.Phenotype을 제공합니다. 이 장에서 표현형 마이크로 어레이 데이터를 구문 분석, 보간, 추출 및 분석하는 방법을 알아 보겠습니다.
파싱
표현형 마이크로 어레이 데이터는 CSV와 JSON의 두 가지 형식 일 수 있습니다. Biopython은 두 형식을 모두 지원합니다. Biopython 파서는 표현형 마이크로 어레이 데이터를 구문 분석하고 PlateRecord 객체의 컬렉션으로 반환합니다. 각 PlateRecord 개체에는 WellRecord 개체 모음이 포함되어 있습니다. 각 WellRecord 개체는 8 행 12 열 형식의 데이터를 보유합니다. 8 개의 행은 A에서 H로, 12 개의 열은 01에서 12로 표시됩니다. 예를 들어 4 번째 행과 6 번째 열은 D06으로 표시됩니다.
다음 예제를 통해 구문 분석의 형식과 개념을 이해하겠습니다.
Step 1 − Biopython 팀에서 제공하는 Plates.csv 파일 다운로드 − https://raw.githubusercontent.com/biopython/biopython/master/Doc/examples/Plates.csv
Step 2 − 아래와 같이 phenotpe 모듈을로드합니다 −
>>> from Bio import phenotype
Step 3− 데이터 파일 및 형식 옵션 ( "pm-csv")을 전달하는 phenotype.parse 메서드를 호출합니다. 아래와 같이 반복 가능한 PlateRecord를 반환합니다.
>>> 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 − 아래 목록에서 첫 번째 플레이트에 액세스합니다. −
>>> plate = plates[0]
>>> plate
PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ...,
WellRecord['H12']')
>>>
Step 5− 앞에서 설명한대로 플레이트에는 각각 12 개의 항목이있는 8 개의 행이 있습니다. WellRecord는 아래와 같이 두 가지 방법으로 액세스 할 수 있습니다.
>>> 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 − 각 웰은 서로 다른 시점에서 일련의 측정을 가지며 아래 지정된대로 for 루프를 사용하여 액세스 할 수 있습니다
>>> 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
>>>
보간
보간은 데이터에 대한 더 많은 통찰력을 제공합니다. Biopython은 중간 시점에 대한 정보를 얻기 위해 WellRecord 데이터를 보간하는 방법을 제공합니다. 구문은 목록 인덱싱과 유사하므로 배우기 쉽습니다.
20.1 시간에 데이터를 얻으려면 아래에 지정된 인덱스 값으로 전달하십시오.
>>> well[20.10]
69.40000000000003
>>>
시작 시점과 종료 시점을 전달할 수 있습니다.
>>> well[20:30]
[67.0, 84.0, 102.0, 119.0, 135.0, 147.0, 158.0, 168.0, 179.0, 186.0]
>>>
위의 명령은 1 시간 간격으로 20 시간에서 30 시간까지 데이터를 보간합니다. 기본적으로 간격은 1 시간이며 임의의 값으로 변경할 수 있습니다. 예를 들어, 아래에 지정된대로 15 분 (0.25 시간) 간격을 제공합니다.
>>> well[20:21:0.25]
[67.0, 73.0, 75.0, 81.0]
>>>
분석 및 추출
Biopython은 Gompertz, Logistic 및 Richards 시그 모이 드 함수를 사용하여 WellRecord 데이터를 분석하는 데 적합한 방법을 제공합니다. 기본적으로 fit 방법은 Gompertz 함수를 사용합니다. 작업을 완료하려면 WellRecord 개체의 fit 메서드를 호출해야합니다. 코딩은 다음과 같습니다-
>>> 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은 고급 분석을 수행하기 위해 scipy 모듈에 의존합니다. scipy 모듈을 사용하지 않고 min, max 및 average_height 세부 정보를 계산합니다.