web-dev-qa-db-fra.com

Comment grep séquence de fasta en utilisant la liste des identifiants dans un autre fichier?

J'ai un gros fichier de fasta sequence et une liste d'identifiants. J'ai besoin de grep certaines séquences avec en-tête en utilisant leurs identifiants d'un autre fichier. Voici les exemples de fichiers.

Fichier 1:

>AB1234
ACGTAGATA
>AB3456
ACGATAGAT
>AB4567
ACGTGTGA

Fichier 2

>AB1234
>AB3456
1
Manoj Kumar

Vous pouvez avoir grep lire les motifs d'un fichier, un motif par ligne, avec l'option -f:

grep -x -F -A 1 -f 'File 2' 'File 1'

Aditionellement,

  • -F interprète les motifs littéralement et non comme des expressions régulières,

  • -x ne correspond qu'à des lignes entières,

  • -A N imprime N lignes après chaque match.

1
David Foerster

J'ai eu ceci au travail:

for i in $(cut -d" " -f1- file2); do grep -o "$i" file1 | tee -a result.txt; done

Hypothèse file1 == id fichier et file2 == fichier à greped

Result.txt:

AB1234
AB3456
0
George Udosen