タブで区切られた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
これらのコマンドの1つは抽出されたデータを読み取り、file.gff3
新しいファイルに書き込みますchr5.gff3
。
エクソンのみを含めるように簡単に拡張できます。
awk -F '\t' '/^#/ || ($1 == "5" && $3 == "exon")' file.gff3 >chr5.gff5