여러 fasta 시퀀스 결합 [닫기]

여러 fasta 시퀀스 결합 [닫기]

이 파일에는 최대 500개의 시퀀스가 ​​있고 그 중 일부는 이름이 동일하며 복사본을 하나로 병합하고 싶습니다.

file 1

>1
aa
>2
cc
>3
tt
>4
atc
>2
tag
>1
gg

outfile 

>1
aagg
>2
cctag
>3
tt
>4
atc

답변1

이것은 Awk 스크립트입니다:

#!/usr/bin/awk -f

/^>/    { header = $0 }
!/^>/   { sequence[header] = sequence[header] $0 }

END {
    for (head in sequence) {
        printf("%s\n%s\n", head, sequence[head])
    }
}

전체 Fasta 파일을 메모리로 구문 분석하여 모든 시퀀스 데이터를 동일한 헤더와 연결합니다. 마지막으로 데이터를 출력합니다.

이 접근 방식은 다음과 같습니다.안좋다큰 Fasta 파일의 경우 게놈 크기 파일에서 완전히 (메모리 부족) 충돌이 발생합니다. 이러한 경우 더 나은 접근 방식을 찾으려면 구문 분석된 데이터를 마지막 연결된 파일에 저장하는 것이 좋습니다. 그래도 이것을 구현할 생각은 없었습니다.

스크립트를 실행합니다:

$ awk -f ./script.awk file.fa
>1
aagg
>2
cctag
>3
tt
>4
atc

관련 정보