Joern Hameister's Homepage
:: News :: Publikationen :: Bücher :: Projekte :: Links :: Kontakt :: 

:: Projekte :: BioPerlTools ::

Bioinformatik Tools

In den folgenden Abschnitten findet man ein paar nützliche Tools zur Sequenzanalyse in der Bioinformatik. Alle Tools sind in Perl geschrieben.

simpleRepeatStatistics.pl

Die mit diesem Perl-Skript läßt sich eine Repeat-Tabelle einlesen und nach SimpleRepeats durchsuchen. D.h. es werden nur die Zeilen aus der Repeat-Tablle verwendet, die als repClass den Eintrag "SimpleRepeat" haben. Danach werden die Muster (Pattern) der SimpleRepeats gezählt (Wert in repName) und die Gesamtlänge der Muster gespeichert (genoEnd-genoStart).
Zur Kontrolle werden zwei Logdateien herausgeschrieben. Die eine enthält alle Zeilen der Repeat-Tabelle, die SimpleRepeats enthalten haben (log.txt). In der anderen Datei findet man die restlichen Zeilen (logrest.txt).
Der erste Teil der berechneten Statistik hat folgende Form:
start end length rawPattern pattern patternlength 14440493 14440580 87 (TTTC)n TTTC 4 14458616 14458686 70 (TG)n TG 2 14459642 14459782 140 (TA)n TA 2 ... Sobald eine Zeile in der Repeat-Tabelle gefunden wird, die ein SimpleRepeat ist, wird dafür ein Eintrag in der Ausgabedatei erstellt. Dieser Eintrag enthält den Startwert (genoStart), den Endwert (genoEnd), die Länge (genoEnd-genoStart), das Muster (repName), das extrahierte Muster (ohne Klammern und n) und die Länge des Musters.
Der zweite Teil der berechneten Statistik hat folgende Form:
--------------------------------------------------------------------------- Number of occurence of a pattern in the Repeat table file: Pattern: The pattern Occurences: Number of occurrences of the pattern in the repeat table CompleteLength: Sum of all (endpos-startpos) of the repeate table tAbsoluteOccurence: CompleteLength divided by pattern length Pattern Occurences CompleteLength AbsoluteOccurence (A)n = 141 3897 3897 (AAATG)n = 2 464 92.8 (AACTG)n = 1 39 7.8 (AATAG)n = 3 214 42.8 ... Es gibt eine kurze Beschreibung was angezeigt wird und eine Kurzerklärung einzelnen Spalten der Statistik. Dann folgen die eigentlichen Ergebnisse. In der ersten Spalte findet man das Muster. In der zweiten Spalte die Anzahl der gefundenen Muster. D.h. in wievielen Zeilen der Repeat-Tabelle, dieses Muster gefunden wurde. Die dritte Spalte enthält die Gesamtlänge aller Muster. D.h. die Summe aller Längen (genoEnd-genoStart), der Zeilen, die das untersuchte Muster enthalten haben. Die vierte Zeile enthält den Wert, den man erhält, wenn man die summierte Länge (Spalte 3) durch die Länge des Musters teilt.

Eine kurze Hilfe erhält man, wenn man das Tool mit simpleRepeatStatistics.pl -h aufruft.
Allgemein benutzt man es folgendermaßen: simpleRepeatStatistics.pl REPEATTEABLE OUTPUTFILE
Wobei REPEATTEABLE der Dateiname der Repeat-Tabelle ist und OUTPUTFILE der Name der Statistik-Datei ist.
Download: simpleRepeatStatistics.pl

repeatTable.pl

Mit diesem Tool kann man die Start- und Endpositionen aus einer Repeat-Tabelle nach frei definierbaren Regeln extrahieren. Einschränkung ist, daß keine ODER-Verknüpfungen möglich sind. Falls dies gefordert ist, sollte man das Script repeatClassTable.pl benutzen.
Als Eingabedatei dient eine Repeat-Tabelle, die folgende Form hat:
#bin swScore milliDiv milliDel milliIns genoName genoStart genoEnd genoLeft strand repName repClass repFamily repStart repEnd repLeft id 695 200 135 54 0 chr22 14430028 14430065 -35124645 + MIRb SINE MIR 86 124 -144 1 695 1933 186 36 43 chr22 14430447 14430886 -35123824 - MER4B-int LTR ERV1 -5911 847 412 2 695 1640 212 36 117 chr22 14430887 14431417 -35123293 - MER4E1 LTR ERV1 -294 487 1 3 695 2581 125 39 7 chr22 14431428 14431864 -35122846 + MER4B LTR ERV1 1 450 -160 4 695 2128 120 3 0 chr22 14431883 14432199 -35122511 + AluSx SINE Alu 1 317 0 5 695 2170 170 35 7 chr22 14432200 14432604 -35122106 - MER4E LTR ERV1 -14 752 338 6 Wird das Script mit folgenden Parametern aufgerufen: ./repeatTable.pl INPUT.txt OUTPUT.txt -repClass LTR
wobei INPUT.txt der Dateiname mit der Repeat-Tabelle ist, dann erhält man die Datei OUTPUT.txt mit folgendem Inhalt: {14430448, 14430886} {14430888, 14431417} {14431429, 14431864} {14432201, 14432604} Die Ausgabedatei enthält also Start- und Endpositionen aller LTRs. Zu beachten ist, daß die Startpositionen um eins inkrementiert wurden, weil die Repeat-Tabellen normalerweise 0-Based sind. Natürlich lassen sich auch mehrere Parameter kombinieren. Will man z.B. alle Positionen der LTRs auf dem +-Strang, dann kann man dies mit folgendem Kommando erreichen:

