탭으로 구분된 9개의 열이 있는 파일(.gff3)이 있습니다.
##gff-version 3
##other information
0 . mRNA 1300 9000 . + . ID=mrna0001;Name=sonichedgehog
1 . exon 1300 1500 . + . ID=exon00001;Parent=mrna0001
2 . exon 1050 1500 . + . ID=exon00002;Parent=mrna0001
3 . exon 3000 3902 . + . ID=exon00003;Parent=mrna0001
4 . exon 5000 5500 . + . ID=exon00004;Parent=mrna0001
5 . exon 7000 9000 . + . ID=exon00005;Parent=mrna0001
첫 번째 열이 숫자 5로 시작하는 9개 열 모두에서 모든 정보를 얻으려고 합니다. 내 파일 크기는 약 450MB입니다.
따라서 저는 1~9열의 모든 정보에서 이 정보를 얻고 싶습니다.
5 . exon 1300 1500 . + . ID=exon00001;Parent=mrna0001
5 . exon 1050 1500 . + . ID=exon00002;Parent=mrna0001
5 . exon 3000 3902 . + . ID=exon00003;Parent=mrna0001
5 . exon 5000 5500 . + . ID=exon00004;Parent=mrna0001
5 . exon 7000 9000 . + . ID=exon00005;Parent=mrna0001
나는 열심히 노력했다
grep '5' [FILE].gff3 >[NEWFILE].txt
cut -d'5' -f1-9 [FILE].gff3
이들 각각은 내 파일을 제공하지만 숫자 5로 시작하는 열 1에는 정보가 없습니다. 그래서 그것은 내가 얻고 싶은 것과 반대되는 일을 합니다.
답변1
염색체 5에 대한 모든 데이터를 추출하려면 다음과 같은 간단한 명령을 사용할 수 있습니다 awk
.
awk -F '\t' '$1 == "5"' file.gff3 >chr5.gff3
GFF 헤더도 포함됩니다:
awk -F '\t' '/^#/ || $1 == "5"' file.gff3 >chr5.gff5
이들 명령 중 하나는 추출된 데이터를 읽고 file.gff3
새 파일에 기록합니다 chr5.gff3
.
엑손만 포함하도록 쉽게 확장할 수 있습니다.
awk -F '\t' '/^#/ || ($1 == "5" && $3 == "exon")' file.gff3 >chr5.gff5