Upload direto para um armazenamento HealthOmics de sequências - AWS HealthOmics

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Upload direto para um armazenamento HealthOmics de sequências

Recomendamos que você use o Gerenciador HealthOmics de Transferências para adicionar arquivos ao seu armazenamento de sequências. Para obter mais informações sobre como usar o Transfer Manager, consulte este GitHubRepositório. Você também pode carregar seus conjuntos de leitura diretamente para um armazenamento de sequências por meio das operações da API de upload direto.

Os conjuntos de leitura de upload direto existem primeiro no PROCESSING_UPLOAD estado. Isso significa que as partes do arquivo estão sendo carregadas no momento e você pode acessar os metadados do conjunto de leitura. Depois que as peças são carregadas e as somas de verificação são validadas, o conjunto de leitura se torna ACTIVE e se comporta da mesma forma que um conjunto de leitura importado.

Se o upload direto falhar, o status do conjunto de leitura será mostrado comoUPLOAD_FAILED. Você pode configurar um bucket do Amazon S3 como um local alternativo para arquivos que falham no upload. Os locais alternativos estão disponíveis para lojas de sequências criadas após 15 de maio de 2023.

Upload direto para um armazenamento de sequências usando o AWS CLI

Para começar, inicie um upload de várias partes. Você pode fazer isso usando o AWS CLI, conforme mostrado no exemplo a seguir.

