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 세부 정보를 계산합니다.