Extraindo lista de padrões que são produzidos por outro comando

1

Eu posso extrair lista de padrões usando o seguinte comando,

fgrep -A 1 -f patternlist.txt filename.fasta

mas, existe uma maneira que eu possa extrair sem criar outro arquivo (patternlist.txt neste caso) da saída de outro comando?

Como:

cut -d "      "  Cell_cycle.txt -f 1 | grep ...???... filename.fasta

EDITAR:

O Cell_cycle.txt tem esta aparência:

$ cat Cell_cycle_Kegg_pathway
ctg2977_3.g207.t1   K06626
P05_Ctg654_12.g311.t2   K03094
P06_Ctg710_7.g346.t1    K05868

Eu quero pegar a primeira coluna e extrair as seqüências do arquivo fasta.

EDIT 2:

Eu tenho uma lista de seqüências em um UniqueSeq_28Dec2014.fasta

>ctg1474_1.g69.t1 (first line)
atgaaatgttggtgcagcgccctggcacttctcc...... (second line)
>ctg1475_1.g70.t1 (third line)
atgaaattgcagcgccctggcacttctcctgcag...... (fourth line)

Eu quero imprimir as duas primeiras seqüências (das linhas 1 a 4). No entanto, eu não quero usar head -4 UniqueSeq_28Dec2014.fasta , que também pode dar a minha saída, mas eu quero usando a substituição do processo.

Eu tentei o seguinte comando, mas parece que não funciona. Acabei de ver 4 linhas vazias.

grep -A 1 -Ff <(grep '>' UniqueSeq_28Dec2014.fasta |head -4) UniqueSeq_28Dec2014.fasta
    
por Prakki Rama 08.12.2014 / 06:23

2 respostas

1

Use a substituição do processo <() :

fgrep -A 1 -f <(cut -d " " -f 1 Cell_cycle.txt)  filename.fasta
    
por 08.12.2014 / 07:05
1

Também isso (para um pouco mais curto e mais legível):

grep -Ff <(awk '{print $1}' Cell_cycle.txt) filename.fasta
    
por 08.12.2014 / 07:54