FASTA 파일에서 특정 ID를 구문 분석하는 방법

FASTA 파일에서 특정 ID를 구문 분석하는 방법

나는FASTA 형식파일 이름은 ">" 기호 뒤에 오고, 그 뒤에는 해당 시퀀스가 ​​포함된 두 번째 줄이 옵니다. 이름(첫 번째 행)에서 refseqID를 필터링하고 부동 값을 제거하고 싶습니다. 완전한 파일에는 많은 이름/시퀀스가 있습니다.

다음을 사용하여 태그에서 "hg38_ncbiRefSeq_"를 제거할 수 있습니다.

sed 's/hg38_ncbiRefSeq_//g' file 

원본 형식

>hg38_ncbiRefSeq_NM_001276352.2 range=chr1:67093580-67127240 5'pad=0 3'pad=0 strand=- repeatMasking=none
MAEKILEKLDVLDKQAEIILARRTKINRLQSEGRKTTMAIPLTFDFQLEFEEALATSASKAISKIKEDKSCSITKSKMHVSFKCEPEPRKSNFEKSNLRPFFIQTNVKNKESESTEPVEEHLKSRSIRPYLYLKDTTEMENAGPLNVLYSQHRQACRRSLGSTDFSPMFNIQSNAHKKEKDSTLFTAQIEKKPRKPLDSVGLLEGDRNKRNKRTQIP
>hg38_ncbiRefSeq_NM_001276351.2 range=chr1:67093005-67127240 5'pad=0 3'pad=0 strand=- repeatMasking=none
MAEKILEKLDVLDKQAEIILARRTKINRLQSEGRKTTMAIPLTFDFQLEFEEALATSASKAISKIKEDKSCSITKSKMHVSFKCEPEPRKSNFEKSNLRPFFIQTNVKNKESESTAQIEKKPRKPLDSVGLLEGDRNKRKKSPQMNDFNIKENKSVRNYQLSKYRSVRKKSLLPLCFEDELKNPHAKIVNVSPTKTVTSHMEQKDTNPIIFHDTEYVRMLLLTKNRFSSHPLENENIYPHKRTNFILERNCEILKSIIGNQSISLFKPQKTMPTVQRKDIQIPMSFKAGHTTVDDKLKKKTNKQTLENRSWNTLYNFSQNFSSLTKQFVGYLDKAVIHEMSAQTGKFERMFSAGKPTSIPTSSALPVKCYSKPFKYIYELNNVTPLDNLLNLSNEILNAS

최종 형식

>NM_001276352
MAEKILEKLDVLDKQAEIILARRTKINRLQSEGRKTTMAIPLTFDFQLEFEEALATSASKAISKIKEDKSCSITKSKMHVSFKCEPEPRKSNFEKSNLRPFFIQTNVKNKESESTEPVEEHLKSRSIRPYLYLKDTTEMENAGPLNVLYSQHRQACRRSLGSTDFSPMFNIQSNAHKKEKDSTLFTAQIEKKPRKPLDSVGLLEGDRNKRNKRTQIP
>NM_001276351
MAEKILEKLDVLDKQAEIILARRTKINRLQSEGRKTTMAIPLTFDFQLEFEEALATSASKAISKIKEDKSCSITKSKMHVSFKCEPEPRKSNFEKSNLRPFFIQTNVKNKESESTAQIEKKPRKPLDSVGLLEGDRNKRKKSPQMNDFNIKENKSVRNYQLSKYRSVRKKSLLPLCFEDELKNPHAKIVNVSPTKTVTSHMEQKDTNPIIFHDTEYVRMLLLTKNRFSSHPLENENIYPHKRTNFILERNCEILKSIIGNQSISLFKPQKTMPTVQRKDIQIPMSFKAGHTTVDDKLKKKTNKQTLENRSWNTLYNFSQNFSSLTKQFVGYLDKAVIHEMSAQTGKFERMFSAGKPTSIPTSSALPVKCYSKPFKYIYELNNVTPLDNLLNLSNEILNAS

답변1

다음과 같이 시도해 볼 수 있습니다 awk.

awk -F'[ _.]' '{if ($0~"^>") print ">"$3"_"$4; else print $0}' input_file

이전 의견에서 제안한 대로 더 짧은 형식을 사용할 수 있습니다.에드 모튼:

awk -F'[ _.]' '{print (/^>/ ? ">"$3"_"$4 : $0)}' input_file

관련 정보