

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# HealthOmics 시퀀스 스토어에 직접 업로드
<a name="synchronous-uploads"></a>

HealthOmics Transfer Manager를 사용하여 시퀀스 스토어에 파일을 추가하는 것이 좋습니다. Transfer Manager 사용에 대한 자세한 내용은이 [GitHub 리포지토리](https://github.com/awslabs/amazon-omics-tools/)를 참조하세요. 직접 업로드 API 작업을 통해 시퀀스 스토어에 직접 읽기 세트를 업로드할 수도 있습니다.

직접 업로드 읽기 세트는 먼저 `PROCESSING_UPLOAD` 상태로 존재합니다. 즉, 파일 부분이 현재 업로드 중이며 읽기 세트 메타데이터에 액세스할 수 있습니다. 파트가 업로드되고 체크섬이 검증되면 읽기 세트는 가져온 읽기 세트`ACTIVE`와 동일하게 되고 동작합니다.

직접 업로드에 실패하면 읽기 세트 상태가 로 표시됩니다`UPLOAD_FAILED`. Amazon S3 버킷을 업로드에 실패한 파일의 대체 위치로 구성할 수 있습니다. 폴백 위치는 2023년 5월 15일 이후에 생성된 시퀀스 스토어에 사용할 수 있습니다.

**Topics**
+ [를 사용하여 시퀀스 스토어에 직접 업로드 AWS CLI](#synchronous-uploads-api)
+ [대체 위치 구성](#synchronous-uploads-fallback)

## 를 사용하여 시퀀스 스토어에 직접 업로드 AWS CLI
<a name="synchronous-uploads-api"></a>

시작하려면 멀티파트 업로드를 시작합니다. 다음 예제 AWS CLI와 같이를 사용하여이 작업을 수행할 수 있습니다.

**AWS CLI 명령을 사용하여 직접 업로드하려면**

1. 다음 예제와 같이 데이터를 분리하여 부분을 생성합니다.

   ```
    split -b 100MiB SRR233106_1.filt.fastq.gz source1_part_ 
   ```

1. 소스 파일이 여러 부분으로 나누어진 후 다음 예제와 같이 멀티파트 읽기 세트 업로드를 생성합니다. `sequence store ID` 및 기타 파라미터를 시퀀스 스토어 ID 및 기타 값으로 바꿉니다.

   ```
   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"
   ```

   응답에서 `uploadID` 및 기타 메타데이터를 가져옵니다. 업로드 프로세스의 다음 단계에 `uploadID`를 사용합니다.

   ```
   {
   "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"
   }
   ```

1. 업로드에 읽기 세트를 추가합니다. 파일이 충분히 작으면이 단계를 한 번만 수행하면 됩니다. 더 큰 파일의 경우 파일의 각 부분에 대해이 단계를 수행합니다. 이전에 사용한 파트 번호를 사용하여 새 파트를 업로드하면 이전에 업로드한 파트를 덮어씁니다.

   다음 예제에서는 , `sequence store ID` `upload ID`및 기타 파라미터를 값으로 바꿉니다.

   ```
   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
   ```

   응답은 업로드된 파일이 의도한 파일과 일치하는지 확인하는 데 사용할 수 있는 ID입니다.

   ```
   {
   "checksum": "984979b9928ae8d8622286c4a9cd8e99d964a22d59ed0f5722e1733eb280e635"
   }
   ```

1. 필요한 경우 파일의 부분을 계속 업로드합니다. 읽기 세트가 업로드되었는지 확인하려면 다음과 같이 **list-read-set-upload-parts** API 작업을 사용합니다. 다음 예제에서 , `upload ID`및 `sequence store ID `를 자체 입력`part source`으로 바꿉니다.

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

   응답은 가장 최근에 업데이트된 시점의 읽기 세트 수, 크기 및 타임스탬프를 반환합니다.

   ```
   {
   "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"
       }
   ]
   }
   ```

1. 모든 활성 멀티파트 읽기 세트 업로드를 보려면 다음과 같이 **list-multipart-read-set-uploads**를 사용합니다. 를 자체 시퀀스 스토어의 ID`sequence store ID`로 바꿉니다.

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

   이 API는 진행 중인 멀티파트 읽기 세트 업로드만 반환합니다. 수집된 읽기 세트가 이거나 업로드에 실패한 `ACTIVE`경우 **list-multipart-read-set-uploads** API에 대한 응답으로 업로드가 반환되지 않습니다. 활성 읽기 세트를 보려면 **list-read-sets** API를 사용합니다. **list-multipart-read-set-uploads**에 대한 예제 응답은 다음과 같습니다.

   ```
   {
   "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"
       }
   ]
   }
   ```

1. 파일의 모든 부분을 업로드한 후 다음 예제와 같이 **complete-multipart-read-set-upload**를 사용하여 업로드 프로세스를 완료합니다. 파트의 `sequence store ID``upload ID`, 및 파라미터를 자체 값으로 바꿉니다.

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

   **complete-multipart-read-set-upload**에 대한 응답은 가져온 읽기 세트의 읽기 세트 IDs입니다.

   ```
   {
   "readSetId": "0000000001"
   }
   ```

1. 업로드를 중지하려면 업로드 ID와 함께 **abort-multipart-read-set-upload**를 사용하여 업로드 프로세스를 종료합니다. `sequence store ID` 및 `upload ID`를 고유한 파라미터 값으로 바꿉니다.

   ```
   aws omics abort-multipart-read-set-upload \
   --sequence-store-id sequence store ID \
   --upload-id upload ID
   ```

1. 업로드가 완료되면 다음과 같이 **get-read-set**를 사용하여 읽기 세트에서 데이터를 검색합니다. 업로드가 아직 처리 중인 경우 **get-read-set**는 제한된 메타데이터를 반환하고 생성된 인덱스 파일은 사용할 수 없습니다. `sequence store ID` 및 기타 파라미터를 자체 입력으로 바꿉니다.

   ```
   aws omics get-read-set 
    --sequence-store-id sequence store ID \
    --id read set ID \
    --file SOURCE1 \
    --part-number 1 myfile.fastq.gz
   ```

1. 업로드 상태를 포함한 메타데이터를 확인하려면 **get-read-set-metadata** API 작업을 사용합니다.

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

   응답에는 파일 유형, 참조 ARN, 파일 수, 시퀀스 길이와 같은 메타데이터 세부 정보가 포함됩니다. 또한 상태가 포함됩니다. 가능한 상태는 `PROCESSING_UPLOAD`, `ACTIVE`및 입니다`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"
   }
   ```

## 대체 위치 구성
<a name="synchronous-uploads-fallback"></a>

시퀀스 스토어를 생성하거나 업데이트할 때 Amazon S3 버킷을 업로드에 실패한 파일의 대체 위치로 구성할 수 있습니다. 이러한 읽기 세트의 파일 부분은 대체 위치로 전송됩니다. 폴백 위치는 2023년 5월 15일 이후에 생성된 시퀀스 스토어에 사용할 수 있습니다.

다음 예제와 같이 Amazon S3 버킷 정책을 생성하여 HealthOmics에 Amazon S3 폴백 위치에 대한 쓰기 액세스 권한을 부여합니다.

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

폴백 또는 액세스 로그용 Amazon S3 버킷이 고객 관리형 키를 사용하는 경우 키 정책에 다음 권한을 추가합니다.

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