我解释我的问题。
我有一个 gff 格式的大文件,例如:
scaffold_31 AUGUSTUS CDS 18857 19210 0.63 + 0 transcript_id "g56.t1"; gene_id "g56";
scaffold_32 AUGUSTUS CDS 8973 9290 0.82 - 0 transcript_id "g57.t1"; gene_id "g57";
scaffold_32 AUGUSTUS CDS 11374 11507 0.96 - 2 transcript_id "g57.t1"; gene_id "g57";
scaffold_32 AUGUSTUS CDS 11586 11733 0.39 - 0 transcript_id "g57.t1"; gene_id "g57";
scaffold_33 AUGUSTUS CDS 5303 5323 0.83 - 0 transcript_id "g58.t1"; gene_id "g58";
scaffold_33 AUGUSTUS CDS 5810 6034 0.97 - 0 transcript_id "g58.t1"; gene_id "g58";
scaffold_34 AUGUSTUS CDS 1390 1805 0.87 + 1 transcript_id "g59.t1"; gene_id "g59";
scaffold_37 AUGUSTUS CDS 15299 15390 0.91 - 2 transcript_id "g60.t1"; gene_id "g60";
scaffold_37 AUGUSTUS CDS 15622 15826 0.88 - 0 transcript_id "g60.t1"; gene_id "g60";
依此类推......我想找到一个命令来提取他们的 FIRST CDS 以密码子阶段 0(第 7 列)开头的一侧转录本,以及他们的 FIRST CDS 以 1 或 a 开头的那些2. 然后,我想获取 3 个文件,这里是:
第一个文件:记录的第一个 CDS 从阶段 0 开始。
scaffold_31 AUGUSTUS CDS 18857 19210 0.63 + 0 transcript_id "g56.t1"; gene_id "g56";
scaffold_32 AUGUSTUS CDS 8973 9290 0.82 - 0 transcript_id
scaffold_32 AUGUSTUS CDS 8973 9290 0.82 - 0 transcript_id "g57.t1"; gene_id "g57";
scaffold_33 AUGUSTUS CDS 5303 5323 0.83 - 0 transcript_id "g58.t1"; gene_id "g58";
scaffold_33 AUGUSTUS CDS 5810 6034 0.97 - 0 transcript_id "g58.t1"; gene_id "g58";
第二个是从第一阶段开始的成绩单的第一个 CDS:
scaffold_34 AUGUSTUS CDS 1390 1805 0.87 + 1 transcript_id "g59.t1"; gene_id "g59";
第三个是从第 2 阶段开始的成绩单的第一个 CDS:
scaffold_37 AUGUSTUS CDS 15299 15390 0.91 - 2 transcript_id "g60.t1"; gene_id "g60";
scaffold_37 AUGUSTUS CDS 15622 15826 0.88 - 0 transcript_id "g60.t1"; gene_id "g60";
如您所见,由于示例 transcript_id "g60.t1 的转录本从第 2 阶段开始具有其第一个 CDS,因此必须将属于该转录本的所有后续 CDS 转移到同一个文件中。
感谢您的帮助,我希望有人能找到解决方案:)?我认为 awk 可以提供帮助吗?