从gtf文件中获取包含一百个名字的列表的信息

从gtf文件中获取包含一百个名字的列表的信息

我有一个 GTF 文件(制表符分隔)和另一个文本文件中的基因名称列表。我想知道如何从 GTF 文件中获取基因列表的信息grep, awk?我尝试了一些命令,但没有一个成功。

这是 gtf 文件的示例:

#!genome-build GRCh37.p13
#!genome-version GRCh37
#!genome-date 2009-02
#!genome-build-accession NCBI:GCA_000001405.14
#!genebuild-last-updated 2013-09
1   pseudogene  gene    11869   14412   .   +   .   gene_id "ENSG00000223972"; gene_name "DDX11L1"; gene_source "ensembl_havana"; gene_biotype "pseudogene";
1   processed_transcript    transcript  11869   14409   .   +   .   gene_id "ENSG00000223972"; transcript_id "ENST00000456328"; gene_name "DDX11L1"; gene_source "ensembl_havana"; gene_biotype "pseudogene"; transcript_name "DDX11L1-002"; transcript_source "havana";
1   processed_transcript    exon    11869   12227   .   +   .   gene_id "ENSG00000223972"; transcript_id "ENST00000456328"; exon_number "1"; gene_name "DDX11L1"; gene_source "ensembl_havana"; gene_biotype "pseudogene"; transcript_name "DDX11L1-002"; transcript_source "havana"; exon_id "ENSE00002234944";
1   processed_transcript    exon    12613   12721   .   +   .   gene_id "ENSG00000223972"; transcript_id "ENST00000456328"; exon_number "2"; gene_name "DDX11L1"; gene_source "ensembl_havana"; gene_biotype "pseudogene"; transcript_name "DDX11L1-002"; transcript_source "havana"; exon_id "ENSE00003582793";
1   processed_transcript    exon    13221   14409   .   +   .   gene_id "ENSG00000223972"; transcript_id "ENST00000456328"; exon_number "3"; gene_name "DDX11L1"; gene_source "ensembl_havana"; gene_biotype "pseudogene"; transcript_name "DDX11L1-002"; transcript_source "havana"; exon_id "ENSE00002312635";
10  protein_coding  exon    114710009   114710704   .   +   .   gene_id "ENSG00000148737"; transcript_id "ENST00000355995"; exon_number "1"; gene_name "TCF7L2"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "TCF7L2-203"; transcript_source "ensembl"; exon_id "ENSE00002258101";
10  protein_coding  CDS 114710516   114710704   .   +   0   gene_id "ENSG00000148737"; transcript_id "ENST00000355995"; exon_number "1"; gene_name "TCF7L2"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "TCF7L2-203"; transcript_source "ensembl"; protein_id "ENSP00000348274";

这是文本文件中基因名称列表的示例(我想从 gtf 文件中提取所有相关信息)。

DDX11L1
TCF7L2

谢谢

答案1

还是不清楚。您想列出gene_name在第二个文本文件中找到 的所有行吗?为此,请尝试

awk 'NR == FNR {T[" gene_name \"" $0 "\""]; next} {for (t in T) if ($0 ~ t) print}' file2 file1

答案2

如果您有一个文件,其中包含您想要详细信息的简短数据列表,您可以执行一个简单的grep.例如,假设每个数据的列表位于名为 的文件中needles.list,并且您的数据集合位于名为 的文件中haystack.gtf。然后您可以:

$ grep -f needles.list haystack.gtf

相关内容