2016-08-04 8 views
0

I Datei mit mehrfachen Linien haben, wie nachfolgend beschrieben mit Kopf für jede Spezies mit ‚>‘ StartPosition ändert Wort

>gi|398852808|ref|NZ_AKJD01000108.1| Pseudomonas sp. GM80 PMI37_contig126.126, whole genome shotgun sequence 
CCGCAGGCTGCGATCTTTTGATGTTGTTTTTTTAAGATCAAGATCAAAAGATCGCAGCCTTCGGCAGCTCCTACAGGTGG 
TCGTGGGTTTAAGCCGCTCAATCCAGTAAACTGCGGCACGTTTTTCTCTAAGTAGTGTTTTCCCCATGCAAATTGCTCTG 
GCGCCCATGGAGGGGTTGGTCGACGACATCCTCCGCGACGTGCTGACCCGCGTTGGCGGCATCGATTGGTGCGTGACTGA 
ATTCATTCGGGTCAACGATCAGTTGCTCACCCCGGCTTACTTCCACAAGTTCGGCCCCGAGCTGCTCAACGGTGCCCGCA 
CGGCGTCCGGCGTGCCATTGCGTGTGCAATTGCTCGGTTCCGACCCGGTGTGCCTGGCGGAAAACGCTGCACTGGCCTGC 

Ich mag den Header finden und es

>NZ_AKJD01000108.1|kraken:taxid|398852808 Pseudomonas sp. A3(2016), complete genome 
CGCGATGGTCGTTAACGAAAACGCATGCTTACTGGCTAAACGCGGCGCTCTTGACTCCAT 
CGCGAGCAAGCTCGCTCCTACAGAAGAAAGCGGCGCTCTAGTGCGCCTCATCCCAGTTAT 
TGCCTACCCCCACCTCGACCAGCAGCGGCACATCCAGTTGCGCGGCCCCGCTCATGTGCA 
zu

ändern

Ohne die Struktur der Datei zu ändern.

Ich versuchte dies awk-v repl = "> kraken: taxid | $ ID |" '{gsub (/ ^> /, repl, $ 0); Drucken $ 0} '$ FILE

Ich bin in der Lage, Wörter zu verschieben, aber nicht in der Lage zu entfernen oder das gewünschte Ergebnis zu erhalten.

Dank

+2

[bearbeiten] Sie Ihre Frage, um die Umwandlung zu erklären, die Sie machen möchten. Momentan sehen Ihre Eingabe und Ausgabe wie 2 teilweise überlappende, aber nicht verwandte Textblöcke aus. Woher kam zum Beispiel 'A3 (2016)'? Warum ist Ihre Ausgabe um 2 Zeilen geschrumpft? Warum wurde 'CCG ...' 'CGC ...'? etc... –

Antwort

0

Soweit ich sagen kann, möchten Sie die Felder auf der Kopfzeile neu zu ordnen:

1 >gi 
2 398852808 
3 ref 
4 NZ_AKJD01000108.1 
5 Pseudomonas sp. GM80 PMI37_contig126.126, whole genome shotgun sequence 

1 >NZ_AKJD01000108.1 
2 kraken:taxid 
3 398852808 Pseudomonas sp. A3(2016), complete genome 

Die awk Sie ist in etwa so sein müssen :

BEGIN { FS = "[|]" } 

/^>/ { 
    OFS = "|" 

    split($5, words,//) 
    Pseudomonas = " " words[1] " " words[2] " " "A3(2016), complete genome" 

    print ">" $4, "kraken:taxid", $2 Pseudomonas 
    next 
} 

{ print } 

Meine Vermutung ist, dass einige der Ausgabe-Literale tatsächlich Suchvorgänge sind, die die Eingaben kategorisieren oder umbenennen. Wenn dies der Fall ist, sollten Sie vor der Verarbeitung der Genomdatei assoziative Arrays für sie (aus anderen Eingabedateien) erstellen.

HTH.

Verwandte Themen