반응형
Pandas를 활용한 VCF 파일 분석 방법
1. VCF 파일 읽기 및 전처리
VCF 파일의 메타데이터와 데이터 부분을 분리하고,
INFO 필드는 여러 속성 값을 포함하므로 이를 파싱하여 별도의 열로 분리합니다.
import pandas as pd
# VCF 파일 경로
vcf_file = 'path/to/your/file.vcf'
# VCF 파일 읽기
with open(vcf_file, 'r') as file:
lines = file.readlines()
# 메타데이터와 데이터 분리
metadata = [line for line in lines if line.startswith('##')]
header_line = [line for line in lines if line.startswith('#') and not line.startswith('##')]
data_lines = [line for line in lines if not line.startswith('#')]
# 컬럼 헤더 추출
header = header_line[0].strip().split('\t')
# 데이터프레임 생성
data = [line.strip().split('\t') for line in data_lines]
df = pd.DataFrame(data, columns=header)
# 데이터프레임 확인
print(df.head())
2. INFO 필드 파싱
INFO 필드에는 여러 속성들이 ;로 구분되어 있습니다.
이를 개별 속성으로 분리하여 데이터프레임의 열로 추가합니다.
import pandas as pd
# INFO 필드를 분리하여 데이터프레임에 추가하는 함수
def parse_info(info):
info_dict = {}
for item in info.split(';'):
if '=' in item:
key, value = item.split('=')
info_dict[key] = value
else:
info_dict[item] = True # FLAG type
return info_dict
# INFO 필드를 파싱하여 새로운 열로 추가
info_df = df['INFO'].apply(parse_info).apply(pd.Series)
df = pd.concat([df, info_df], axis=1).drop(columns=['INFO'])
# 데이터프레임 확인
print(df.head())
VCF 파일 전처리 과정에서 가장 기본적으로 사용되는 코드 입니다. 참고 바랍니다.
https://pypi.org/project/vcf2pandas/
vcf2pandas
Package to convert a vcf into a pandas dataframe.
pypi.org
반응형
'Python' 카테고리의 다른 글
Multiple VCF 파일을 하나의 DataFrame 으로 합치기 (0) | 2024.07.14 |
---|---|
Pandas를 활용한 VCF 파일 분석 방법 (심화) (0) | 2024.07.14 |
Pandas를 활용한 VCF 파일 분석 방법 (기본) (0) | 2024.07.14 |
Pandas를 사용하여 첫 번째 행을 헤더로 설정하는 방법 (0) | 2024.07.14 |
python VCF file 정보 추출 (chromosome) 하고 plot 만들기 (0) | 2024.04.16 |