./repeatTable.pl INPUT.txt OUTPUT.txt -repClass LTR -srand +
Zur Kontrolle wird eine Logdatei herausgeschrieben, die nicht nur die Positionen enthält, sondern die komplette Zeile der original Repeat-Tabelle. Sie heißt log.txt. Eine Hilfe mit weiteren Beispielen erhält man mit dem Aufruf:

./repeatTable.pl -h

Download: repeatTable.pl

repeatClassTable.pl

Mit diesem Tool kann man die Start- und Endpositionen aus einer Repeat-Tabelle nach definierbaren Regeln extrahieren. Eine Einschänkung ist, daß nur repName und repClass angegeben werden kann.
Als Eingabedatei dient eine Repeat-Tabelle, die folgende Form hat:
#bin swScore milliDiv milliDel milliIns genoName genoStart genoEnd genoLeft strand repName repClass repFamily repStart repEnd repLeft id 695 200 135 54 0 chr22 14430028 14430065 -35124645 + MIRb SINE MIR 86 124 -144 1 695 1933 186 36 43 chr22 14430447 14430886 -35123824 - MER4B-int LTR ERV1 -5911 847 412 2 695 1640 212 36 117 chr22 14430887 14431417 -35123293 - MER4E1 LTR ERV1 -294 487 1 3 695 2581 125 39 7 chr22 14431428 14431864 -35122846 + MER4B LTR ERV1 1 450 -160 4 695 2128 120 3 0 chr22 14431883 14432199 -35122511 + AluSx SINE Alu 1 317 0 5 695 2170 170 35 7 chr22 14432200 14432604 -35122106 - MER4E LTR ERV1 -14 752 338 6 Wird das Script mit folgenden Parametern aufgerufen:
./repeatTable.pl INPUT.txt OUTPUT.txt OUTPUT_REST.txt -repClass LTR -repClass SINE
wobei INPUT.txt der Dateiname mit der Repeat-Tabelle ist, dann erhält man die Datei OUTPUT.txt mit folgendem Inhalt: {14430029, 14430065} {14430448, 14430886} {14430888, 14431417} {14431429, 14431864} {14431884, 14432199} {14432201, 14432604} OUTPUT_REST.txt enthält alle Positionen, die nicht in die Klasse LTR und SINE gehören. Zu beachten ist, daß die Startpositionen um eins inkrementiert wurden, weil die Repeat-Tabellen normalerweise 0-Based sind. Zur Kontrolle werden zwei Logdateien herausgeschrieben, die nicht nur die Positionen enthalten, sondern die komplette Zeile der original Repeat-Tabelle. Wobei die Datei log.txt die kompletten Zeilen der Positionen aus OUTPUT.txt enthält und logrest.txt alle Zeilen der Positionen aus OUTPUT_REST.txt.

Download: repeatClassTable.pl

removeLineFeeds.pl

Diese kleine Tool entfernt die Zeilenumbrüche in einer Textdatei.
Der Aufruf sieht folgendermaßen aus:
./removeLineFeeds.pl input.txt output.txt Download: removeLineFeeds.pl

replaceX.pl

Mit diesem Tool ist es möglich in einer Datei bestimmte Zeichen durch andere Zeichen zu ersetzen. Also können beispielsweise in der Datei Input.txt, die eine DNA-Sequenz enthält, alle Zeichen 'T' durch das Zeichen '1' ersetzt werden.
Mittels regulären Ausdrücken ist es auch möglich komplexere Ersetzungen durchzuführen. Beispielsweise alle N und X durch '0' zu ersetzen und gleichzeitig alle 'A', 'C', 'T' und 'G' durch '1' zu ersetzen.
Der Aufruf dafür wäre:
./replaceX.pl input.txt output.txt 'X|N' 0 'A|C|T|G' 1 Dieses Tool kann in Verbindung mit dem Tool genpos2binary.pl nützlich sein.
Download: replaceX.pl

genpos2binary.pl

Dieses Tool ermöglicht es aus einer Datei mit Gen-Positionen eines binäre Representation zu erzeugen. Ein Datei mit Gen-Positionen kann folgendermaßen aussehen: 2 5 8 10 12 15 Das Tool produziert dafür als Ausgabe folgendes: 011110011101111 Die Funktionsweise ist folgende:
Das erste Tupel (2,5) sorgt dafür das '0111' erzeugt wird. Zu beachten ist, daß der Index bei 1 und nicht bei 0 startet! Das zweite Tupel (8,10) produziert die Ausgabe '00111'. Die restliche Ausgabe '01111' wird von dem Tupel (12,15) erzeugt.
Der Aufruf des Tools kann folgendermaßen aussehen:
./genpos2binary.pl input.txt output.txt Download: genpos2binary.pl

sequenceAND.pl

Dieses Tool ist in der Lage zwei binäre Sequenzen mittels dem logischen UND zu verknüpfen. Es ist also möglich in zwei zuvor maskierte Sequenzen nach Überscheidungen zu suchen. Diese maskierten Sequenzen können beispielsweise mit den Programmen replaceX.pl und genpos2binary.pl entstanden sein.
Download: sequenceAND.pl
© 2005, 2006 Jörn Hameister