Cite-nos : Haoyu Chao, Zhuojin Li, Dijun Chen, Ming Chen, iSeq: Uma ferramenta integrada para buscar dados de sequenciamento público, Bioinformatics , 2024;, btae641, https://doi.org/10.1093/bioinformatics/btae641
iSeq é um script Bash que permite baixar dados de sequenciamento e metadados de bancos de dados GSA , SRA , ENA e DDBJ . Consulte Pipeline detalhado para iSeq. Aqui está o pipeline básico do iSeq:
Importante
Para usar o iSeq, seu sistema deve estar conectado à rede e suportar os protocolos FTP, HTTP e HTTPS .
-s
, --speed
para definir o limite de velocidade de download (MB/s) (padrão: 1000 MB/s). Como iseq -i SRR7706354 -s 10
sra-tools=2.11
para sra-tools>=2.11.0
. Nova opção -e
para mesclar arquivos FASTQ : Adicionada uma opção -e
para mesclar vários arquivos FASTQ em um único arquivo para cada Experiment (-e ex)
, Sample (-e sa)
ou Study (-e st)
.
Nova opção -i
para entrada : iSeq
agora pode aceitar um file
contendo vários números de acesso como entrada por -i fileName
.
Alteração da API para download de metadados do GSA : o endpoint da API foi atualizado de getRunInfo
para getRunInfoByCra
para download de metadados do GSA.
Salvar resultado no diretório pessoal : Os resultados da saída agora serão salvos no diretório pessoal do usuário pela opção -o
.
Regex atualizado para correspondência SAMC : O padrão de correspondência para SAMC foi alterado de SAMC[AZ]?[0-9]+
para SAMC[0-9]+
.
Corrija alguns bugs
conda install bioconda::iseq
# Use the following command to check whether dependent software is installed
iseq --version
iseq -i PRJNA211801
-a
para baixar diretamente arquivos FASTQ formatados em gzip com -g
. iseq -i SRR_Acc_List.txt -a -g
$ iseq --help
Usage:
iseq -i accession [options]
Required option:
-i, --input [text|file] Single accession or a file containing multiple accessions.
Note: Only one accession per line in the file, all accessions must be from the same database.
Optional options:
-m, --metadata Skip the sequencing data downloads and only fetch the metadata for the accession.
-g, --gzip Download FASTQ files in gzip format directly (*.fastq.gz).
Note: if *.fastq.gz files are not available, SRA files will be downloaded and converted to *.fastq.gz files.
-q, --fastq Convert SRA files to FASTQ format.
-t, --threads int The number of threads to use for converting SRA to FASTQ files or compressing FASTQ files (default: 8).
-e, --merge [ex|sa|st] Merge multiple fastq files into one fastq file for each Experiment, Sample or Study.
-d, --database [ena|sra] Specify the database to download SRA sequencing data (default: ena).
Note: new SRA files may not be available in the ENA database, even if you specify "ena".
-p, --parallel int Download sequencing data in parallel, the number of connections needs to be specified, such as -p 10.
Note: breakpoint continuation cannot be shared between different numbers of connections.
-a, --aspera Use Aspera to download sequencing data, only support GSA/ENA database.
-s, --speed int Download speed limit (MB/s) (default: 1000 MB/s).
-o, --output text The output directory. If not exists, it will be created (default: current directory).
-h, --help Show the help information.
-v, --version Show the script version.
-i
, --input
Insira o acesso que deseja baixar. Você também pode inserir um arquivo contendo vários acessos (apenas um acesso por linha no arquivo, todos os acessos devem ser do mesmo banco de dados).
iseq -i PRJNA211801
Primeiramente, o iSeq recuperará os metadados da adesão e, em seguida, fará o download de cada execução contida nele.
Atualmente suporta 6 formatos de acesso dos 5 bancos de dados a seguir, com prefixos de acesso suportados como segue:
Bancos de dados | BioProjeto | Estudar | Bioamostra | Amostra | Experimentar | Correr |
---|---|---|---|---|---|---|
GSA | PRJC | CRA | SAMC | CRX | CRR | |
SRA | PRJNA | PRS | SAMN | SRS | SRX | SRR |
ENA | PRJEB | ERP | MESMO | ERS | ERX | ERRAR |
DDBJ | PRJDB | DRP | SAMD | DRS | DRX | RRD |
GEO | IGE | GSM |
Além disso, para os dois formatos de dados ( GSE/GSM
) do banco de dados GEO, ele recuperará diretamente o PRJNA/SAMN
associado e, em seguida, procederá à obtenção das execuções contidas e ao download dos dados de sequenciamento. Portanto, essencialmente, ele ainda baixa dados de sequenciamento do banco de dados SRA.
Aqui estão alguns exemplos:
Tipo de adesão | Prefixos | Exemplo |
---|---|---|
BioProjeto | PRJEB, PRJNA, PRJDB, PRJC, GSE | PRJEB42779, PRJNA480016, PRJDB14838, PRJCA000613, GSE122139 |
Estudar | ERP, DRP, SRP, CRA | ERP126685, DRP009283, SRP158268, CRA000553 |
Bioamostra | SAMD, MESMO, SAMN, SAMC | SAMD00258402, SAMEA7997453, SAMN06479985, SAMC017083 |
Amostra | ERS, DRS, SRS, GSM | ERS5684710, DRS259711, SRS2024210, GSM7417667 |
Experimentar | ERX, DRX, SRX, CRX | ERX5050800, DRX406443, SRX4563689, CRX020217 |
Correr | ERR, DRR, SRR, CRR | ERR5260405, DRR421224, SRR7706354, CRR311377 |
Em resumo, independentemente do formato de dados da sua adesão entre as seis opções, ele eventualmente fará o download e verificará o valor MD5 de cada Run contida. Se o valor MD5 não corresponder ao valor do banco de dados público, ele tentará no máximo três rodadas de novo download. Se for bem-sucedido após três tentativas de download e verificação, o nome do arquivo será armazenado em success.log
; caso contrário, se o download falhar, o nome do arquivo será armazenado em fail.log
.
-m
, --metadata
Baixe apenas as informações de amostra da adesão e pule o download dos dados de sequenciamento.
iseq -i PRJNA211801 -m
iseq -i CRR343031 -m
Portanto, independentemente de o parâmetro -m
ser utilizado ou não, serão obtidas as informações amostrais do acesso. Se os metadados não puderem ser recuperados, o programa iSeq será encerrado sem prosseguir com o download subsequente.
Observação
Nota 1 : Se o acesso recuperado estiver nos bancos de dados SRA/ENA/DDBJ/GEO , o iSeq pesquisará primeiro no banco de dados ENA. Se as informações de amostra puderem ser recuperadas, os metadados serão baixados no formato TSV
por meio da API ENA, normalmente contendo 191 colunas. No entanto, alguns dados recentemente divulgados na base de dados SRA podem não ser prontamente sincronizados com a base de dados ENA. Portanto, se os metadados não puderem ser obtidos do banco de dados ENA, o iSeq baixará diretamente os metadados no formato CSV
por meio do back-end do banco de dados SRA, que normalmente contém 30 colunas. Para manter a consistência com o formato TSV, ele será convertido para o formato TSV usando sed -i 's/,/t/g'
. No entanto, se um único campo contiver uma vírgula, isso poderá causar desordem nas colunas. Por fim, você obterá informações de amostra denominadas ${accession}.metadata.tsv
.
Observação
Nota 2 : Se o acesso recuperado estiver no banco de dados GSA , o iSeq obterá informações de amostra por meio da interface getRunInfo do GSA, baixando metadados no formato CSV
, normalmente contendo 25 colunas. Os metadados obtidos acima serão salvos como ${accession}.metadata.csv
. Para complementar informações de metadados mais detalhadas, o iSeq obterá automaticamente informações de metadados para o Projeto ao qual a adesão pertence por meio da interface exportExcelFile do GSA, baixando os metadados no formato XLSX
, normalmente com 3 planilhas: Sample
, Experiment
, Run
. As informações finais dos metadados serão salvas como ${accession}.metadata.xlsx
. Em resumo, você obterá informações de amostra denominadas ${accession}.metadata.csv
e CRA*.metadata.xlsx
.
-g
, --gzip
Baixe diretamente arquivos FASTQ no formato gzip . Se o download direto não for possível, os arquivos SRA serão baixados e convertidos para o formato gzip usando multithreading para decomposição e compactação.
iseq -i SRR1178105 -g
Como a maioria dos formatos de dados armazenados diretamente no banco de dados GSA estão no formato gzip, se o acesso que está sendo pesquisado for do banco de dados GSA, seja o parâmetro -g
usado ou não, você pode baixar diretamente os arquivos FASTQ no formato gzip.
Se o acesso for a partir dos bancos de dados SRA/ENA/DDBJ/GEO , o iSeq tentará primeiro acessar o banco de dados ENA. Se puder baixar diretamente arquivos FASTQ no formato gzip, ele o fará; caso contrário, ele baixará os arquivos SRA e os converterá para o formato FASTQ usando a ferramenta fasterq-dump
e, em seguida, compactará os arquivos FASTQ usando a ferramenta pigz
, obtendo finalmente os arquivos FASTQ no formato gzip.
Dica
paralelo-fastq-dump também pode converter SRA em arquivos FASTQ compactados com gzip, normalmente 2 a 3 vezes mais rápido que fasterq-dump + pigz
. No entanto, considerando as limitações de IO , iSeq
atualmente não oferece suporte parallel-fastq-dump
.
-q
, --fastq
Depois de baixar os arquivos SRA, eles serão decompostos em vários arquivos FASTQ descompactados .
iseq -i SRR1178105 -q
Este parâmetro só tem efeito quando o acesso for a partir das bases de dados SRA/ENA/DDBJ/GEO e os arquivos baixados forem arquivos SRA . Depois de baixar os arquivos SRA, o iSeq usará a ferramenta fasterq-dump
para convertê-los em arquivos FASTQ. Além disso, você pode especificar o número de threads para conversão usando o parâmetro -t
.
Observação
Nota1 : -q
é particularmente útil para baixar dados de célula única , especialmente para dados scATAC-Seq, pois pode efetivamente decompor os arquivos em quatro partes: I1
, R1
, R2
, R3
. No entanto, se os arquivos FASTQ forem baixados diretamente através do parâmetro -g
, apenas os arquivos R1
e R3
serão obtidos (por exemplo, SRR13450125), o que pode causar problemas durante a análise de dados subsequente.
Observação
Nota 2 : Quando -q
e -g
são usados juntos, o arquivo SRA será primeiro baixado, depois convertido em arquivos FASTQ
usando a ferramenta fasterq-dump
e finalmente compactado no formato gzip usando pigz
. Ele não baixa diretamente arquivos FASTQ
no formato gzip, o que é muito útil para obter dados abrangentes de célula única.
-t
, --threads
Especifica o número de encadeamentos a serem usados para descompactar arquivos SRA em arquivos FASTQ ou compactar arquivos FASTQ. O valor padrão é 8
.
iseq -i SRR1178105 -q -t 10
Considerando que os arquivos de dados de sequenciamento geralmente são grandes, você pode especificar o número de threads para decomposição usando o parâmetro -t
. No entanto, mais threads não significa necessariamente melhor desempenho porque threads excessivos podem levar a altas cargas de CPU ou IO , especialmente porque fasterq-dump
consome uma quantidade considerável de IO, potencialmente impactando a execução de outras tarefas. Com base na avaliação do benchmark, recomendamos uma contagem máxima de threads de 15.
-e
, --merge
Mesclar vários arquivos FASTQ em um arquivo FASTQ para cada Experimento ( ex
), Amostra ( sa
) ou Estudo ( st
).
iseq -i SRX003906 -g -e ex
Embora na maioria dos casos um experimento contenha apenas uma execução, alguns dados de sequenciamento podem ter várias execuções em um experimento (por exemplo, SRX003906, CRX020217). Portanto, você pode usar o parâmetro -e
para mesclar vários arquivos FASTQ de um experimento em um. Considerando o sequenciamento emparelhado, onde os arquivos fastq_1
e fastq_2
precisam ser mesclados simultaneamente e os nomes das sequências nas linhas correspondentes precisam permanecer consistentes, o iSeq mesclará vários arquivos FASTQ na mesma ordem . Por fim, para dados de sequenciamento de extremidade única , um único arquivo SRX*.fastq.gz
será gerado, e para dados de sequenciamento de extremidade emparelhada , dois arquivos SRX*_1.fastq.gz
e SRX*_2.fastq.gz
serão gerados .
Observação
Nota 1 : Se o acesso for um Run ID , o parâmetro -e
não poderá ser utilizado (veja abaixo). Atualmente, o iSeq oferece suporte à mesclagem de arquivos FASTQ compactados com gzip e descompactados , mas não oferece suporte à mesclagem de arquivos como arquivos BAM e arquivos tar.gz.
-e ex
: mescla todos os arquivos fastq do mesmo experimento em um arquivo fastq. Formato de acesso aceito: ERX, DRX, SRX, CRX
.-e sa
: mescla todos os arquivos fastq da mesma amostra em um arquivo fastq. Formato de adesão aceito: ERS, DRS, SRS, SAMC, GSM
.-e st
: mescla todos os arquivos fastq do mesmo estudo em um arquivo fastq. Formato de adesão aceito: ERP, DRP, SRP, CRA
. Observação
Nota 2 : Normalmente, quando um Experimento contém apenas uma Execução, Execuções idênticas deverão ter o mesmo prefixo . Por exemplo, SRR52991314_1.fq.gz
e SRR52991314_2.fq.gz
têm o mesmo prefixo SRR52991314
. Nesse caso, o iSeq irá renomeá- los diretamente para SRX*_1.fastq.gz
e SRX*_2.fastq.gz
. No entanto, há exceções, como em CRX006713, onde uma execução CRR007192
contém arquivos com prefixos diferentes. Nesses casos, o iSeq os renomeará como SRX*_original_filename
, por exemplo, eles serão renomeados como CRX006713_CRD015671.gz
e CRX006713_CRD015672.gz
.
-d
, --database
Especifica o banco de dados para download de arquivos SRA, suportando bancos de dados ENA e SRA .
iseq -i SRR1178105 -d sra
Por padrão, o iSeq detectará automaticamente os bancos de dados disponíveis, portanto, a especificação do parâmetro -d
geralmente é desnecessária . No entanto, alguns arquivos SRA podem ser baixados lentamente do banco de dados ENA. Nesses casos, você pode forçar o download do banco de dados SRA especificando -d sra
.
Observação
Nota : Se o arquivo SRA correspondente não for encontrado no banco de dados ENA , mesmo que o parâmetro -d ena
seja especificado, o iSeq ainda mudará automaticamente para download do banco de dados SRA .
-p
, --parallel
Permite o download multithread e requer a especificação do número de threads.
iseq -i PRJNA211801 -p 10
Considerando que o wget
pode ser lento em alguns casos, você pode usar o parâmetro -p
para permitir que o iSeq utilize a ferramenta axel
para download multithread.
Observação
Nota 1 : O recurso de download recuperável de download multithread só é eficaz dentro do mesmo thread . Ou seja, se o parâmetro -p 10
for usado para o primeiro download, ele também deverá ser usado para o segundo download para permitir o download recuperável.
Observação
Nota 2 : Conforme mencionado, o iSeq manterá 10 conexões durante todo o processo de download. Portanto, você verá várias ocorrências da mesma Connection * finished
aparecendo durante o processo de download. Isso ocorre porque algumas conexões são liberadas imediatamente após a conclusão do download e então novas conexões são estabelecidas para download.
-a
, --aspera
Use o Aspera para fazer download.
iseq -i PRJNA211801 -a -g
Como o Aspera oferece velocidades de download mais rápidas, você pode usar o parâmetro -a
para instruir o iSeq a usar a ferramenta ascp
para download. Infelizmente, o download do Aspera atualmente só é suportado pelos bancos de dados GSA e ENA . O banco de dados NCBI SRA não pode utilizar o Aspera para download, pois emprega predominantemente as tecnologias Google Cloud e AWS Cloud e por outros motivos, consulte Evite usar ascp.
Observação
Nota 1 : Ao acessar o banco de dados GSA , se links de download do Huawei Cloud estiverem disponíveis, o iSeq priorizará o download através do Huawei Cloud, mesmo que o parâmetro -a
seja usado. Isso ocorre porque o Huawei Cloud oferece velocidades de download mais rápidas e estáveis. Portanto, ao fazer download de dados do GSA, é recomendável usar o parâmetro -a
r. Desta forma, caso o acesso ao Huawei Cloud não esteja disponível, o download através do canal Aspera ainda é relativamente rápido. Caso contrário, você terá que recorrer ao download via wget
ou axel
, que são métodos mais lentos.
Observação
Nota 2 : Como Asper
a requer um arquivo de chave, o iSeq procurará automaticamente o arquivo de chave no ambiente conda
ou no diretório ~/.aspera
. Se o arquivo-chave não for encontrado, o download não será possível.
-o
, --output
O diretório de saída. Se não existir, será criado (padrão: diretório atual).
-s
, --speed
Limite de velocidade de download (MB/s) (padrão: 1000 MB/s) para Wget
, AXEL
e Aspera
.
Saída | Descrição |
---|---|
Arquivos SRA | Pode ser convertido em arquivos FASTQ usando a opção -q |
.metadata.tsv | Metadados para acesso à consulta |
sucesso.log | Salve o nome do arquivo SRA que foi baixado com sucesso |
falha.log | Salvar o nome do arquivo SRA que foi baixado falhou |
Saída | Descrição |
---|---|
Arquivos GSA | Principalmente no formato *.gz, e alguns estão no formato bam/tar/bz2 |
.metadados.csv | Metadados para acesso à consulta |
.metadados.xlsx | Metadados para Projeto incluindo acesso de consulta em formato xlsx |
sucesso.log | Salve o nome do arquivo GSA que foi baixado com sucesso |
falha.log | Salvar o nome do arquivo GSA cujo download falhou |
iSeq foi inspirado em fastq-dl, fetchngs, pysradb, Kingfisher . Essas excelentes ferramentas também podem ser muito úteis. Abaixo estão várias comparações de diferentes softwares:
Nome do software | Linguagens de programa | Bancos de dados suportados | Acessões suportadas | Formatos suportados | Métodos suportados | Buscar metadados | Verificação MD5 | Download retomável | Download paralelo | Mesclar FASTQ | Ignorar download | Conda instalável | URL |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
iSeq | Concha | GSA, SRA, ENA, DDBJ, GEO | Todos | fq, fq.gz, sra, bam | wget, axel, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ? |
borda turbo | C | GSA | Todos negados | fq, fq.gz, bam | baixar edge turbo | ✔ | ? | ||||||
Kit de ferramentas SRA | C | SRA, ENA, DDBJ | Todos negados esperam ID de execução | fq, fq.gz, sra | pré-busca | ✔ | ✔ | ✔ | ✔ | ? | |||
enaBrowserTools | Pitão | SRA, ENA, DDBJ | Todos, exceto GSA/GEO ID | fq, fq.gz, sra | urllib, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
fastq-dl | Pitão | SRA, ENA, DDBJ | Todos, exceto GSA/GEO ID | fq, fq.gz, sra, sra.lite | wget | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
buscas | Pitão | SRA, ENA, DDBJ, GEO | Todos, exceto ID do GSA | fq, fq.gz | wget, aspera, pré-busca | ✔ | ✔ | ✔ | ✔ | ? | |||
pysradb | Pitão | SRA, ENA, DDBJ, GEO | Todos, exceto ID do GSA | fq, fq.gz, sra, bam | pedidos, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
Martim-pescador | Pitão | SRA, ENA, DDBJ | Todos, exceto GSA/GEO ID | fq, fq.gz, sra | curl, aria2c, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
qff | Pitão | SRA, ENA, DDBJ, GEO | Todos, exceto ID do GSA | fq, fq.gz, sra, bam | solicitações | ✔ | ✔ | ✔ | ? |
Contribuições para o iSeq são bem-vindas! Se você tiver alguma sugestão, relatório de bug ou solicitação de recurso, abra um problema no repositório GitHub do projeto. Se você quiser contribuir com código, bifurque o repositório, faça suas alterações e envie uma solicitação pull.
Cite-nos : https://doi.org/10.1101/2024.05.16.594538
Este projeto está licenciado sob a licença MIT.