Direkter Upload in einen HealthOmics Sequenzspeicher - AWS HealthOmics

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Direkter Upload in einen HealthOmics Sequenzspeicher

Wir empfehlen, dass Sie den HealthOmics Transfer Manager verwenden, um Dateien zu Ihrem Sequenzspeicher hinzuzufügen. Weitere Informationen zur Verwendung von Transfer Manager finden Sie in diesem GitHubRepository. Sie können Ihre Lesesätze auch direkt über die API-Operationen für den direkten Upload in einen Sequenzspeicher hochladen.

Direkte Upload-Lesätze existieren zuerst im PROCESSING_UPLOAD Status. Das bedeutet, dass die Teile der Datei gerade hochgeladen werden und Sie auf die Metadaten des Lesesatzes zugreifen können. Nachdem die Teile hochgeladen und die Prüfsummen validiert wurden, wird der Lesesatz zu einem importierten Lesesatz ACTIVE und verhält sich genauso wie ein importierter Lesesatz.

Wenn der direkte Upload fehlschlägt, wird der Status des Lesesatzes als angezeigt. UPLOAD_FAILED Sie können einen Amazon S3 S3-Bucket als Fallback-Speicherort für Dateien konfigurieren, die nicht hochgeladen werden können. Ausweichspeicherorte sind für Sequenzspeicher verfügbar, die nach dem 15. Mai 2023 erstellt wurden.

Direkter Upload in einen Sequenzspeicher mit dem AWS CLI

Starten Sie zunächst einen mehrteiligen Upload. Sie können dies tun, indem Sie die verwenden AWS CLI, wie im folgenden Beispiel gezeigt.

Zum direkten Upload mithilfe von AWS CLI Befehlen
  1. Erstellen Sie die Teile, indem Sie Ihre Daten trennen, wie im folgenden Beispiel gezeigt.

    split -b 100MiB SRR233106_1.filt.fastq.gz source1_part_
  2. Nachdem Ihre Quelldateien in Teilen vorliegen, erstellen Sie einen mehrteiligen Lesesatz-Upload, wie im folgenden Beispiel gezeigt. Ersetzen Sie sequence store ID und die anderen Parameter durch Ihre Sequenzspeicher-ID und andere Werte.

    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"

    Sie erhalten die uploadID und andere Metadaten in der Antwort. Verwenden Sie die uploadID für den nächsten Schritt des Upload-Vorgangs.

    { "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. Fügen Sie Ihre Lesesätze zum Upload hinzu. Wenn Ihre Datei klein genug ist, müssen Sie diesen Schritt nur einmal ausführen. Bei größeren Dateien führen Sie diesen Schritt für jeden Teil Ihrer Datei aus. Wenn Sie ein neues Teil unter Verwendung einer zuvor verwendeten Artikelnummer hochladen, überschreibt es das zuvor hochgeladene Teil.

    Im folgenden Beispiel ersetzen Sie sequence store IDupload ID, und die anderen Parameter durch Ihre Werte.

    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

    Die Antwort ist eine ID, anhand derer Sie überprüfen können, ob die hochgeladene Datei mit der von Ihnen beabsichtigten Datei übereinstimmt.

    { "checksum": "984979b9928ae8d8622286c4a9cd8e99d964a22d59ed0f5722e1733eb280e635" }
  4. Fahren Sie gegebenenfalls mit dem Hochladen der Teile Ihrer Datei fort. Um zu überprüfen, ob Ihre Lesesätze hochgeladen wurden, verwenden Sie den API-Vorgang list-read-set-upload-parts, wie im Folgenden gezeigt. Im folgenden Beispiel ersetzen Sie sequence store ID upload ID, und the part source durch Ihre eigene Eingabe.

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

    Die Antwort gibt die Anzahl der Lesesätze, die Größe und den Zeitstempel der letzten Aktualisierung zurück.

    { "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. Um alle aktiven Uploads von mehrteiligen Lesesätzen anzuzeigen, verwenden Sie list-multipart-read-set-uploads, wie im Folgenden gezeigt. Ersetzen Sie es sequence store ID durch die ID für Ihren eigenen Sequenzspeicher.

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

    Diese API gibt nur mehrteilige Read-Set-Uploads zurück, die gerade ausgeführt werden. Sobald die aufgenommenen Lesesätze vorhanden sind ACTIVE oder wenn der Upload fehlgeschlagen ist, wird der Upload in der Antwort an die -uploads-API nicht zurückgegeben. list-multipart-read-set Verwenden Sie die API, um aktive Lesesätze anzuzeigen. list-read-sets Im Folgenden wird ein Beispiel für eine Antwort für list-multipart-read-set-uploads gezeigt.

    { "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. Nachdem Sie alle Teile Ihrer Datei hochgeladen haben, verwenden Sie complete-multipart-read-set-upload, um den Upload-Vorgang abzuschließen, wie im folgenden Beispiel gezeigt. Ersetzen Sie sequence store IDupload ID, und den Parameter für Teile durch Ihre eigenen Werte.

    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"}]'

    Die Antwort für complete-multipart-read-set-upload ist der Lesesatz IDs für Ihre importierten Lesesätze.

    { "readSetId": "0000000001" }
  7. Um den Upload zu beenden, verwenden Sie abort-multipart-read-set-upload zusammen mit der Upload-ID, um den Upload-Vorgang zu beenden. Ersetzen Sie sequence store ID und upload ID durch Ihre eigenen Parameterwerte.

    aws omics abort-multipart-read-set-upload \ --sequence-store-id sequence store ID \ --upload-id upload ID
  8. Nachdem der Upload abgeschlossen ist, rufen Sie Ihre Daten aus dem Lesesatz ab get-read-set, indem Sie, wie im Folgenden gezeigt, verwenden. Wenn der Upload noch in Bearbeitung ist, werden nur begrenzte Metadaten get-read-setzurückgegeben und die generierten Indexdateien sind nicht verfügbar. Ersetzen Sie sequence store ID und die anderen Parameter durch Ihre eigene Eingabe.

    aws omics get-read-set --sequence-store-id sequence store ID \ --id read set ID \ --file SOURCE1 \ --part-number 1 myfile.fastq.gz
  9. Verwenden Sie die get-read-set-metadataAPI-Operation, um die Metadaten, einschließlich des Status Ihres Uploads, zu überprüfen.

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

    Die Antwort enthält Metadatendetails wie den Dateityp, den Referenz-ARN, die Anzahl der Dateien und die Länge der Sequenzen. Sie enthält auch den Status. Mögliche Status sind PROCESSING_UPLOADACTIVE, undUPLOAD_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" }

Konfigurieren Sie einen Fallback-Standort

Wenn Sie einen Sequenzspeicher erstellen oder aktualisieren, können Sie einen Amazon S3 S3-Bucket als Ausweichort für Dateien konfigurieren, die nicht hochgeladen werden können. Die Dateiteile für diese Lesesätze werden an den Ersatzspeicherort übertragen. Ausweichspeicherorte sind für Sequenzspeicher verfügbar, die nach dem 15. Mai 2023 erstellt wurden.

Erstellen Sie eine Amazon S3 S3-Bucket-Richtlinie, um HealthOmics Schreibzugriff auf den Amazon S3 S3-Fallback-Speicherort zu gewähren, wie im folgenden Beispiel gezeigt:

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

Wenn der Amazon S3 S3-Bucket für Fallback- oder Zugriffsprotokolle einen vom Kunden verwalteten Schlüssel verwendet, fügen Sie der Schlüsselrichtlinie die folgenden Berechtigungen hinzu:

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