Obtendo as informações de uma lista contendo centenas de nomes de um arquivo gtf

0

Eu tenho um arquivo GTF (delimitado por tabulação) e uma lista de nomes genéticos em outro arquivo de texto. Eu queria saber como posso obter as informações da lista de genes de um arquivo GTF com grep, awk ? Eu tentei alguns comandos, mas nenhum deles foi bem sucedido.

Aqui está um exemplo de arquivo 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";

e aqui está um exemplo de uma lista do nome do gene no arquivo de texto (que eu quero extrair todas as informações relacionadas do arquivo gtf).

DDX11L1
TCF7L2

Obrigado

    
por Mary 02.10.2018 / 19:18

2 respostas

1

Ainda não está claro. Você deseja listar todas as linhas para as quais o gene_name é encontrado no segundo arquivo de texto? Para isso, tente

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

Se você tiver um arquivo com a pequena lista de dados para os quais deseja obter os detalhes, você pode fazer um simples grep . Digamos, por exemplo, que sua lista de cada datum esteja em um arquivo chamado needles.list e sua coleção de dados esteja em um arquivo chamado haystack.gtf . Você pode então:

$ grep -f needles.list haystack.gtf
    
por 02.10.2018 / 20:43

Tags