Ich habe zwei fasta Dateien mit mehreren SequenzenSchleife über IDs von zwei FASTA-Dateien
cat file1.fasta
>1
ACGTCGAT
>2
ACTTTATT
>3
ACGGGG
cat file2.fasta
>1
CCGGAGC
>2
TGTCAGTC
>3
CTACGTCTT
Ich habe auch eine Liste von IDs für jede fasta Datei, die ich spezifische Sequenzen von ID zu extrahieren verwenden möchten, stellen Sie eine 2 Sequenz fasta und dann einige Operationen (align, calc distance).
Listen:
cat file1.list
1
3
cat file2.list
2
1
In Wirklichkeit dieser fasta Dateien und Listen sind Tausende von Sequenzen/Zeilen lang
ich in den Listen über jede Zeile Schleife versuchen die fasta Datei zu extrahieren, dass Spiele bestimmte ID/Zeile, dann kombinieren Sie die Fasta-Sequenz aus jeder Datei in eine zwei Sequenz Fasta-Datei, die ausgerichtet werden kann, usw. Grundsätzlich möchte ich eine paarweise Ausrichtung von jeder Fasta-Sequenz mit seinem "Paar". Also, basierend auf dem Beispiel hier und der Reihenfolge der Listen-ID, möchte ich die Fasta-Sequenz 1 von file1.fasta mit Fasta-Sequenz 2 von file2.fasta paaren und dann mit dem nächsten Paar fortfahren (Sequenz 3 von Datei1). Fasta, und Sequenz 1 von file2.fasta, etc). Extrahieren von Fasta-Sequenzen basierend auf ID ist relativ einfach (ein paar Möglichkeiten, es zu tun), aber man ist faOneRecord
, die nur als Eingabe die Fasta-Datei, aus der Sie extrahieren möchten, dann den Datensatz/ID, die Sie finden möchten, und gibt das Fasta zurück Sequenz und Header:
faOneRecord <in.fa> <recordName>
so, nach der ersten Schleife, würde ich diese Datei auf der Grundlage der ID-Liste erstellt hat:
>1
ACGTCGAT
>2
TGTCAGTC
und so weiter.
Ich würde denken, das ist relativ einfach zu tun, aber ich kann nicht scheinen, dorthin zu gelangen. Dann, sobald ich diese 2 Sequenz fasta, jede Schleife mache, möchte ich ausrichten und Entfernungsschätzungen erhalten, in eine Datei ausdrucken und zur nächsten Schleife gehen. Der Rest davon kann etwas Arbeit erfordern und erfordert spezielle Programme, aber ich brauche Hilfe, nur die 2 Sequenz Fasta extrahiert/über die Ids Looping zu produzieren.
Ich denke, die große Frage ist, wie über die IDs Schleife und dann Rohr diese IDs als Argumente in den faOneRecord
Befehl
Dies könnte zu spezifisch sein, und wenn ja, entschuldige ich mich, aber alle Ideen auf, wie man gestartet wäre hilfreich und sehr geschätzt.
Müssen Sie wirklich Bash verwenden? Dies ist ein Problem, das trivial in einer Sprache gelöst werden kann, in der Sie sowohl Fasta-Dateien öffnen als auch die Sequenzen in einem Array speichern können und bei denen Sie die Listendateien parallel durchlaufen können. Beides ist in bash sehr schwierig. – Marian
Es muss nicht in bash sein ... Ich muss einfach Programme in bash aufrufen. Eine Python (Biopython) Lösung ist wahrscheinlich einfacher, aber ich bin nicht sehr versiert. Hast du einen Vorschlag wie man das in Python startet? – user95146