【发布时间】:2022-01-21 04:13:35
【问题描述】:
我有一个如下所示的数据集:
chr1 StringTie exon 197757319 197757401 1000 + . gene_id "MSTRG.10429"; transcript_id "ENST00000440885.1"; exon_number "1"; gene_name "RP11-448G4.4"; ref_gene_id "ENSG00000224901.1";
chr1 StringTie exon 197761802 197761965 1000 + . gene_id "MSTRG.10429"; transcript_id "ENST00000440885.1"; exon_number "2"; gene_name "RP11-448G4.4"; ref_gene_id "ENSG00000224901.1";
chr9 StringTie exon 63396911 63397070 1000 - . gene_id "MSTRG.145111"; transcript_id "MSTRG.145111.1"; exon_number "1";
chr9 StringTie exon 63397111 63397185 1000 - . gene_id "MSTRG.145111"; transcript_id "MSTRG.145111.1"; exon_number "2";
chr21 StringTie exon 44884690 44884759 1000 + . gene_id "MSTRG.87407"; transcript_id "MSTRG.87407.1"; exon_number "1";
chr22 HAVANA exon 19667023 19667199 . + . gene_id "ENSG00000225007.1"; transcript_id "ENST00000452326.1"; exon_number "1"; gene_name "AC000067.1";
chr22 HAVANA exon 19667446 19667555 . + . gene_id "ENSG00000225007.1"; transcript_id "ENST00000452326.1"; exon_number "2"; gene_name "AC000067.1";
我想隔离gene_ids。因此,期望的输出是:
MSTRG.10429
MSTRG.10429
MSTRG.145111
MSTRG.145111
MSTRG.87407
ENSG00000225007.1
ENSG00000225007.1
我尝试了以下方法:
grep -E -o "gene_id.{0,20}" gtf_om_ENSGids_te_vinden.gtf > alle_gene_ids.txt
有了这个我可以grep“gene_id”之后的20个字符,我想稍后删除不属于答案的其他字符,例如“transcript”这个词的一部分。但是,一个问题是 ref_gene_ids 也会被复制,这不属于所需的输出。我试图通过添加 -w 标志来解决这个问题,但由于某种原因这也是错误的。有人可以帮忙吗?
谢谢!
【问题讨论】:
标签: grep