我有一个文件(.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我试图从第一列的所有9列中获取所有信息,第一列以数字5开头,我的文件大约为450 My。
因此,我希望从第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].txtcut -d'5' -f1-9 [FILE].gff3这些都是给我的文件,没有从第1栏的信息,从数字5开始,所以,它是相反的,我想要得到的。
发布于 2019-09-14 18:35:18
要提取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.gff5https://unix.stackexchange.com/questions/541735
复制相似问题