我有两个文件,我只想为其他文件中存在的ID选择.gtf文件的子集。 我使用了grep函数,但是输出为空。
grep -F Transcript_names2.txt gencode.v30.annotation.gtf > selected_genes
.gtf文件的外观如下:
##provider: GENCODE
##contact: gencode-help@ebi.ac.uk
##format: gtf
##date: 2019-03-28
chr1 HAVANA gene 11869 14409 . + . gene_id "ENSG00000223972.5"; gene_type "transcribed_unprocessed_pseudogene"; gene_name "DDX11L1"; level 2; havana_gene "OTTHUMG00000000961.2";
chr1 HAVANA transcript 11869 14409 . + . gene_id "ENSG00000223972.5"; transcript_id "ENST00000456328.2"; gene_type "transcribed_unprocessed_pseudogene"; gene_name "DDX11L1"; transcript_type "processed_transcript"; transcript_name "DDX11L1-202"; level 2; transcript_support_level "1"; tag "basic"; havana_gene "OTTHUMG00000000961.2"; havana_transcript "OTTHUMT00000362751.1";
chr1 HAVANA exon 11869 12227 . + . gene_id "ENSG00000223972.5"; transcript_id "ENST00000456328.2"; gene_type "transcribed_unprocessed_pseudogene"; gene_name "DDX11L1"; transcript_type "processed_transcript"; transcript_name "DDX11L1-202"; exon_number 1; exon_id "ENSE00002234944.1"; level 2; transcript_support_level "1"; tag "basic"; havana_gene "OTTHUMG00000000961.2"; havana_transcript "OTTHUMT00000362751.1";
chr1 HAVANA exon 12613 12721 . + . gene_id "ENSG00000223972.5"; transcript_id "ENST00000456328.2"; gene_type "transcribed_unprocessed_pseudogene"; gene_name "DDX11L1"; transcript_type "processed_transcript"; transcript_name "DDX11L1-202"; exon_number 2; exon_id "ENSE00003582793.1"; level 2; transcript_support_level "1"; tag "basic"; havana_gene "OTTHUMG00000000961.2"; havana_transcript "OTTHUMT00000362751.1";
chr1 HAVANA exon 13221 14409 . + . gene_id "ENSG00000223972.5"; transcript_id "ENST00000456329.2"; gene_type "transcribed_unprocessed_pseudogene"; gene_name "DDX11L1"; transcript_type "processed_transcript"; transcript_name "DDX11L1-202"; exon_number 3; exon_id "ENSE00002312635.1"; level 2; transcript_support_level "1"; tag "basic"; havana_gene "OTTHUMG00000000961.2"; havana_transcript "OTTHUMT00000362751.1";
这是Transcript_names2.txt的样子:
"ENST00000456328.2"
"ENST00000456329.2"
有人可以帮我吗?
答案 0 :(得分:3)
man grep
是一本好书。
使用-F
将表达式视为固定字符串。 (不是正则表达式)
使用-f
来获取要读取模式的文件。
它们不是排他性的:
grep -Ff Transcript_names2.txt gencode.v30.annotation.gtf > selected_genes
新要求:速度。尝试使用不同的-P
值;这是线程数。
xargs -I{} -P4 grep -F {} gencode.v30.annotation.gtf < Transcript_names2.txt
答案 1 :(得分:0)
vim Transcript_names2.txt
:set ff=unix
将Windows文件导入Linux时,这是一个常见问题。
从Windows复制的.txt
文件的格式在Linux中为dos
,因此您需要将其更改为unix
。