Para direcionar o upload usando AWS CLI comandos
  1. Crie as partes separando seus dados, conforme mostrado no exemplo a seguir.

    split -b 100MiB SRR233106_1.filt.fastq.gz source1_part_
  2. Depois que os arquivos de origem estiverem divididos em partes, crie um upload de conjunto de leitura com várias partes, conforme mostrado no exemplo a seguir. Substitua sequence store ID e os outros parâmetros pelo ID do armazenamento de sequências e outros valores.

    aws omics create-multipart-read-set-upload \ --sequence-store-id sequence store ID \ --name upload name \ --source-file-type FASTQ \ --subject-id subject ID \ --sample-id sample ID \ --description "FASTQ for HG00146" "description of upload" \ --generated-from "1000 Genomes""source of imported files"

    Você obtém os uploadID e outros metadados na resposta. Use o uploadID para a próxima etapa do processo de upload.

    { "sequenceStoreId": "1504776472", "uploadId": "7640892890", "sourceFileType": "FASTQ", "subjectId": "mySubject", "sampleId": "mySample", "generatedFrom": "1000 Genomes", "name": "HG00146", "description": "FASTQ for HG00146", "creationTime": "2023-11-20T23:40:47.437522+00:00" }
  3. Adicione seus conjuntos de leitura ao upload. Se o arquivo for pequeno o suficiente, você só precisará executar essa etapa uma vez. Para arquivos maiores, você executa essa etapa para cada parte do seu arquivo. Se você fizer o upload de uma nova peça usando um número de peça usado anteriormente, ele substituirá a peça carregada anteriormente.

    No exemplo a seguir, substitua sequence store IDupload ID, e os outros parâmetros pelos seus valores.

    aws omics upload-read-set-part \ --sequence-store-id sequence store ID \ --upload-id upload ID \ --part-source SOURCE1 \ --part-number part number \ --payload source1/source1_part_aa.fastq.gz

    A resposta é uma ID que você pode usar para verificar se o arquivo carregado corresponde ao arquivo pretendido.

    { "checksum": "984979b9928ae8d8622286c4a9cd8e99d964a22d59ed0f5722e1733eb280e635" }
  4. Continue carregando as partes do seu arquivo, se necessário. Para verificar se seus conjuntos de leitura foram carregados, use a operação de API list-read-set-upload-parts, conforme mostrado a seguir. No exemplo a seguir, substitua sequence store ID upload ID, e o part source por sua própria entrada.

    aws omics list-read-set-upload-parts \ --sequence-store-id sequence store ID \ --upload-id upload ID \ --part-source SOURCE1

    A resposta retorna o número de conjuntos de leitura, o tamanho e a data e hora de quando foi atualizada mais recentemente.

    { "parts": [ { "partNumber": 1, "partSize": 104857600, "partSource": "SOURCE1", "checksum": "MVMQk+vB9C3Ge8ADHkbKq752n3BCUzyl41qEkqlOD5M=", "creationTime": "2023-11-20T23:58:03.500823+00:00", "lastUpdatedTime": "2023-11-20T23:58:03.500831+00:00" }, { "partNumber": 2, "partSize": 104857600, "partSource": "SOURCE1", "checksum": "keZzVzJNChAqgOdZMvOmjBwrOPM0enPj1UAfs0nvRto=", "creationTime": "2023-11-21T00:02:03.813013+00:00", "lastUpdatedTime": "2023-11-21T00:02:03.813025+00:00" }, { "partNumber": 3, "partSize": 100339539, "partSource": "SOURCE1", "checksum": "TBkNfMsaeDpXzEf3ldlbi0ipFDPaohKHyZ+LF1J4CHk=", "creationTime": "2023-11-21T00:09:11.705198+00:00", "lastUpdatedTime": "2023-11-21T00:09:11.705208+00:00" } ] }
  5. Para visualizar todos os uploads ativos de conjuntos de leitura de várias partes, use list-multipart-read-set-uploads, conforme mostrado a seguir. sequence store IDSubstitua pelo ID do seu próprio armazenamento de sequências.

    aws omics list-multipart-read-set-uploads --sequence-store-id sequence store ID

    Essa API retorna apenas uploads de conjuntos de leitura em várias partes que estão em andamento. Depois que os conjuntos de leitura ingeridos ACTIVE terminarem, ou se o upload falhar, o upload não será retornado na resposta à API list-multipart-read-set-uploads. Para visualizar conjuntos de leitura ativos, use a list-read-setsAPI. Um exemplo de resposta para list-multipart-read-set-uploads é mostrado a seguir.

    { "uploads": [ { "sequenceStoreId": "1234567890", "uploadId": "8749584421", "sourceFileType": "FASTQ", "subjectId": "mySubject", "sampleId": "mySample", "generatedFrom": "1000 Genomes", "name": "HG00146", "description": "FASTQ for HG00146", "creationTime": "2023-11-29T19:22:51.349298+00:00" }, { "sequenceStoreId": "1234567890", "uploadId": "5290538638", "sourceFileType": "BAM", "subjectId": "mySubject", "sampleId": "mySample", "generatedFrom": "1000 Genomes", "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/8168613728/reference/2190697383", "name": "HG00146", "description": "BAM for HG00146", "creationTime": "2023-11-29T19:23:33.116516+00:00" }, { "sequenceStoreId": "1234567890", "uploadId": "4174220862", "sourceFileType": "BAM", "subjectId": "mySubject", "sampleId": "mySample", "generatedFrom": "1000 Genomes", "referenceArn": "arn:aws:omics:us-west-2:123456789012:referenceStore/8168613728/reference/2190697383", "name": "HG00147", "description": "BAM for HG00147", "creationTime": "2023-11-29T19:23:47.007866+00:00" } ] }
  6. Depois de carregar todas as partes do seu arquivo, use complete-multipart-read-set-upload para concluir o processo de upload, conforme mostrado no exemplo a seguir. Substitua sequence store IDupload ID,, e o parâmetro para peças com seus próprios valores.

    aws omics complete-multipart-read-set-upload \ --sequence-store-id sequence store ID \ --upload-id upload ID \ --parts '[{"checksum":"gaCBQMe+rpCFZxLpoP6gydBoXaKKDA/Vobh5zBDb4W4=","partNumber":1,"partSource":"SOURCE1"}]'

    A resposta para complete-multipart-read-set-upload é o conjunto de leitura IDs para seus conjuntos de leitura importados.

    { "readSetId": "0000000001" }
  7. Para interromper o upload, use abort-multipart-read-set-upload com o ID de upload para finalizar o processo de upload. Substitua sequence store ID e upload ID por seus próprios valores de parâmetros.

    aws omics abort-multipart-read-set-upload \ --sequence-store-id sequence store ID \ --upload-id upload ID
  8. Depois que o upload for concluído, recupere seus dados do conjunto de leitura usando get-read-set, conforme mostrado a seguir. Se o upload ainda estiver sendo processado, get-read-setretornará metadados limitados e os arquivos de índice gerados não estarão disponíveis. Substitua sequence store ID e os outros parâmetros por sua própria entrada.

    aws omics get-read-set --sequence-store-id sequence store ID \ --id read set ID \ --file SOURCE1 \ --part-number 1 myfile.fastq.gz
  9. Para verificar os metadados, incluindo o status do seu upload, use a operação da get-read-set-metadataAPI.

    aws omics get-read-set-metadata --sequence-store-id sequence store ID --id read set ID

    A resposta inclui detalhes de metadados, como o tipo de arquivo, o ARN de referência, o número de arquivos e o tamanho das sequências. Também inclui o status. Os status possíveis são PROCESSING_UPLOADACTIVE, e. UPLOAD_FAILED

    { "id": "0000000001", "arn": "arn:aws:omics:us-west-2:555555555555:sequenceStore/0123456789/readSet/0000000001", "sequenceStoreId": "0123456789", "subjectId": "mySubject", "sampleId": "mySample", "status": "PROCESSING_UPLOAD", "name": "HG00146", "description": "FASTQ for HG00146", "fileType": "FASTQ", "creationTime": "2022-07-13T23:25:20Z", "files": { "source1": { "totalParts": 5, "partSize": 123456789012, "contentLength": 6836725, }, "source2": { "totalParts": 5, "partSize": 123456789056, "contentLength": 6836726 } }, 'creationType": "UPLOAD" }

Configurar um local de fallback

Ao criar ou atualizar um armazenamento de sequências, você pode configurar um bucket do Amazon S3 como local alternativo para arquivos que falham no upload. As partes do arquivo desses conjuntos de leitura são transferidas para o local de fallback. Os locais alternativos estão disponíveis para lojas de sequências criadas após 15 de maio de 2023.

Crie uma política de bucket do Amazon S3 para conceder acesso de HealthOmics gravação ao local de fallback do Amazon S3, conforme mostrado no exemplo a seguir:

{ "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" }

Se o bucket do Amazon S3 para registros de fallback ou de acesso usar uma chave gerenciada pelo cliente, adicione as seguintes permissões à política de chaves:

{ "Sid": "Allow use of key", "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*" }