본문 바로가기

카테고리 없음

fastq-to-fasta 파일변환용 파이썬 스크립트

728x90
반응형

1. 개요

fastq파일에서 가끔 fasta파일로 변형해야 실행되는 프로그램들이 있다.

이것은 이를 위해 만든 스크립트이다.

실행환경은 리눅스이다.

 

2. 스크립트

'''
이 스크립트는 fastq파일을 fasta파일로 변환하는 스크립트임.
sed로 작동하는 것이기 때문에 리눅스 환경이면 어디서든 사용이 가능함.

실행법
python /path/to/fastq2fasta.py \
    --input /path/to/input.fastq \
    --output /path/to/output.fasta
'''
# 파라미터 셋팅
params={
    # 이것은 특별히 할게 없음.
}


# 라이브러리 셋팅
import sys, os
import subprocess as sbp
import argparse

parser = argparse.ArgumentParser(description='fastq-2-fasta conversion script')

# 입력받을 인자값 등록
# Default값이 없는 경우
parser.add_argument('--input', required=True, help='/path/to/input.fastq')
# Default값이 있는 경우
parser.add_argument('--output', required=True, help='/path/to/output.fa')


# 함수 정의
def fastq2fasta(in_path,out_path):
    '''
    이 함수는 fastq파일을 fasta 형식으로 변형해주는 것임
    이를 위해 awk를 사용함.
    in_path : fastq 파일 경로
    out_path : fasta 파일 저장경로
    '''
    cmd=f"sed -n '1~4s/^@/>/p;2~4p' {in_path} > {out_path}"
    sbp.call(cmd,shell=1)


if __name__=='__main__':
    args=parser.parse_args()
    params['in']=args.input
    params['out']=args.output
    fastq2fasta(in_path=params['in'],out_path=params['out'])
728x90
반응형