sed를 사용하여 종 이름을 기준으로 FASTA 시퀀스 파일 정렬

sed를 사용하여 종 이름을 기준으로 FASTA 시퀀스 파일 정렬

여러 종의 536개 DNA 서열을 포함하는 FASTA 파일이 있지만 반드시 종 이름별로 정렬할 필요는 없습니다.

시퀀스가 포함된 내 헤더는 다음과 같습니다.

>COLFG678-14|MZ630002|Agabus|adpressus|AEC6988|COI-5P
AATC
>INRMA1514-14|NA|Agabus|thomsoni|ABZ7453|COI-5P
ATTT
>CONOR053-14|NA|Agabus|sturmii|AAJ1337|COI-5P
ACAA
>COLFG676-14|MZ631238|Agabus|adpressus|AEC6988|COI-5P
AATG

이러한 시퀀스에는 {A, C, G, T} 문자가 포함되며 일반적으로 길이가 수백 문자입니다.

내 데이터 세트의 다른 모든 종 이름과 함께 FASTA 파일에 모든 종 이름이 함께 표시되어야 합니다.

여기서 "종"은 FASTA 제목의 세 번째와 네 번째 구분점에 위치한 종명을 의미한다. 따라서 첫 번째 헤더의 ">COLFG678-14|MZ630002|Agabus|adpressus|AEC6988|COI-5P"종 이름은 다음과 같습니다.아가리쿠스 블레세이.

나에게 필요한 출력은

>COLFG676-14|MZ631238|Agabus|adpressus|AEC6988|COI-5P
AATG
>COLFG678-14|MZ630002|Agabus|adpressus|AEC6988|COI-5P
AATC
>CONOR053-14|NA|Agabus|sturmii|AAJ1337|COI-5P
ACAA
>INRMA1514-14|NA|Agabus|thomsoni|ABZ7453|COI-5P
ATTT

기본적으로 같은 이름을 가진 모든 종이 함께 나타나도록 종 이름별로 정렬하면 됩니다. 쉽게 구할 수 있으니 참고하세요

>COLFG678-14|MZ630002|Agabus|adpressus|AEC6988|COI-5P
AATC
>COLFG676-14|MZ631238|Agabus|adpressus|AEC6988|COI-5P
AATG
>CONOR053-14|NA|Agabus|sturmii|AAJ1337|COI-5P
ACAA
>INRMA1514-14|NA|Agabus|thomsoni|ABZ7453|COI-5P
ATTT

처음 두 헤더의 순서가 바뀌는 곳입니다. 종명과 함께 표기하는 것이 여전히 함께 나타나는 것이 중요하다.

가장 쉬운 방법은 사용하는 것입니다 sed(저는 Mac Pro에서 실행 중입니다).

나는 다음과 같은 것을 가져야한다는 것을 안다

sed -i.bak ... file.fas // sort sequences and create a backup copy

...하지만 정규 표현식을 처음 접했기 때문에 이것이 무엇인지 잘 모르겠습니다 . 세 번째와 네 번째 구분 기호 |, 즉 에서 분할해야 한다고 생각하는데 |Agabus|adpressus|, 이를 가장 잘 표시하는 방법이 무엇인지 잘 모르겠습니다.

답변1

필드 3과 4를 기준으로 행을 정렬하면 됩니다. 필드는 |로 구분됩니다.

$ sed 'N;s/\n/#/g' infile | sort -t '|' -k3,4 | tr '#' '\n'

>COLFG676-14|MZ631238|Agabus|adpressus|AEC6988|COI-5P
AATG
>COLFG678-14|MZ630002|Agabus|adpressus|AEC6988|COI-5P
AATC
>CONOR053-14|NA|Agabus|sturmii|AAJ1337|COI-5P
ACAA
>INRMA1514-14|NA|Agabus|thomsoni|ABZ7453|COI-5P
ATTT

답변2

sort -t'|' -k3 -k4 fasta.txt

산출:

">COLFG678-14|MZ630002|Agabus|adpressus|AEC6988|COI-5P"
">COLFG678-14|MZ630002|Agabus|adpressus|AEC6988|COI-5P"
">CONOR053-14|NA|Agabus|sturmii|AAJ1337|COI-5P"
">INRMA1514-14|NA|Agabus|thomsoni|ABZ7453|COI-5P"

-t'|'필드 구분 기호로 수직 대시를 사용합니다.

-k3 -k4세 번째 및 네 번째 필드를 기준으로 정렬합니다.

관련 정보