
1. What is starcode?
2. Source file list.
3. Compilation and installation.
4. Running starcode.
5. Running starcode-umi.
6. File formats.
7. License.
8. Citation.
StarCode ist eine DNA -Sequenz -Clustering -Software. Die StarCode -Clusterbildung basiert auf allen Paaren, die in einem bestimmten Levenshtein -Abstand suchen (Einfügung und Löschungen ermöglichen), gefolgt von einem Clustering -Algorithmus: Nachrichtenübergabe, Kugeln oder angeschlossenen Komponenten. Typischerweise wird eine Datei mit einem Satz von DNA -Sequenzen als Eingabe übergeben, gemeinsam mit dem gewünschten Clustering -Abstand und Algorihtm. StarCode gibt die kanonische Sequenz des Clusters, die Clustergröße, die Menge verschiedener Sequenzen zurück, die den Cluster und die Eingangsleitungsnummern der Clusterkomponenten komponieren.
StarCode hat viele Anwendungen im Bereich Biologie, wie DNA/RNA -Motivwiederherstellung, Barcode/UMI -Clustering, Sequenzierungsfehlerwiederherstellung usw.
Um StarCode zu installieren, klonen Sie dieses Git -Repository (oder laden Sie den neuesten Release -StarCode v1.3 manuell herunter):
Git Clone https://github.com/gui11Aume/starcode
Die Dateien sollten in einem Ordner mit dem Namen "StarCode" heruntergeladen werden. Zum Kompilieren verwenden (Mac -Benutzer benötigen "Xcode", die im Mac AppStore verfügbar sind):
Machen Sie -c StarCode
Eine binäre Datei "StarCode" wird erstellt. Sie können optional einen symbolischen Link erstellen, um StarCode aus jedem Verzeichnis auszuführen:
sudo ln -s starcode/starcode/usr/bin/starcode
StarCode läuft unter Linux und Mac. Es wurde nicht unter Windows getestet.
STARCODE [Optionen] {[-i] input_file | -1 paired_end_file1 -2 paired_end_file2} [-o output_file]
Standardmäßig verwendet StarCode Clustering -Parameter, die bei vielen Problemen von Bedeutung sind. Die Ausgabe sieht jedoch möglicherweise nicht genau so aus, wie Sie es erwarten. Dies kann aus den folgenden Gründen sein:
Die Clustering -Methode ist die Nachrichtenübergabe. Dies bedeutet, dass Cluster durch Zusammenführen kleiner Cluster in größere Bottom-ups gebaut werden. Der Prozess ist rekursiv, so dass Sequenzen in einem Cluster möglicherweise keine Nachbarn sind , dh sie liegen möglicherweise nicht innerhalb der angegebenen Levenshtein -Entfernung. Wenn dies der Fall sein muss, verwenden Sie stattdessen Sphere -Clustering (siehe Option -s oder -SPHheres unten).
Das Clustering -Verhältnis beträgt 5. Dies bedeutet, dass ein Cluster nur dann eine kleinere absorbieren kann, wenn er mindestens fünfmal größer ist. Eine praktische Implikation ist, dass Cluster ähnlicher Größe nicht verschmolzen werden . Sie können einen weiteren Schwellenwert für das Zusammenführen von Clustern auswählen (siehe Option -r oder -Cluster -Ratio unten).
-D oder -distanzabstand
Defines the maximum Levenshtein distance for clustering.
When not set it is automatically computed as:
min(8, 2 + [median seq length]/30)
-R oder-Cluster-Ratsios -Verhältnis
(Message passing only) Specifies the minimum sequence count ratio to cluster two matching
sequences, i.e. two matching sequences A and B will be clustered together only if
count(A) > ratio * count(B).
Sparse datasets may need to set -r to small values (minimum is 1.0) to trigger clustering.
Default is 5.0.
-S oder -SPHAREES
Use sphere clustering algorithm instead of message passing (MP). Spheres is more greedy than MP:
sorted by size, centroids absorb all their matches.
-c oder -konnectiert-comp
Clusters are defined by the connected components.
-Non-Redundant
Removes redundant sequences from the output. Only the canonical sequence of each cluster is
returned.
-Print-Cluster
Adds a third column to the starcode output, containing the sequences that compose each cluster.
By default, the output contains only the centroid and the counts.
-seq-id
Shows the input sequence order (1-based) of the cluster components.
Einzel-Datei-Modus:
-i oder -Eingabedatei
Gibt die Eingabedatei an.
Paired-End-Fastq-Dateien:
-1 Datei1 -2 Datei2
Gibt zwei Fastq-Dateien mit gepaartem Ende für den Clustering-Modus gepaartes Ende an.
Standardeingabe wird verwendet, wenn weder -i noch -1/-2 eingestellt sind.
-O oder -Output -Datei
Specifies output file. When not set, standard output is used instead.
-Output1 Datei1 -Output2 Datei2
(Paired-end mode with --non-redundant option only). Specifies the output file names of the
processed paired-end files.
Die Standardausgabe wird verwendet, wenn -O nicht eingestellt ist.
Wenn-Output1/2 im Paired-End-Non-Redundant-Modus nicht angegeben ist, sind die Ausgabedateinamen die Namensnamen für Eingabedateien mit einem Suffix "-starcode".
-t oder -Threads Threads
Defines the maximum number of parallel threads.
Default is 1.
-Q oder -quiet
Non verbose. By default, starcode prints verbose information to
the standard error channel.
-V oder --version
Prints version information.
-H oder -HELP
Prints usage information.
StarCode-Umi ist ein Python-Skript, das starcode zum Cluster-UMI-markierte Sequenzen verwendet. Es wird angenommen, dass UMI-markierte Sequenzen zu Beginn der Lektüre eine eindeutige molekulare Kennung enthalten, gefolgt von einer anderen (längeren) Sequenz. StarCode-Umi führt eine doppelte Runde Clustering und Verschmelzung durch, um die bestmöglichen Cluster von UMI- und Sequenzpaaren zu finden.
STARCODE-UMI [Optionen] --umi-len n input_file1 [input_file2]
--umi-len -Nummer
Defines the length of the UMI tags. Adding some extra nucleotides may improve the clustering
performance.
-Starcode-Pfad- Pfad
Path to `starcode` binary file. Default is `./starcode`.
--umi-d Abstand
Match distance (Levenshtein) for the UMI region.
-Seq-D -Entfernung
Match distance (Levenshtein) for the sequence region.
--um-Cluster- Clustering-Algorithmus
Clustering algorithm to be used in the UMI region. ('mp' for message passing, 's' for spheres,
'cc' for connected components). Default is message passing.
-SEQ-Cluster-Clustering- Algorithmus
Clustering algorithm to be used in the seq region. ('mp' for message passing, 's' for spheres,
'cc' for connected components). Default is message passing.
-Umi-cluster-ratio- Clustering-Algorithmus
(Only for message passing in UMI). Minimum clustering ratio (same as -r option in starcode).
-SEQ-Cluster-Ratio-Clustering- Algorithmus
(Only for message passing in seq). Minimum clustering ratio (same as -r option in starcode).
-Seq-Trim -Ausstattung
Use only *trim* nucleotides of the sequence for clustering. Starcode becomes memory inefficient
with very long sequences, this parameter defines the maximum length of the sequence that will
be used for clustering. Set it to 0 to use the full sequence. Default is 50.
-seq-id
Shows the input sequence order (1-based) of the cluster components.
-Threads Threads
Defines the maximum number of parallel threads to be used in the UMI process.
Default is 1.
-Seq-Threads -Threads
Defines the maximum number of parallel threads to be used in the sequence process.
Default is 1.
Besteht aus einer Datei mit einer Sequenz pro Zeile. Nur die Standard-DNA-Base-Zeichen werden unterstützt ('A', 'C', 'G', 'T'). Die Sequenzen enthalten möglicherweise keine leeren Räume am Anfang oder am Ende der Zeichenfolge, da diese als Ausrichtungszeichen gezählt werden. Die Datei enthält möglicherweise keine leeren Zeilen, da diese als Sequenzen mit Nulllänge betrachtet werden. Die Sequenzen müssen nicht sortiert werden und können wiederholt werden.
Beispiel:
TTACTATCGATCATCATCGACTGACTACG
ACTGCATCGACTAGCTACGACTACGCTACCATCAG
TTACTATCGATCATCATCGACTGACTAGC
ACTACGACTACGACTCAGCTCACTATCAGC
GCATCGACCGCTACTACGCATACTACGACATC
Wenn die Anzahl der Sequenzen bekannt ist, kann sie in der Eingabedatei unter Verwendung des folgenden Formats angegeben werden:
[Sequenz] t [count] n
Wobei ' t' das Registerkartenzeichen und ' n' das neue Zeilenzeichen bezeichnet. Die Sequenzen müssen nicht sortiert werden und können ebenfalls wiederholt werden. Wenn eine wiederholte Sequenz gefunden wird, werden ihre Zählungen zusammengefügt. Nach wie vor können die Sequenzen keine zusätzlichen Zeichen enthalten und die Datei können keine leeren Zeilen enthalten.
Beispiel:
TATCGACTCTATCTATCGCTGATGCGTAC 200
CGAGCCGCCGGCACGTCACGACGCATCAA 1
TAGCACCTACGCATCTCGACTATCACG 234
CGAGCCGCCGGCACGTCACGACGCATCAA 17
TGACTCTATCAGCTAC 39
StarCode unterstützt auch Fasta- und Fastq -Dateien. Beachten Sie jedoch, dass StarCode die Qualitätsfaktoren nicht verwendet und die einzigen relevanten Informationen die Sequenz selbst sind. Die Fasta/Fastq -Etiketten werden nicht verwendet, um die Sequenzen in der Ausgabedatei zu identifizieren. Die Sequenzen müssen nicht sortiert werden und können wiederholt werden.
Beispiel Fasta:
> FASTA sequence 1 label
ATGCATCGATCACTCATCAGCTACAG
> FASTA sequence 2 label
TATCGACTATCTACGACTACATCA
> FASTA sequence 3 label
ATCATCACTCTAGCAGCGTACTCGCA
> FASTA sequence 4 label
ATGCATCGATTACTCATCAGCTACAG
Beispiel Fastq:
@ FASTQ sequence 1 label
CATCGAGCAGCTATGCAGCTACGAGT
+
-$#'%-#.&)%#)"".)--'*()$)%
@ FASTQ sequence 2 label
TACTGCTGATATTCAGCTCACACC
+
,*#%+#&*$-#,''+*)'&.,).,
StarCode druckt eine Linie für jeden erkannten Cluster mit dem folgenden Format:
[Kanonische Sequenz] T [Clustergröße] T [Clustersequenzen] n
Wobei ' t' das Registerkartenzeichen und ' n' das neue Zeilenzeichen bezeichnet. 'Kanonische Sequenz' ist die Sequenz des Clusters, die mehr Zählungen aufweist, 'Clustergröße' die aggregierte Anzahl aller Sequenzen, die den Cluster bilden, und 'Clustersequenzen' ist eine Liste aller durch Kommas getrennten Clustersequenzen und in willkürliche Reihenfolge. Die Linien werden in absteigender Reihenfolge nach "Clustergröße" sortiert.
Zum Beispiel eine Ausführung mit der folgenden Eingabe- und Clustering-Entfernung von 3 (-d3):
TAGCTAGACGTA 250
TAGCTAGCCGTA 10
TAAGCTAGGGGT 16
ACGCGAGCGGAA 155
ACTTTAGCGGAA 1
würde die folgende Ausgabe erzeugen:
TAGCTAGACGTA 260 TAGCTAGACGTA,TAGCTAGCCGTA
ACGCGAGCGGAA 156 ACGCGAGCGGAA,ACTTTAGCGGAA
TAAGCTAGGGGT 16 TAAGCTAGGGGT
Das gleiche Beispiel mit einer restriktiveren Entfernung -D2 würde die folgende Ausgabe erzeugen:
TAGCTAGACGTA 260 TAGCTAGACGTA,TAGCTAGCCGTA
ACGCGAGCGGAA 155 ACGCGAGCGGAA
TAAGCTAGGGGT 16 TAAGCTAGGGGT
ACTTTAGCGGAA 1 ACTTTAGCGGAA
Im nicht redundanten Ausgangsmodus druckt StarCode nur die kanonische Sequenz jedes Clusters, eine pro Zeile. Nach dem Beispiel aus dem vorherigen Abschnitt wäre der Ausgang mit Abstand 3 (-d3):
TAGCTAGACGTA
ACGCGAGCGGAA
wohingegen für -d2:
TAGCTAGACGTA
ACGCGAGCGGAA
TAAGCTAGGGGT
ACTTTAGCGGAA
StarCode ist unter der GNU General Public Lizenz, Version 3 (GPLV3), lizenziert. Weitere Informationen finden Sie in der Lizenzdatei oder finden Sie unter:
http://www.gnu.org/licenses/
Wenn Sie unsere Software verwenden, zitieren Sie bitte:
Zorita E, Cusco P, Filion GJ. 2015. StarCode: Sequenzclustering basierend auf der All-Pairs-Suche. Bioinformatik 31 (12): 1913-1919.