Frage

Ich habe eine riesige Datei mit der BLAST-Ausgabe und muss die Abfrage-ID, das Subjekt GI und den Rahmen (grundsätzlich die gesamte Zeile) mit dem niedrigsten E-Wert auswählen, wobei die doppelten Leitungen weggelassen werden (alle anderen Zeilen mit anderen höheren E-Werten weglassen).So sieht die Datei aus wie:

generasacodicetagpre.

Die erwartete Leistung sollte in diesem Fall nur diese zwei Zeile sein, da sie mit kleinstem E_Value sind:

generasacodicetagpre.

Ich habe meinen Code geschrieben, scheint aber nicht zu funktionieren.Könnten Sie mir bitte helfen, dieses Problem zu lösen?Ich würde mich wirklich freuen, Ihre Zeit und Hilfe zu schätzen.Das habe ich bisher:

generasacodicetagpre.

War es hilfreich?

Lösung

Versuchen Sie es an der Spitze nach dem Shebang, "Verwendung streng" hinzufügen - es kann dazu beitragen, etwas anderes zu finden.

versuchen Sie es ersetzen ", wenn ($ dedupe {$ query_id})" mit "if (definiert (definiert ($ dedupe {$ query_id}))"

Bedenken Sie, dass die meisten Menschen nicht Biologen / Genomisten (!) sind, und haben keine Ahnung, worüber Sie sprechen, wir sehen nur Zahlen und Wörter, die uns nichts bedeuten, also wenn Sie es besser erklären können, können wir es tunmehr helfen können.

Das Folgende ist übrigens idiomatischer.

generasacodicetagpre.

Ihr Code geht immer von der Linie 64 bis 81. Es tritt nie in die Sekundärtests ein - es findet niemals Duplikate.Versuchen Sie, es im Debugger zu leiten, damit:

generasacodicetagpre.

Tun Sie dann wiederholt "N" für "Next Line".Sie können variable Werte mit "P-Variablennamen" drucken.

Wenn ich den Separator für die TRITE () s aus der Registerkarte in den Speicherplatz wechsle, bekomme ich diese - die die richtige Anzahl von Ausgabedaten aufweist:

generasacodicetagpre.

Andere Tipps

Warum versuchen Sie, Ihren eigenen Blast-Parser zu schreiben.Verwenden Sie bioperl

http://www.bioperl.org/wiki/howto:searchio##Ncbi-blast_parsing_problems

Ich benutze nicht mehr zu viel zu viel, aber hier ist die raue Vorstellung von dem, was zu tun ist

generasacodicetagpre.

Der Wert ist in der wissenschaftlichen Notation, Perl wird es wie eine Zeichenfolge behandeln, wenn der weniger als den Vergleich dabei ist.

Ich glaube, ich würde auch das Dedup-Sachen anders machen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top