
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.
O StarCode é um software de cluster de sequência de DNA. O cluster de código StarC é baseado em todos os pares de pesquisa a uma distância especificada da Levenshtein (permitindo inserções e exclusões), seguido de um algoritmo de cluster: passagem de mensagens, esferas ou componentes conectados. Normalmente, um arquivo que contém um conjunto de sequências de DNA é passado como entrada, em conjunto com a distância de agrupamento desejada e o algorihtm. O StarCode retorna a sequência canônica do cluster, o tamanho do cluster, o conjunto de diferentes seqüências que compõem o cluster e os números da linha de entrada dos componentes do cluster.
O StarCode tem muitas aplicações no campo da biologia, como recuperação de motivos de DNA/RNA, cluster de código de barras/UMI, recuperação de erros de seqüenciamento, etc.
Para instalar o StarCode, clone este repositório Git (ou baixe manualmente o lançamento mais recente StarCode v1.3):
Git clone https://github.com/gui11aume/starcode
Os arquivos devem ser baixados em uma pasta chamada 'StarCode'. Use fazer fazer para compilar (os usuários do Mac exigem 'xcode', disponível no Mac AppStore):
Faça -C StarCode
Um arquivo binário 'StarCode' será criado. Opcionalmente, você pode fazer um link simbólico para executar o StarCode a partir de qualquer diretório:
sudo ln -s starcode/starcode/usr/bin/starcode
O StarCode é executado no Linux e Mac. Não foi testado no Windows.
StarCode [Opções] {[-i] input_file | -1 pared_end_file1 -2 pared_end_file2} [-o output_file]
Por padrão, o StarCode usa parâmetros de cluster que são significativos em muitos problemas. No entanto, a saída pode não parecer exatamente como você espera. Isso pode ser pelos seguintes motivos:
O método de cluster é a passagem de mensagens. Isso significa que os clusters são construídos de baixo para cima, fundindo pequenos aglomerados em maiores. O processo é recursivo; portanto, as sequências em um cluster podem não ser vizinhas , ou seja , elas podem não estar à distância especificada de Levenshtein. Se for esse o caso, use o cluster da esfera (consulte a opção -s ou - -esferas abaixo).
A taxa de agrupamento é de 5. Isso significa que um cluster pode absorver um menor apenas se for pelo menos cinco vezes maior. Uma implicação prática é que grupos de tamanho semelhante não são mesclados . Você pode escolher outro limite para mesclar clusters (consulte a opção -R ou - -Ratio abaixo).
-d ou -distância
Defines the maximum Levenshtein distance for clustering.
When not set it is automatically computed as:
min(8, 2 + [median seq length]/30)
-r ou- proporção de rátio de cluster
(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 ou --pheres
Use sphere clustering algorithm instead of message passing (MP). Spheres is more greedy than MP:
sorted by size, centroids absorb all their matches.
-C ou-CONNECT-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-clusters
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.
Modo de arquivo único:
-i ou -arquivo de entrada
Especifica o arquivo de entrada.
Arquivos FastQ de extremidade pareada:
-1 file1 -2 file2
Especifica dois arquivos FastQ de extremidade pareada para o modo de cluster de extremidade pareada.
A entrada padrão é usada quando nem -i nem -1/-2 são definidos.
-o ou - -output arquivo
Specifies output file. When not set, standard output is used instead.
--output1 file1 -output2 file2
(Paired-end mode with --non-redundant option only). Specifies the output file names of the
processed paired-end files.
A saída padrão é usada quando -O não está definido.
Quando--output1/2 não é especificado no modo de extremidade pareada-não redundente, os nomes dos arquivos de saída são os nomes dos arquivos de entrada com um sufixo "-starcode".
-t ou -threads
Defines the maximum number of parallel threads.
Default is 1.
-q ou --quiet
Non verbose. By default, starcode prints verbose information to
the standard error channel.
-v ou --version
Prints version information.
-h ou --help
Prints usage information.
O StarCode-UMI é um script python que usa starcode para agrupar sequências marcadas com umi. Presume-se que sequências marcadas com umi contenham um identificador molecular exclusivo no início da leitura seguida por outra sequência (mais longa). O StarCode-UMI realiza uma rodada dupla de agrupamento e fusão para encontrar os melhores clusters possíveis de pares de UMI e sequência.
StarCode-UMI [Options]-Numi- len input_file1 [input_file2]
-Número -len
Defines the length of the UMI tags. Adding some extra nucleotides may improve the clustering
performance.
-Path-starcode- path
Path to `starcode` binary file. Default is `./starcode`.
-Aumi-d Distância
Match distance (Levenshtein) for the UMI region.
-Distância doseq-d
Match distance (Levenshtein) for the sequence region.
-Algoritmo de cluster de aglomerado
Clustering algorithm to be used in the UMI region. ('mp' for message passing, 's' for spheres,
'cc' for connected components). Default is message passing.
-Algoritmo de cluster de aglomerado ESEQ
Clustering algorithm to be used in the seq region. ('mp' for message passing, 's' for spheres,
'cc' for connected components). Default is message passing.
-Algoritmo de cluster-ratio-ratio de cluster
(Only for message passing in UMI). Minimum clustering ratio (same as -r option in starcode).
-Algoritmo de cluster-ratio-ratio-ratio de cluster
(Only for message passing in seq). Minimum clustering ratio (same as -r option in starcode).
-Trim com acabamento
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.
-Aumi-threads Threads
Defines the maximum number of parallel threads to be used in the UMI process.
Default is 1.
-threads seq- threads
Defines the maximum number of parallel threads to be used in the sequence process.
Default is 1.
Consiste em um arquivo que contém uma sequência por linha. Somente os caracteres padrão de DNA-base são suportados ('a', 'c', 'g', 't'). As seqüências podem não conter espaços vazios no início ou no final da string, pois estes serão contados como caracteres de alinhamento. O arquivo pode não conter linhas vazias, pois elas serão consideradas sequências de comprimento zero. As seqüências não precisam ser classificadas e podem ser repetidas.
Exemplo:
TTACTATCGATCATCATCGACTGACTACG
ACTGCATCGACTAGCTACGACTACGCTACCATCAG
TTACTATCGATCATCATCGACTGACTAGC
ACTACGACTACGACTCAGCTCACTATCAGC
GCATCGACCGCTACTACGCATACTACGACATC
Se a contagem das sequências for conhecida, ela poderá ser especificada no arquivo de entrada usando o seguinte formato:
[Sequência] t [contagem] n
Onde ' t' indica o caractere da guia e ' n' o caractere da nova linha. As seqüências não precisam ser classificadas e também podem ser repetidas. Se uma sequência repetida for encontrada, suas contagens serão adicionadas juntas. Como antes, as seqüências podem não conter caracteres adicionais e o arquivo não pode conter linhas vazias.
Exemplo:
TATCGACTCTATCTATCGCTGATGCGTAC 200
CGAGCCGCCGGCACGTCACGACGCATCAA 1
TAGCACCTACGCATCTCGACTATCACG 234
CGAGCCGCCGGCACGTCACGACGCATCAA 17
TGACTCTATCAGCTAC 39
O StarCode também suporta arquivos FASTA e FASTQ. Observe, no entanto, que o StarCode não usa os fatores de qualidade e a única informação relevante é a própria sequência. Os rótulos FASTA/FASTQ não serão usados para identificar as seqüências no arquivo de saída. As seqüências não precisam ser classificadas e podem ser repetidas.
Exemplo de fasta:
> FASTA sequence 1 label
ATGCATCGATCACTCATCAGCTACAG
> FASTA sequence 2 label
TATCGACTATCTACGACTACATCA
> FASTA sequence 3 label
ATCATCACTCTAGCAGCGTACTCGCA
> FASTA sequence 4 label
ATGCATCGATTACTCATCAGCTACAG
Exemplo FastQ:
@ FASTQ sequence 1 label
CATCGAGCAGCTATGCAGCTACGAGT
+
-$#'%-#.&)%#)"".)--'*()$)%
@ FASTQ sequence 2 label
TACTGCTGATATTCAGCTCACACC
+
,*#%+#&*$-#,''+*)'&.,).,
O StarCode imprime uma linha para cada cluster detectado com o seguinte formato:
[Sequência canônica] t [tamanho do cluster] t [seqüências de cluster] n n
Onde ' t' indica o caractere da guia e ' n' o caractere da nova linha. 'Sequência canônica' é a sequência do cluster que tem mais contagens, 'tamanho do cluster' é a contagem agregada de todas as sequências que formam o cluster, e 'seqüências de cluster' é uma lista de todas as seqüências de cluster separadas por vírgulas e em em Ordem arbitrária. As linhas são impressas classificadas por 'tamanho do cluster' em ordem decrescente.
Por exemplo, uma execução com a seguinte distância de entrada e agrupamento de 3 (-d3):
TAGCTAGACGTA 250
TAGCTAGCCGTA 10
TAAGCTAGGGGT 16
ACGCGAGCGGAA 155
ACTTTAGCGGAA 1
produziria a seguinte saída:
TAGCTAGACGTA 260 TAGCTAGACGTA,TAGCTAGCCGTA
ACGCGAGCGGAA 156 ACGCGAGCGGAA,ACTTTAGCGGAA
TAAGCTAGGGGT 16 TAAGCTAGGGGT
O mesmo exemplo executado com uma distância mais restritiva -d2 produziria a seguinte saída:
TAGCTAGACGTA 260 TAGCTAGACGTA,TAGCTAGCCGTA
ACGCGAGCGGAA 155 ACGCGAGCGGAA
TAAGCTAGGGGT 16 TAAGCTAGGGGT
ACTTTAGCGGAA 1 ACTTTAGCGGAA
No modo de saída não redundante, o StarCode imprime apenas a sequência canônica de cada cluster, uma por linha. Seguindo o exemplo da seção anterior, a saída com a distância 3 (-d3) seria:
TAGCTAGACGTA
ACGCGAGCGGAA
Considerando que para -d2:
TAGCTAGACGTA
ACGCGAGCGGAA
TAAGCTAGGGGT
ACTTTAGCGGAA
O StarCode está licenciado sob a licença pública geral da GNU, versão 3 (GPLV3), para obter mais informações, leia o arquivo de licença ou consulte:
http://www.gnu.org/license/
Se você usar nosso software, cite:
Zorita E, Cusco P, Filion GJ. 2015. StarCode: Cluster de sequência com base na pesquisa de todos os pares. Bioinformatics 31 (12): 1913-1919.