

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

# HealthOmics 스토리지
<a name="sequence-stores"></a>

HealthOmics 스토리지를 사용하여 저렴한 비용으로 유전체학 데이터를 효율적으로 저장, 검색, 구성 및 공유할 수 있습니다. HealthOmics 스토리지는 서로 다른 데이터 객체 간의 관계를 이해하므로 동일한 소스 데이터에서 시작된 읽기 세트를 정의할 수 있습니다. 이를 통해 데이터 출처를 알 수 있습니다.

`ACTIVE` 상태로 저장된 데이터는 즉시 검색할 수 있습니다. 30일 이상 액세스하지 않은 데이터는 `ARCHIVE` 상태로 저장됩니다. 보관된 데이터에 액세스하려면 API 작업 또는 콘솔을 통해 다시 활성화하면 됩니다.

HealthOmics 시퀀스 스토어는 파일의 콘텐츠 무결성을 유지하도록 설계되었습니다. 그러나 가져온 데이터 파일과 내보낸 파일의 비트 단위 동등성은 활성 및 아카이브 계층화 중 압축으로 인해 보존되지 않습니다.

수집 중에 HealthOmics는 데이터 파일의 콘텐츠 무결성을 검증할 수 있도록 개체 태그 또는 *HealthOmics ETag*를 생성합니다. 시퀀싱 부분은 읽기 세트의 소스 수준에서 ETag로 식별되고 캡처됩니다. ETag 계산은 실제 파일 또는 유전체 데이터를 변경하지 않습니다. 읽기 세트가 생성된 후에는 읽기 세트 소스의 수명 주기 동안 ETag가 변경되어서는 안 됩니다. 즉, 동일한 파일을 다시 가져오면 동일한 ETag 값이 계산됩니다.

**Topics**
+ [HealthOmics ETags 및 데이터 출처](etags-and-provenance.md)
+ [HealthOmics 참조 스토어 생성](create-reference-store.md)
+ [HealthOmics 시퀀스 스토어 생성](create-sequence-store.md)
+ [HealthOmics 참조 및 시퀀스 저장소 삭제](deleting-reference-and-sequence-stores.md)
+ [HealthOmics 시퀀스 스토어로 읽기 세트 가져오기](import-sequence-store.md)
+ [HealthOmics 시퀀스 스토어에 직접 업로드](synchronous-uploads.md)
+ [Amazon S3 버킷으로 HealthOmics 읽기 세트 내보내기](read-set-exports.md)
+ [Amazon S3 URIs를 사용하여 HealthOmics 읽기 세트에 액세스](s3-access.md)
+ [HealthOmics에서 읽기 세트 활성화](activating-read-sets.md)

# HealthOmics ETags 및 데이터 출처
<a name="etags-and-provenance"></a>

HealthOmics ETag(엔터티 태그)는 시퀀스 스토어에서 수집된 콘텐츠의 해시입니다. 이렇게 하면 수집된 데이터 파일의 콘텐츠 무결성을 유지하면서 데이터 검색 및 처리가 간소화됩니다. ETag는 메타데이터가 아닌 객체의 의미론적 콘텐츠에 대한 변경 사항을 반영합니다. 지정된 읽기 세트 유형 및 알고리즘에 따라 ETag 계산 방법이 결정됩니다. ETag 계산은 실제 파일 또는 유전체 데이터를 변경하지 않습니다. 읽기 세트의 파일 유형 스키마가 허용하는 경우 시퀀스 스토어는 데이터 출처에 연결된 필드를 업데이트합니다.

파일에는 비트 단위 자격 증명과 의미 체계 자격 증명이 있습니다. 비트 단위 자격 증명은 파일의 비트가 동일하다는 의미이고 의미 체계 자격 증명은 파일의 내용이 동일하다는 의미입니다. 의미 체계 자격 증명은 파일의 콘텐츠 무결성을 캡처하므로 메타데이터 변경 및 압축 변경에 대한 복원력이 뛰어납니다.

HealthOmics 시퀀스 스토어의 읽기 세트는 객체의 수명 주기 동안 압축/압축 해제 주기 및 데이터 출처 추적을 거칩니다. 이 처리 중에 수집된 파일의 비트 단위 자격 증명이 변경될 수 있으며 파일이 활성화될 때마다 변경될 것으로 예상되지만 파일의 의미 체계 자격 증명은 유지됩니다. 의미 체계 자격 증명은 HealthOmics 개체 태그 또는 시퀀스 스토어 수집 중에 계산되어 읽기 세트 메타데이터로 사용할 수 있는 ETag로 캡처됩니다.

읽기 세트의 파일 유형 스키마가 허용하는 경우 시퀀스 스토어 업데이트 필드는 데이터 출처에 연결됩니다. uBAM, BAM 및 CRAM 파일의 경우 헤더에 새 `@CO` 또는 `Comment` 태그가 추가됩니다. 주석에는 시퀀스 스토어 ID와 수집 타임스탬프가 포함됩니다.

## Amazon S3 ETags
<a name="s3-etags"></a>

Amazon S3 URI를 사용하여 파일에 액세스할 때 Amazon S3 API 작업은 Amazon S3 ETag 및 체크섬 값도 반환할 수 있습니다. Amazon S3 ETag 및 체크섬 값은 파일의 비트 ID를 나타내기 때문에 HealthOmics ETags와 다릅니다. 설명 메타데이터 및 객체에 대한 자세한 내용은 Amazon S3 [객체 API 설명서를](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html) 참조하세요. Amazon S3 ETag 값은 읽기 세트의 각 활성화 주기에 따라 변경될 수 있으며 이를 사용하여 파일 읽기를 검증할 수 있습니다. 그러나 파일 수명 주기 동안 파일 자격 증명 검증에 사용할 Amazon S3 ETag 값은 일관되게 유지되지 않으므로 캐시하지 마십시오. 반대로 HealthOmics ETag는 읽기 세트의 수명 주기 동안 일관되게 유지됩니다.

## HealthOmics ETags 계산하는 방법
<a name="how-etags-calculated"></a>

ETag는 수집된 파일 콘텐츠의 해시에서 생성됩니다. ETag 알고리즘 패밀리는 기본적으로 MD5up으로 설정되지만 시퀀스 스토어 생성 중에 다르게 구성할 수 있습니다. ETag가 계산되면 알고리즘과 계산된 해시가 읽기 세트에 추가됩니다. 파일 유형에 지원되는 MD5 알고리즘은 다음과 같습니다.
+ *FASTQ\$1MD5up* - 압축되지 않은 전체 FASTQ 읽기 세트 소스의 MD5 해시를 계산합니다.
+ *BAM\$1MD5up* - 사용 가능한 경우 연결된 참조를 기반으로 SAM에 표시된 대로 압축되지 않은 BAM 또는 uBAM 읽기 세트 소스의 정렬 섹션의 MD5 해시를 계산합니다.
+ *CRAM\$1MD5up* - 연결된 참조를 기반으로 SAM에 표시된 대로 압축되지 않은 CRAM 읽기 세트 소스의 정렬 섹션의 MD5 해시를 계산합니다.

**참고**  
MD5 해싱은 충돌에 취약한 것으로 알려져 있습니다. 따라서 알려진 충돌을 악용하도록 제작된 두 개의 서로 다른 파일은 동일한 ETag를 가질 수 있습니다.

SHA256 패밀리에는 다음 알고리즘이 지원됩니다. 알고리즘은 다음과 같이 계산됩니다.
+ *FASTQ\$1SHA256up* - 압축되지 않은 전체 FASTQ 읽기 세트 소스의 SHA-256 해시를 계산합니다.
+ *BAM\$1SHA256up* - 사용 가능한 경우 연결된 참조를 기반으로 SAM에 표시된 대로 압축되지 않은 BAM 또는 uBAM 읽기 세트 소스의 정렬 섹션의 SHA-256 해시를 계산합니다.
+ *CRAM\$1SHA256up* - 연결된 참조를 기반으로 SAM에 표시된 대로 압축되지 않은 CRAM 읽기 세트 소스의 정렬 섹션의 SHA-256 해시를 계산합니다.

SHA512 패밀리에는 다음 알고리즘이 지원됩니다. 알고리즘은 다음과 같이 계산됩니다.
+ *FASTQ\$1SHA512up* - 압축되지 않은 전체 FASTQ 읽기 세트 소스의 SHA-512 해시를 계산합니다.
+ *BAM\$1SHA512up* - 사용 가능한 경우 연결된 참조를 기반으로 SAM에 표시된 대로 압축되지 않은 BAM 또는 uBAM 읽기 세트 소스의 정렬 섹션의 SHA-512 해시를 계산합니다.

   
+ *CRAM\$1SHA512up * - 연결된 참조를 기반으로 SAM에 표시된 대로 압축되지 않은 CRAM 읽기 세트 소스의 정렬 섹션의 SHA-512 해시를 계산합니다.

# HealthOmics 참조 스토어 생성
<a name="create-reference-store"></a>

HealthOmics의 참조 스토어는 참조 유전체를 저장하기 위한 데이터 스토어입니다. 각 AWS 계정 및 리전에 단일 참조 저장소를 가질 수 있습니다. 콘솔 또는 CLI를 사용하여 참조 저장소를 생성할 수 있습니다.

**Topics**
+ [콘솔을 사용하여 참조 저장소 생성](#console-create-reference-store)
+ [CLI를 사용하여 참조 저장소 생성](#api-create-reference-store)

## 콘솔을 사용하여 참조 저장소 생성
<a name="console-create-reference-store"></a>

**참조 저장소 생성**

1. [HealthOmics 콘솔](https://console.aws.amazon.com/omics/)을 엽니다.

1.  필요한 경우 왼쪽 탐색 창(™)을 엽니다. **참조 저장소**를 선택합니다.

1. **Genomics 데이터 스토리지 옵션에서 참조** 유전체를 선택합니다.

1. 이전에 가져온 참조 유전체를 선택하거나 새 참조 유전체를 가져올 수 있습니다. 참조 유전체를 가져오지 않은 경우 오른쪽 상단에서 **참조 유전체 가져오기**를 선택합니다.

1. **참조 유전체 가져오기 작업 생성** 페이지에서 **빠른 생성** 또는 **수동 생성** 옵션을 선택하여 참조 저장소를 생성한 다음 다음 다음 정보를 제공합니다.
   + **참조 유전체 이름** -이 저장소의 고유한 이름입니다.
   + **설명**(선택 사항) -이 참조 저장소에 대한 설명입니다.
   + **IAM 역할** - 참조 유전체에 액세스할 수 있는 역할을 선택합니다.
   + **Amazon S3의 참조** - Amazon S3 버킷에서 참조 시퀀스 파일을 선택합니다.
   + **태그**(선택 사항) -이 참조 저장소에 최대 50개의 태그를 제공합니다.

## CLI를 사용하여 참조 저장소 생성
<a name="api-create-reference-store"></a>

다음 예제에서는를 사용하여 참조 저장소를 생성하는 방법을 보여줍니다 AWS CLI. AWS 리전당 하나의 참조 저장소를 가질 수 있습니다.

참조 스토어는 확장명이 `.fasta`, , , `.fa`, , , `.faa`, `.fas` `.fsa``.ffn`, `.fna``.frn`, `.mpfa`, `.seq`인 FASTA 파일의 스토리지를 지원합니다`.txt`. 이러한 확장의 `bgzip` 버전도 지원됩니다.

다음 예제에서 `reference store name`를 참조 저장소에 대해 선택한 이름으로 바꿉니다.

```
aws omics create-reference-store --name "reference store name"  
```

참조 스토어 ID 및 이름, ARN, 참조 스토어가 생성된 시점의 타임스탬프가 포함된 JSON 응답을 받습니다.

```
{
    "id": "3242349265",
    "arn": "arn:aws:omics:us-west-2:555555555555:referenceStore/3242349265",
    "name": "MyReferenceStore",
    "creationTime": "2022-07-01T20:58:42.878Z"
}
```

추가 AWS CLI 명령에서 참조 스토어 ID를 사용할 수 있습니다. 다음 예제와 같이 **list-reference-stores** 명령을 사용하여 계정에 연결된 참조 스토어 IDs 목록을 검색할 수 있습니다.

```
aws omics list-reference-stores 
```

이에 대한 응답으로 새로 생성된 참조 저장소의 이름을 받게 됩니다.

```
{
    "referenceStores": [
        {
              "id": "3242349265",
              "arn": "arn:aws:omics:us-west-2:555555555555:referenceStore/3242349265",
              "name": "MyReferenceStore",
             "creationTime": "2022-07-01T20:58:42.878Z"
         }
     ]
}
```

참조 저장소를 생성한 후 가져오기 작업을 생성하여 유전체 참조 파일을 해당 저장소에 로드할 수 있습니다. 이렇게 하려면 IAM 역할을 사용하거나 생성하여 데이터에 액세스해야 합니다. 다음은 예제 정책입니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetBucketLocation"
                
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1",
                "arn:aws:s3:::amzn-s3-demo-bucket1/*"
            ]
        }
    ]
}
```

------

또한 다음 예제와 유사한 신뢰 정책이 있어야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                   "omics.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

이제 참조 유전체를 가져올 수 있습니다. 이 예제에서는 오픈 액세스가 가능하고 [오픈 데이터 레지스트리 AWS](https://registry.opendata.aws/)에서 사용할 수 있는 Genome Reference Consortium Human Build 38(hg38)을 사용합니다. 이 데이터를 호스팅하는 버킷은 미국 동부(오하이오)에 기반을 두고 있습니다. 다른 AWS 리전에서 버킷을 사용하려면 해당 리전에서 호스팅되는 Amazon S3 버킷에 데이터를 복사할 수 있습니다. 다음 AWS CLI 명령을 사용하여 유전체를 Amazon S3 버킷에 복사합니다.

```
aws s3 cp s3://broad-references/hg38/v0/Homo_sapiens_assembly38.fasta s3://amzn-s3-demo-bucket 
```

그런 다음 가져오기 작업을 시작할 수 있습니다. `reference store ID`, `role ARN`및를 자체 입력`source file path`으로 바꿉니다.

```
aws omics start-reference-import-job --reference-store-id reference store ID --role-arn role ARN --sources source file path
```

데이터를 가져온 후 JSON으로 다음 응답을 받게 됩니다.

```
{
        "id": "7252016478",
        "referenceStoreId": "3242349265",
        "roleArn": "arn:aws:iam::111122223333:role/OmicsReferenceImport",
        "status": "CREATED",
        "creationTime": "2022-07-01T21:15:13.727Z"
}
```

다음 명령을 사용하여 작업 상태를 모니터링할 수 있습니다. 다음 예제에서 `reference store ID` 및를 참조 스토어 ID와 자세히 알아볼 작업 ID`job ID`로 바꿉니다.

```
aws omics get-reference-import-job --reference-store-id reference store ID --id job ID  
```

이에 대한 응답으로 해당 참조 저장소 및 해당 상태에 대한 세부 정보가 포함된 응답을 받게 됩니다.

```
{
    "id": "7252016478",
    "referenceStoreId": "3242349265",
    "roleArn": "arn:aws:iam::555555555555:role/OmicsReferenceImport",
    "status": "RUNNING",
    "creationTime": "2022-07-01T21:15:13.727Z",
    "sources": [
        {
            "sourceFile": "s3://amzn-s3-demo-bucket/Homo_sapiens_assembly38.fasta",
            "status": "IN_PROGRESS",
            "name": "MyReference"
        }
    ]
}
```

참조를 나열하고 참조 이름을 기준으로 필터링하여 가져온 참조를 찾을 수도 있습니다. 를 참조 스토어 ID`reference store ID`로 바꾸고 선택적 필터를 추가하여 목록의 범위를 좁힙니다.

```
aws omics list-references --reference-store-id reference store ID --filter name=MyReference  
```

이에 대한 응답으로 다음 정보를 받게 됩니다.

```
{
    "references": [
        {
            "id": "1234567890",
            "arn": "arn:aws:omics:us-west-2:555555555555:referenceStore/1234567890/reference/1234567890",
            "referenceStoreId": "12345678",
            "md5": "7ff134953dcca8c8997453bbb80b6b5e",
            "status": "ACTIVE",
            "name": "MyReference",
            "creationTime": "2022-07-02T00:15:19.787Z",
            "updateTime": "2022-07-02T00:15:19.787Z"
        }
    ]
}
```

참조 메타데이터에 대해 자세히 알아보려면 **get-reference-metadata** API 작업을 사용합니다. 다음 예제에서를 참조 스토어 ID`reference store ID`로 바꾸고를 자세히 알아볼 참조 ID`reference ID`로 바꿉니다.

```
aws omics get-reference-metadata --reference-store-id reference store ID --id reference ID   
```

응답으로 다음 정보를 받게 됩니다.

```
{
    "id": "1234567890",
    "arn": "arn:aws:omics:us-west-2:555555555555:referenceStore/referencestoreID/reference/referenceID",
    "referenceStoreId": "1234567890",
    "md5": "7ff134953dcca8c8997453bbb80b6b5e",
    "status": "ACTIVE",
    "name": "MyReference",
    "creationTime": "2022-07-02T00:15:19.787Z",
    "updateTime": "2022-07-02T00:15:19.787Z",
    "files": {
        "source": {
            "totalParts": 31,
            "partSize": 104857600,
            "contentLength": 3249912778
        },
        "index": {
            "totalParts": 1,
            "partSize": 104857600,
            "contentLength": 160928
        }
    }
}
```

**get-reference**를 사용하여 참조 파일의 일부를 다운로드할 수도 있습니다. 다음 예제에서를 참조 스토어 ID`reference store ID`로 바꾸고를 다운로드하려는 참조 ID`reference ID`로 바꿉니다.

```
aws omics get-reference --reference-store-id reference store ID --id reference ID --part-number 1 outfile.fa   
```

# HealthOmics 시퀀스 스토어 생성
<a name="create-sequence-store"></a>



HealthOmics 시퀀스 스토어는 (`FASTQ`gzip 전용) 및의 정렬되지 않은 형식의 게놈 파일 저장을 지원합니다`uBAM`. 또한 `BAM` 및의 정렬된 형식도 지원합니다`CRAM`.

가져온 파일은 읽기 세트로 저장됩니다. 읽기 세트에 태그를 추가하고 IAM 정책을 사용하여 읽기 세트에 대한 액세스를 제어할 수 있습니다. 정렬된 읽기 세트에는 유전체 시퀀스를 정렬하기 위한 참조 유전체가 필요하지만 정렬되지 않은 읽기 세트의 경우 선택 사항입니다.

읽기 세트를 저장하려면 먼저 시퀀스 저장소를 생성합니다. 시퀀스 스토어를 생성할 때 선택적 Amazon S3 버킷을 대체 위치 및 S3 액세스 로그가 저장되는 위치로 지정할 수 있습니다. 대체 위치는 직접 업로드 중에 읽기 세트를 생성하지 못하는 파일을 저장하는 데 사용됩니다. 폴백 위치는 2023년 5월 15일 이후에 생성된 시퀀스 스토어에 사용할 수 있습니다. 시퀀스 스토어를 생성할 때 대체 위치를 지정합니다.

최대 5개의 읽기 세트 태그 키를 지정할 수 있습니다. 이러한 키 중 하나와 일치하는 태그 키로 읽기 세트를 생성하거나 업데이트하면 읽기 세트 태그가 해당 Amazon S3 객체로 전파됩니다. HealthOmics에서 생성한 시스템 태그는 기본적으로 전파됩니다.

**Topics**
+ [콘솔을 사용하여 시퀀스 스토어 생성](#console-create-sequence-store)
+ [CLI를 사용하여 시퀀스 스토어 생성](#api-create-sequence-store)
+ [시퀀스 스토어 업데이트](#update-sequence-store)
+ [시퀀스 스토어의 읽기 세트 태그 업데이트](#sequence-store-manage-tags)
+ [게놈 파일 가져오기](#import-genomic-files)

## 콘솔을 사용하여 시퀀스 스토어 생성
<a name="console-create-sequence-store"></a>

**시퀀스 저장소 생성**

1. [HealthOmics 콘솔](https://console.aws.amazon.com/omics/)을 엽니다.

1.  필요한 경우 왼쪽 탐색 창(™)을 엽니다. **시퀀스 저장소**를 선택합니다.

1. **시퀀스 스토어 생성** 페이지에서 다음 정보를 제공합니다.
   + **시퀀스 저장소 이름** -이 저장소의 고유한 이름입니다.
   + **설명**(선택 사항) -이 시퀀스 저장소에 대한 설명입니다.

1. **S3의 폴백 위치에서** Amazon S3 위치를 지정합니다. HealthOmics는 직접 업로드 중에 읽기 세트를 생성하지 못하는 파일을 저장하기 위해 대체 위치를 사용합니다. HealthOmics 서비스에 Amazon S3 폴백 위치에 대한 쓰기 액세스 권한을 부여해야 합니다. 정책 예제는 [대체 위치 구성](synchronous-uploads.md#synchronous-uploads-fallback)을 참조하세요.

   폴백 위치는 2023년 5월 16일 이전에 생성된 시퀀스 스토어에는 사용할 수 없습니다.

1. (선택 사항) ** S3 전파를 위한 읽기 세트 태그 키**의 경우 최대 5개의 읽기 세트 키를 입력하여 읽기 세트에서 기본 S3 객체로 전파할 수 있습니다. 읽기 세트의 태그를 S3 객체로 전파하면 Amazon S3 getObjectTagging API 작업을 통해 전파된 태그를 볼 수 있는 태그 및/또는 최종 사용자를 기반으로 Amazon S3 액세스 권한을 부여할 수 있습니다.

   1. 텍스트 상자에 키 값 하나를 입력합니다. 콘솔은 새 텍스트 상자를 생성하여 다음 키를 추가합니다.

   1. (선택 사항) **제거**를 선택하여 모든 키를 제거합니다.

1. **데이터 암호화**에서 데이터 암호화를에서 소유 및 관리할지 AWS 아니면 고객 관리형 CMK를 사용할지 선택합니다.

1. (선택 사항) **S3 데이터 액세스**에서 Amazon S3를 통해 시퀀스 스토어에 액세스하기 위한 새 역할 및 정책을 생성할지 여부를 선택합니다.

1. (선택 사항) **S3 액세스 로깅**에서 Amazon S3가 액세스 로그 레코드를 수집할`Enabled`지 여부를 선택합니다.

   **S3의 액세스 로깅 위치에서** 로그를 저장할 Amazon S3 위치를 지정합니다. 이 필드는 S3 액세스 로깅을 활성화한 경우에만 표시됩니다.

1. **태그**(선택 사항) -이 시퀀스 스토어에 최대 50개의 태그를 제공합니다. 이러한 태그는 읽기 세트 가져오기/태그 업데이트 중에 설정된 읽기 세트 태그와 별개입니다.

스토어를 생성하면에 대한 준비가 된 것입니다[게놈 파일 가져오기](#import-genomic-files).

## CLI를 사용하여 시퀀스 스토어 생성
<a name="api-create-sequence-store"></a>

다음 예제에서 `sequence store name`를 시퀀스 스토어에 대해 선택한 이름으로 바꿉니다.

```
aws omics create-sequence-store --name sequence store name --fallback-location "s3://amzn-s3-demo-bucket"  
```

새로 생성된 시퀀스 스토어의 ID 번호가 포함된 JSON으로 다음 응답을 받습니다.

```
{
    "id": "3936421177",
    "arn": "arn:aws:omics:us-west-2:111122223333:sequenceStore/3936421177",
    "name": "sequence_store_example_name",
    "creationTime": "2022-07-13T20:09:26.038Z"
    "fallbackLocation" : "s3://amzn-s3-demo-bucket"
}
```

다음과 같이 **list-sequence-stores** 명령을 사용하여 계정과 연결된 모든 시퀀스 스토어를 볼 수도 있습니다.

```
aws omics list-sequence-stores
```

다음과 같은 응답을 받게 됩니다.

```
{
    "sequenceStores": [
        {
            "arn": "arn:aws:omics:us-west-2:111122223333:sequenceStore/3936421177",
            "id": "3936421177",
            "name": "MySequenceStore",
            "creationTime": "2022-07-13T20:09:26.038Z",
            "updatedTime": "2024-09-13T04:11:31.242Z",
            "fallbackLocation" : "s3://amzn-s3-demo-bucket",
            "status": "Active"
        }
    ]
}
```

다음 예제와 같이 **get-sequence-store**를 사용하여 ID를 사용하여 시퀀스 저장소에 대해 자세히 알아볼 수 있습니다.

```
aws omics get-sequence-store --id sequence store ID                             
```

다음과 같은 응답을 받게 됩니다.

```
{
  "arn": "arn:aws:omics:us-west-2:123456789012:sequenceStore/sequencestoreID",
  "creationTime": "2024-01-12T04:45:29.857Z",
  "updatedTime": "2024-09-13T04:11:31.242Z",
  "description": null,
  "fallbackLocation": null,
  "id": "2015356892",
  "name": "MySequenceStore",
  "s3Access": {
      "s3AccessPointArn": "arn:aws:s3:us-west-2:123456789012:accesspoint/592761533288-2015356892",
      "s3Uri": "s3://592761533288-2015356892-ajdpi90jdas90a79fh9a8ja98jdfa9jf98-s3alias/592761533288/sequenceStore/2015356892/",
      "accessLogLocation": "s3://IAD-seq-store-log/2015356892/"
  },
  "sseConfig": {
      "keyArn": "arn:aws:kms:us-west-2:123456789012:key/eb2b30f5-635d-4b6d-b0f9-d3889fe0e648",
      "type": "KMS"
  },
  "status": "Active",
  "statusMessage": null,
  "setTagsToSync": ["withdrawn","protocol"],
}
```

생성 후 여러 저장소 파라미터를 업데이트할 수도 있습니다. 이는 콘솔 또는 API `updateSequenceStore` 작업을 통해 수행할 수 있습니다.

## 시퀀스 스토어 업데이트
<a name="update-sequence-store"></a>

시퀀스 저장소를 업데이트하려면 다음 단계를 따릅니다.

1. [HealthOmics 콘솔](https://console.aws.amazon.com/omics/)을 엽니다.

1.  필요한 경우 왼쪽 탐색 창(™)을 엽니다. **시퀀스 저장소**를 선택합니다.

1. 업데이트할 시퀀스 스토어를 선택합니다.

1. **세부 정보** 패널에서 **편집**을 선택합니다.

1. **세부 정보 편집** 페이지에서 다음 필드를 업데이트할 수 있습니다.
   + **시퀀스 저장소 이름** -이 저장소의 고유한 이름입니다.
   + **설명** -이 시퀀스 저장소에 대한 설명입니다.
   + **S3의 대체 위치**, Amazon S3 위치를 지정합니다. HealthOmics는 직접 업로드 중에 읽기 세트를 생성하지 못하는 파일을 저장하기 위해 대체 위치를 사용합니다.
   + **S3 전파를 위한 읽기 세트 태그 키** 최대 5개의 읽기 세트 키를 입력하여 Amazon S3에 전파할 수 있습니다.
   + (선택 사항) **S3 액세스 로깅**에서 Amazon S3가 액세스 로그 레코드를 수집할`Enabled`지 여부를 선택합니다.

     **S3의 액세스 로깅 위치에서** 로그를 저장할 Amazon S3 위치를 지정합니다. 이 필드는 S3 액세스 로깅을 활성화한 경우에만 표시됩니다.
   + **태그**(선택 사항) -이 시퀀스 스토어에 최대 50개의 태그를 제공합니다.

## 시퀀스 스토어의 읽기 세트 태그 업데이트
<a name="sequence-store-manage-tags"></a>

시퀀스 스토어의 읽기 세트 태그 또는 기타 필드를 업데이트하려면 다음 단계를 따르세요.

1. [HealthOmics 콘솔](https://console.aws.amazon.com/omics/)을 엽니다.

1.  필요한 경우 왼쪽 탐색 창(™)을 엽니다. **시퀀스 저장소**를 선택합니다.

1. 업데이트할 시퀀스 스토어를 선택합니다.

1. **세부 정보** 탭을 선택하십시오.

1. **편집**을 선택합니다.

1. 필요에 따라 새 읽기 세트 태그를 추가하거나 기존 태그를 삭제합니다.

1. 필요에 따라 이름, 설명, 대체 위치 또는 S3 데이터 액세스를 업데이트합니다.

1. **변경 사항 저장**을 선택합니다.

## 게놈 파일 가져오기
<a name="import-genomic-files"></a>

게놈 파일을 시퀀스 저장소로 가져오려면 다음 단계를 따릅니다.

**유전체학 파일을 가져오려면**

1. [HealthOmics 콘솔](https://console.aws.amazon.com/omics/)을 엽니다.

1.  필요한 경우 왼쪽 탐색 창(™)을 엽니다. **시퀀스 저장소**를 선택합니다.

1. **시퀀스 저장소** 페이지에서 파일을 가져올 시퀀스 저장소를 선택합니다.

1. 개별 시퀀스 스토어 페이지에서 **유전체 파일 가져오기**를 선택합니다.

1. **가져오기 세부 정보 지정** 페이지에서 다음 정보를 제공합니다.
   + **IAM 역할** - Amazon S3의 게놈 파일에 액세스할 수 있는 IAM 역할입니다.
   + **참조 유전체** -이 유전체 데이터의 참조 유전체입니다.

1. **가져오기 매니페스트 지정** 페이지에서 다음 정보 **매니페스트 파일을** 지정합니다. 매니페스트 파일은 게놈 데이터의 필수 정보를 설명하는 JSON 또는 YAML 파일입니다. 매니페스트 파일에 대한 자세한 내용은 섹션을 참조하세요[HealthOmics 시퀀스 스토어로 읽기 세트 가져오기](import-sequence-store.md).

1. **가져오기 작업 생성을** 클릭합니다.

# HealthOmics 참조 및 시퀀스 저장소 삭제
<a name="deleting-reference-and-sequence-stores"></a>

참조 및 시퀀스 저장소를 모두 삭제할 수 있습니다. 시퀀스 저장소는 읽기 세트를 포함하지 않는 경우에만 삭제할 수 있으며, 참조 저장소는 참조를 포함하지 않는 경우에만 삭제할 수 있습니다. 시퀀스 또는 참조 저장소를 삭제하면 해당 저장소와 연결된 태그도 삭제됩니다.

다음 예제에서는를 사용하여 참조 저장소를 삭제하는 방법을 보여줍니다 AWS CLI. 작업이 성공하면 응답을 받지 못합니다. 다음 예제에서는를 참조 스토어 ID`reference store ID`로 바꿉니다.

```
aws omics delete-reference-store --id reference store ID              
```

다음 예제에서는 시퀀스 저장소를 삭제하는 방법을 보여줍니다. 작업이 성공하면 응답을 받지 못합니다. 다음 예제에서는를 시퀀스 스토어 ID`sequence store ID`로 바꿉니다.

```
aws omics delete-sequence-store --id sequence store ID            
```

다음 예제와 같이 참조 스토어에서 참조를 삭제할 수도 있습니다. 참조는 읽기 세트, 변형 저장소 또는 주석 저장소에서 사용되지 않는 경우에만 삭제할 수 있습니다. 다음 예제에서를 참조 스토어 ID`reference store ID`로 바꾸고를 삭제하려는 참조의 ID`reference ID`로 바꿉니다.

```
aws omics delete-reference  --id reference ID --reference-store-id reference store ID          
```

# HealthOmics 시퀀스 스토어로 읽기 세트 가져오기
<a name="import-sequence-store"></a>

시퀀스 스토어를 생성한 후 데이터 스토어에 읽기 세트를 업로드하는 가져오기 작업을 생성합니다. Amazon S3 버킷에서 파일을 업로드하거나 동기 API 작업을 사용하여 직접 업로드할 수 있습니다. Amazon S3 버킷은 시퀀스 스토어와 동일한 리전에 있어야 합니다.

정렬된 읽기 세트와 정렬되지 않은 읽기 세트의 조합을 시퀀스 저장소에 업로드할 수 있지만 가져오기의 읽기 세트 중 하나라도 정렬된 경우 참조 유전체를 포함해야 합니다.

참조 저장소를 생성하는 데 사용한 IAM 액세스 정책을 재사용할 수 있습니다.

다음 주제에서는 시퀀스 스토어로 읽기 세트를 가져온 다음 가져온 데이터에 대한 정보를 가져오는 데 따르는 주요 단계를 설명합니다.

**Topics**
+ [Amazon S3에 파일 업로드](#upload-files-to-s3)
+ [매니페스트 파일 생성](#create-manifest-file)
+ [가져오기 작업 시작](#start-import-job)
+ [가져오기 작업 모니터링](#monitor-import-job)
+ [가져온 시퀀스 파일 찾기](#list-read-sets)
+ [읽기 세트에 대한 세부 정보 가져오기](#get-read-set-metadata)
+ [읽기 세트 데이터 파일 다운로드](#get-read-set-data)

## Amazon S3에 파일 업로드
<a name="upload-files-to-s3"></a>

다음 예제에서는 파일을 Amazon S3 버킷으로 이동하는 방법을 보여줍니다.

```
aws s3 cp s3://1000genomes/phase1/data/HG00100/alignment/HG00100.chrom20.ILLUMINA.bwa.GBR.low_coverage.20101123.bam s3://your-bucket
aws s3 cp s3://1000genomes/phase3/data/HG00146/sequence_read/SRR233106_1.filt.fastq.gz s3://your-bucket
aws s3 cp s3://1000genomes/phase3/data/HG00146/sequence_read/SRR233106_2.filt.fastq.gz s3://your-bucket
aws s3 cp s3://1000genomes/data/HG00096/alignment/HG00096.alt_bwamem_GRCh38DH.20150718.GBR.low_coverage.cram s3://your-bucket 
aws s3 cp s3://gatk-test-data/wgs_ubam/NA12878_20k/NA12878_A.bam s3://your-bucket
```

이 예제에서 `CRAM` 사용되는 샘플 `BAM` 및 에는 서로 다른 유전체 참조인 `Hg19` 및가 필요합니다`Hg38`. 자세한 내용을 알아보거나 이러한 참조에 액세스하려면 오픈 데이터 레지스트리의 [The Broad Genome References](https://registry.opendata.aws/broad-references/)를 참조하세요 AWS.

## 매니페스트 파일 생성
<a name="create-manifest-file"></a>

또한 가져오기 작업을 모델링하려면 JSON으로 매니페스트 파일을 생성해야 합니다`import.json`(다음 예제 참조). 콘솔에서 시퀀스 저장소를 생성하는 경우 `sequenceStoreId` 또는를 지정할 필요가 `roleARN`없으므로 매니페스트 파일이 `sources` 입력으로 시작됩니다.

------
#### [ API manifest ]

다음 예제에서는 API를 사용하여 , `FASTQ`, `BAM`의 세 가지 읽기 세트를 가져옵니다`CRAM`.

```
{
  "sequenceStoreId": "3936421177",
  "roleArn": "arn:aws:iam::555555555555:role/OmicsImport",
  "sources":
  [
      {
          "sourceFiles":
          {
              "source1": "s3://amzn-s3-demo-bucket/HG00100.chrom20.ILLUMINA.bwa.GBR.low_coverage.20101123.bam"
          },
          "sourceFileType": "BAM",
          "subjectId": "mySubject",
          "sampleId": "mySample",
          "referenceArn": "arn:aws:omics:us-west-2:555555555555:referenceStore/0123456789/reference/0000000001",
          "name": "HG00100",
          "description": "BAM for HG00100",
          "generatedFrom": "1000 Genomes"
      },
      {
          "sourceFiles":
          {
              "source1": "s3://amzn-s3-demo-bucket/SRR233106_1.filt.fastq.gz",
              "source2": "s3://amzn-s3-demo-bucket/SRR233106_2.filt.fastq.gz"
          },
          "sourceFileType": "FASTQ",
          "subjectId": "mySubject",
          "sampleId": "mySample",
          // NOTE: there is no reference arn required here
          "name": "HG00146",
          "description": "FASTQ for HG00146",
          "generatedFrom": "1000 Genomes"
      },
      {
          "sourceFiles":
          {
              "source1": "s3://amzn-s3-demo-bucket/HG00096.alt_bwamem_GRCh38DH.20150718.GBR.low_coverage.cram"
          },
          "sourceFileType": "CRAM",
          "subjectId": "mySubject",
          "sampleId": "mySample",
          "referenceArn": "arn:aws:omics:us-west-2:555555555555:referenceStore/0123456789/reference/0000000001",
          "name": "HG00096",
          "description": "CRAM for HG00096",
          "generatedFrom": "1000 Genomes"
      },
      {
          "sourceFiles":
          {
              "source1": "s3://amzn-s3-demo-bucket/NA12878_A.bam"
          },
          "sourceFileType": "UBAM",
          "subjectId": "mySubject",
          "sampleId": "mySample",
          // NOTE: there is no reference arn required here
          "name": "NA12878_A",
          "description": "uBAM for NA12878",
          "generatedFrom": "GATK Test Data"
      }
  ]
}
```

------
#### [ Console manifest ]

이 예제 코드는 콘솔을 사용하여 단일 읽기 세트를 가져오는 데 사용됩니다.

```
[    
  {
      "sourceFiles":
      {
          "source1": "s3://amzn-s3-demo-bucket/HG00100.chrom20.ILLUMINA.bwa.GBR.low_coverage.20101123.bam"
      },
      "sourceFileType": "BAM",
      "subjectId": "mySubject",
      "sampleId": "mySample",
      "name": "HG00100",
      "description": "BAM for HG00100",
      "generatedFrom": "1000 Genomes"
  },
  {
      "sourceFiles":
      {
          "source1": "s3://amzn-s3-demo-bucket/SRR233106_1.filt.fastq.gz",
          "source2": "s3://amzn-s3-demo-bucket/SRR233106_2.filt.fastq.gz"
      },
      "sourceFileType": "FASTQ",
      "subjectId": "mySubject",
      "sampleId": "mySample",
      "name": "HG00146",
      "description": "FASTQ for HG00146",
      "generatedFrom": "1000 Genomes"
  },
  {
      "sourceFiles":
      {
          "source1": "s3://your-bucket/HG00096.alt_bwamem_GRCh38DH.20150718.GBR.low_coverage.cram"
      },
      "sourceFileType": "CRAM",
      "subjectId": "mySubject",
      "sampleId": "mySample",
      "name": "HG00096",
      "description": "CRAM for HG00096",
      "generatedFrom": "1000 Genomes"
  },
  {
      "sourceFiles":
      {
          "source1": "s3://amzn-s3-demo-bucket/NA12878_A.bam"
      },
      "sourceFileType": "UBAM",
      "subjectId": "mySubject",
      "sampleId": "mySample",
      "name": "NA12878_A",
      "description": "uBAM for NA12878",
      "generatedFrom": "GATK Test Data"
  }
]
```

------

또는 매니페스트 파일을 YAML 형식으로 업로드할 수 있습니다.

## 가져오기 작업 시작
<a name="start-import-job"></a>

가져오기 작업을 시작하려면 다음 AWS CLI 명령을 사용합니다.

```
aws omics start-read-set-import-job --cli-input-json file://import.json      
```

작업 생성이 성공했음을 나타내는 다음과 같은 응답을 받게 됩니다.

```
{
  "id": "3660451514",
  "sequenceStoreId": "3936421177",
  "roleArn": "arn:aws:iam::111122223333:role/OmicsImport",
  "status": "CREATED",
  "creationTime": "2022-07-13T22:14:59.309Z"
}
```

## 가져오기 작업 모니터링
<a name="monitor-import-job"></a>

가져오기 작업이 시작된 후 다음 명령을 사용하여 진행 상황을 모니터링할 수 있습니다. 다음 예제에서를 시퀀스 스토어 ID`sequence store id`로 바꾸고를 가져오기 ID`job import ID`로 바꿉니다.

```
aws omics get-read-set-import-job --sequence-store-id sequence store id --id job import ID 
```

다음은 지정된 시퀀스 스토어 ID와 연결된 모든 가져오기 작업의 상태를 보여줍니다.

```
{
  "id": "1234567890",
  "sequenceStoreId": "1234567890",
  "roleArn": "arn:aws:iam::111122223333:role/OmicsImport",
  "status": "RUNNING",
  "statusMessage": "The job is currently in progress.",
  "creationTime": "2022-07-13T22:14:59.309Z",
  "sources": [    
      {
          "sourceFiles":
          {
              "source1": "s3://amzn-s3-demo-bucket/HG00100.chrom20.ILLUMINA.bwa.GBR.low_coverage.20101123.bam"
          },
          "sourceFileType": "BAM",
          "status": "IN_PROGRESS",
          "statusMessage": "The job is currently in progress."
          "subjectId": "mySubject",
          "sampleId": "mySample",
          "referenceArn": "arn:aws:omics:us-west-2:111122223333:referenceStore/3242349265/reference/8625408453",
          "name": "HG00100",
          "description": "BAM for HG00100",
          "generatedFrom": "1000 Genomes",
          "readSetID": "1234567890"
      },
      {
          "sourceFiles":
          {
              "source1": "s3://amzn-s3-demo-bucket/SRR233106_1.filt.fastq.gz",
              "source2": "s3://amzn-s3-demo-bucket/SRR233106_2.filt.fastq.gz"
          },
          "sourceFileType": "FASTQ",
          "status": "IN_PROGRESS",
          "statusMessage": "The job is currently in progress."
          "subjectId": "mySubject",
          "sampleId": "mySample",
          "name": "HG00146",
          "description": "FASTQ for HG00146",
          "generatedFrom": "1000 Genomes",
          "readSetID": "1234567890"
      },
      {
          "sourceFiles":
          {
              "source1": "s3://amzn-s3-demo-bucket/HG00096.alt_bwamem_GRCh38DH.20150718.GBR.low_coverage.cram"
          },
          "sourceFileType": "CRAM",
          "status": "IN_PROGRESS",
          "statusMessage": "The job is currently in progress."
          "subjectId": "mySubject",
          "sampleId": "mySample",
          "referenceArn": "arn:aws:omics:us-west-2:111122223333:referenceStore/3242349265/reference/1234568870",
          "name": "HG00096",
          "description": "CRAM for HG00096",
          "generatedFrom": "1000 Genomes",
          "readSetID": "1234567890"
      },
      {
          "sourceFiles":
          {
              "source1": "s3://amzn-s3-demo-bucket/NA12878_A.bam"
          },
          "sourceFileType": "UBAM",
          "status": "IN_PROGRESS",
          "statusMessage": "The job is currently in progress."
          "subjectId": "mySubject",
          "sampleId": "mySample",
          "name": "NA12878_A",
          "description": "uBAM for NA12878",
          "generatedFrom": "GATK Test Data",
          "readSetID": "1234567890"
      }
  ]
}
```

## 가져온 시퀀스 파일 찾기
<a name="list-read-sets"></a>

작업이 완료되면 **list-read-sets** API 작업을 사용하여 가져온 시퀀스 파일을 찾을 수 있습니다. 다음 예제에서는를 시퀀스 스토어 ID`sequence store id`로 바꿉니다.

```
aws omics list-read-sets --sequence-store-id sequence store id
```

다음과 같은 응답을 받게 됩니다.

```
{
  "readSets": [
      {
          "id": "0000000001",
          "arn": "arn:aws:omics:us-west-2:111122223333:sequenceStore/01234567890/readSet/0000000001",
          "sequenceStoreId": "1234567890",
          "subjectId": "mySubject",
          "sampleId": "mySample",
          "status": "ACTIVE",
          "name": "HG00100",
          "description": "BAM for HG00100",
          "referenceArn": "arn:aws:omics:us-west-2:111122223333:referenceStore/01234567890/reference/0000000001",
          "fileType": "BAM",
          "sequenceInformation": {
              "totalReadCount": 9194,
              "totalBaseCount": 928594,
              "generatedFrom": "1000 Genomes",
              "alignment": "ALIGNED"
          },
          "creationTime": "2022-07-13T23:25:20Z"
          "creationType": "IMPORT", 
          "etag": {
              "algorithm": "BAM_MD5up",
              "source1": "d1d65429212d61d115bb19f510d4bd02"
          }
      },
      {
          "id": "0000000002",
          "arn": "arn:aws:omics:us-west-2:111122223333:sequenceStore/0123456789/readSet/0000000002",
          "sequenceStoreId": "0123456789",
          "subjectId": "mySubject",
          "sampleId": "mySample",
          "status": "ACTIVE",
          "name": "HG00146",
          "description": "FASTQ for HG00146",
          "fileType": "FASTQ",
          "sequenceInformation": {
              "totalReadCount": 8000000,
              "totalBaseCount": 1184000000,
              "generatedFrom": "1000 Genomes",
              "alignment": "UNALIGNED"
          },
          "creationTime": "2022-07-13T23:26:43Z"
          "creationType": "IMPORT",
          "etag": {
              "algorithm": "FASTQ_MD5up",
              "source1": "ca78f685c26e7cc2bf3e28e3ec4d49cd"
          }
      },
      {
          "id": "0000000003",
          "arn": "arn:aws:omics:us-west-2:111122223333:sequenceStore/0123456789/readSet/0000000003",
          "sequenceStoreId": "0123456789",
          "subjectId": "mySubject",
          "sampleId": "mySample",
          "status": "ACTIVE",
          "name": "HG00096",
          "description": "CRAM for HG00096",
          "referenceArn": "arn:aws:omics:us-west-2:111122223333:referenceStore/0123456789/reference/0000000001",
          "fileType": "CRAM",
          "sequenceInformation": {
              "totalReadCount": 85466534,
              "totalBaseCount": 24000004881,
              "generatedFrom": "1000 Genomes",
              "alignment": "ALIGNED"
          },
          "creationTime": "2022-07-13T23:30:41Z"
          "creationType": "IMPORT",
          "etag": {
              "algorithm": "CRAM_MD5up",
              "source1": "66817940f3025a760e6da4652f3e927e"
          }
      },
      {
          "id": "0000000004",
          "arn": "arn:aws:omics:us-west-2:111122223333:sequenceStore/0123456789/readSet/0000000004",
          "sequenceStoreId": "0123456789",
          "subjectId": "mySubject",
          "sampleId": "mySample",
          "status": "ACTIVE",
          "name": "NA12878_A",
          "description": "uBAM for NA12878",
          "fileType": "UBAM",
          "sequenceInformation": {
              "totalReadCount": 20000,
              "totalBaseCount": 5000000,
              "generatedFrom": "GATK Test Data",
              "alignment": "ALIGNED"
          },
          "creationTime": "2022-07-13T23:30:41Z"
          "creationType": "IMPORT",
          "etag": {
              "algorithm": "BAM_MD5up",
              "source1": "640eb686263e9f63bcda12c35b84f5c7"
          }
      }
  ]
}
```

## 읽기 세트에 대한 세부 정보 가져오기
<a name="get-read-set-metadata"></a>

읽기 세트에 대한 자세한 내용을 보려면 **GetReadSetMetadata** API 작업을 사용합니다. 다음 예제에서를 시퀀스 스토어 ID`sequence store id`로 바꾸고를 읽기 세트 ID`read set id`로 바꿉니다.

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

다음과 같은 응답을 받게 됩니다.

```
{
"arn": "arn:aws:omics:us-west-2:123456789012:sequenceStore/2015356892/readSet/9515444019",
"creationTime": "2024-01-12T04:50:33.548Z",
"creationType": "IMPORT",
"creationJobId": "33222111",
"description": null,
"etag": {
  "algorithm": "FASTQ_MD5up",
  "source1": "00d0885ba3eeb211c8c84520d3fa26ec",
  "source2": "00d0885ba3eeb211c8c84520d3fa26ec"
},
"fileType": "FASTQ",
"files": {
  "index": null,
  "source1": {
    "contentLength": 10818,
    "partSize": 104857600,
    "s3Access": {
      "s3Uri": "s3://accountID-sequence store ID-ajdpi90jdas90a79fh9a8ja98jdfa9jf98-s3alias/592761533288/sequenceStore/2015356892/readSet/9515444019/import_source1.fastq.gz"
},
    "totalParts": 1
  },
  "source2": {
    "contentLength": 10818,
    "partSize": 104857600,
    "s3Access": {        
      "s3Uri": "s3://accountID-sequence store ID-ajdpi90jdas90a79fh9a8ja98jdfa9jf98-s3alias/592761533288/sequenceStore/2015356892/readSet/9515444019/import_source1.fastq.gz"
    },
    "totalParts": 1
  }
},
"id": "9515444019",
"name": "paired-fastq-import",
"sampleId": "sampleId-paired-fastq-import",
"sequenceInformation": {
  "alignment": "UNALIGNED",
  "generatedFrom": null,
  "totalBaseCount": 30000,
  "totalReadCount": 200
},
"sequenceStoreId": "2015356892",
"status": "ACTIVE",
"statusMessage": null,
"subjectId": "subjectId-paired-fastq-import"
}
```

## 읽기 세트 데이터 파일 다운로드
<a name="get-read-set-data"></a>

Amazon S3 **GetObject** API 작업을 사용하여 활성 읽기 세트의 객체에 액세스할 수 있습니다. 객체의 URI는 **GetReadSetMetadata** API 응답에 반환됩니다. 자세한 내용은 [Amazon S3 URIs를 사용하여 HealthOmics 읽기 세트에 액세스](s3-access.md) 단원을 참조하십시오.

또는 HealthOmics **GetReadSet** API 작업을 사용합니다. **GetReadSet**를 사용하여 개별 부분을 다운로드하여 병렬로 다운로드할 수 있습니다. 이러한 부분은 Amazon S3 부분과 유사합니다. 다음은 읽기 세트에서 파트 1을 다운로드하는 방법의 예입니다. 다음 예제에서를 시퀀스 스토어 ID`sequence store id`로 바꾸고를 읽기 세트 ID`read set id`로 바꿉니다.

```
aws omics get-read-set --sequence-store-id sequence store id --id read set id  --part-number 1 outfile.bam  
```

HealthOmics Transfer Manager를 사용하여 HealthOmics 참조 또는 읽기 세트에 대한 파일을 다운로드할 수도 있습니다. 여기에서 HealthOmics Transfer Manager를 다운로드할 수 [있습니다](https://pypi.org/project/amazon-omics-tools/). Transfer Manager 사용 및 설정에 대한 자세한 내용은이 [GitHub 리포지토리](https://github.com/awslabs/amazon-omics-tools/)를 참조하세요.

# 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": "*"
}
```

# Amazon S3 버킷으로 HealthOmics 읽기 세트 내보내기
<a name="read-set-exports"></a>

Amazon S3 버킷으로 배치 내보내기 작업으로 읽기 세트를 내보낼 수 있습니다. 이렇게 하려면 먼저 다음 IAM 정책 예제와 마찬가지로 버킷에 대한 쓰기 액세스 권한이 있는 IAM 정책을 생성합니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket1",
        "arn:aws:s3:::amzn-s3-demo-bucket1/*"
      ]
    }
  ]
}
```

------

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
  {
      "Effect": "Allow",
      "Principal": {
          "Service": [
              "omics.amazonaws.com"
          ]
      },
      "Action": "sts:AssumeRole"
  }
]
}
```

------

IAM 정책이 적용되면 읽기 세트 내보내기 작업을 시작합니다. 다음 예제에서는 **start-read-set-export-job** API 작업을 사용하여이 작업을 수행하는 방법을 보여줍니다. 다음 예제에서는 , , `sequence store ID` `destination` 및 `role ARN`와 같은 모든 파라미터를 입력`sources`으로 바꿉니다.

```
aws omics start-read-set-export-job 
--sequence-store-id sequence store id \
--destination valid s3 uri \
--role-arn role ARN \
--sources readSetId=read set id_1 readSetId=read set id_2
```

오리진 시퀀스 스토어 및 대상 Amazon S3 버킷에 대한 정보와 함께 다음 응답을 받습니다.

```
{
"id": <job-id>,
"sequenceStoreId": <sequence-store-id>,
"destination": <destination-s3-uri>,
"status": "SUBMITTED",
"creationTime": "2022-10-22T01:33:38.079000+00:00"
}
```

작업이 시작된 후 다음과 같이 **get-read-set-export-job** API 작업을 사용하여 상태를 확인할 수 있습니다. `sequence store ID` 및를 각각 시퀀스 스토어 ID 및 작업 ID`job ID`로 바꿉니다.

```
aws omics get-read-set-export-job --id job-id --sequence-store-id sequence store ID
```

다음과 같이 ** list-read-set-export-jobs** API 작업을 사용하여 시퀀스 스토어에 대해 초기화된 모든 내보내기 작업을 볼 수 있습니다. 를 시퀀스 스토어 ID`sequence store ID`로 바꿉니다.

```
aws omics list-read-set-export-jobs --sequence-store-id sequence store ID.
```

```
{
"exportJobs": [
  {
      "id": <job-id>,
      "sequenceStoreId": <sequence-store-id>,
      "destination": <destination-s3-uri>,
      "status": "COMPLETED",
      "creationTime": "2022-10-22T01:33:38.079000+00:00",
      "completionTime": "2022-10-22T01:34:28.941000+00:00"
  }
]
}
```

읽기 세트를 내보내는 것 외에도 Amazon S3 액세스 URIs. 자세한 내용은 [Amazon S3 URIs를 사용하여 HealthOmics 읽기 세트에 액세스](s3-access.md)를 참조하세요.

# Amazon S3 URIs를 사용하여 HealthOmics 읽기 세트에 액세스
<a name="s3-access"></a>

Amazon S3 URI 경로를 사용하여 활성 시퀀스 스토어 읽기 세트에 액세스할 수 있습니다.

Amazon S3 URI 경로를 사용하면 Amazon S3 작업을 사용하여 읽기 세트를 나열, 공유 및 다운로드할 수 있습니다. S3 APIs 가속화합니다. S3 또한 S3 APIs에 대한 액세스를 다른 계정과 공유하고 데이터에 대한 리전 간 읽기 액세스를 제공할 수 있습니다.

HealthOmics는 아카이브된 읽기 세트에 대한 Amazon S3 URI 액세스를 지원하지 않습니다. 읽기 세트를 활성화하면 매번 동일한 URI 경로로 복원됩니다.

데이터를 HealthOmics 스토어에 로드하면 Amazon S3 URI가 Amazon S3 액세스 포인트를 기반으로 하므로 다음과 같이 Amazon S3 URIs를 읽는 업계 표준 도구와 직접 통합할 수 있습니다.
+ Integrative Genomics Viewer(IGV) 또는 UCSC Genome Browser와 같은 시각적 분석 애플리케이션.
+ CWL, WDL, Nextflow와 같은 Amazon S3 확장을 사용하는 일반적인 워크플로입니다.
+ 액세스 포인트 Amazon S3 URIs 또는 미리 서명된 Amazon S3 URIs.
+ Mountpoint 또는 CloudFront와 같은 Amazon S3 유틸리티.

Amazon S3 Mountpoint를 사용하면 Amazon S3 버킷을 로컬 파일 시스템으로 사용할 수 있습니다. Mountpoint에 대해 자세히 알아보고 사용하기 위해 설치하려면 [Mountpoint for Amazon S3](https://github.com/awslabs/mountpoint-s3)를 참조하세요.

Amazon CloudFront는 고성능, 보안 및 개발자 편의를 위해 구축된 콘텐츠 전송 네트워크(CDN) 서비스입니다. Amazon CloudFront 사용에 대한 자세한 내용은[Amazon CloudFront 설명서를 참조하세요](https://docs.aws.amazon.com/cloudfront/). 시퀀스 스토어로 CloudFront를 설정하려면 AWS HealthOmics 팀에 문의하세요.

데이터 소유자 루트 계정은 시퀀스 스토어 접두사의 S3:GetObject, S3:GetObjectTagging 및 S3:List 버킷 작업에 대해 활성화됩니다. 계정의 사용자가 데이터에 액세스할 수 있도록 IAM 정책을 생성하여 사용자 또는 역할에 연결합니다. 정책 예제는 [Amazon S3 URIs를 사용한 데이터 액세스 권한](s3-sharing.md)을 참조하세요.

활성 읽기 세트에서 다음 Amazon S3 API 작업을 사용하여 데이터를 나열하고 검색할 수 있습니다. Amazon S3 URIs 활성화된 후 이를 통해 아카이브된 읽기 세트에 액세스할 수 있습니다.
+ [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) - Amazon S3에서 객체를 검색합니다.
+ [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html.html) - HEAD 작업은 객체 자체를 반환하지 않고 객체에서 메타데이터를 검색합니다. 이 작업은 객체의 메타데이터만 원하는 경우에 유용합니다.
+ [ListObjects 및 ListObject v2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) - 버킷에 있는 객체의 일부 또는 전부(최대 1,000개)를 반환합니다.
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) - Amazon S3에 이미 저장된 객체의 복사본을 생성합니다. HealthOmics는 Amazon S3 액세스 포인트로의 복사를 지원하지만 액세스 포인트에 쓸 수는 없습니다.

HealthOmics 시퀀스 스토어는 ETags를 통해 파일의 의미 체계 ID를 유지합니다. 파일의 수명 주기 동안 비트 ID를 기반으로 하는 Amazon S3 ETag는 변경될 수 있지만 HealthOmics ETag는 동일하게 유지됩니다. 자세한 내용은 [HealthOmics ETags 및 데이터 출처](etags-and-provenance.md)를 참조하세요.

**Topics**
+ [HealthOmics 스토리지의 Amazon S3 URI 구조](#s3-uri-structure)
+ [호스팅 또는 로컬 IGV를 사용하여 읽기 세트 액세스](#s3-access-igv)
+ [HealthOmics에서 Samtools 또는 HTSlib 사용](#s3-access-Samtools)
+ [Mountpoint HealthOmics 사용](#s3-access-Mountpoint)
+ [HealthOmics에서 CloudFront 사용](#s3-access-CloudFront)

## HealthOmics 스토리지의 Amazon S3 URI 구조
<a name="s3-uri-structure"></a>

Amazon S3 URIs 있는 모든 파일에는 `omics:subjectId` 및 `omics:sampleId` 리소스 태그가 있습니다. 이러한 태그를 사용하여와 같은 패턴을 통해 IAM 정책을 사용하여 액세스를 공유할 수 있습니다`"s3:ExistingObjectTag/omics:subjectId": "pattern desired"`.

 파일 구조는 다음과 같습니다.

`.../account_id/sequenceStore/seq_store_id/readSet/read_set_id/files.`

Amazon S3에서 시퀀스 스토어로 가져온 파일의 경우 시퀀스 스토어는 원래 소스 이름을 유지하려고 시도합니다. 이름이 충돌하면 시스템은 읽기 세트 정보를 추가하여 파일 이름이 고유한지 확인합니다. 예를 들어 fastq 읽기 세트의 경우 두 파일 이름이 동일한 경우 이름을 고유하게 만들기 위해가 .fastq.gz 또는 .fq.gz 앞에 삽입`sourceX`됩니다. 직접 업로드의 경우 파일 이름은 다음 패턴을 따릅니다.
+ FASTQ의 경우 - *read\$1set\$1name*\$1*sourcex*.fastq.gz 
+ uBAM/BAM/CRAM의 경우 - 확장자가 `.bam` 또는 인 *read\$1set\$1name*.*file* 확장입니다`.cram`. 예를 들면, `NA193948.bam`입니다.

BAM 또는 CRAM인 읽기 세트의 경우 인덱스 파일은 수집 프로세스 중에 자동으로 생성됩니다. 생성된 인덱스 파일의 경우 파일 이름 끝에 적절한 인덱스 확장명이 적용됩니다. *인덱스가 켜져 있는 소스의 <name>.<file index extension> 패턴이 있습니다.* 인덱스 확장자는 `.bai` 또는 입니다`.crai`.

## 호스팅 또는 로컬 IGV를 사용하여 읽기 세트 액세스
<a name="s3-access-igv"></a>

IGV는 BAM 및 CRAM 파일을 분석하는 데 사용되는 유전체 브라우저입니다. 한 번에 유전체의 일부만 표시하기 때문에 파일과 인덱스가 모두 필요합니다. IGV는 로컬에서 다운로드하여 사용할 수 있으며 AWS 호스팅 IGV를 생성하는 방법에 대한 가이드가 있습니다. 퍼블릭 웹 버전은 CORS가 필요하므로 지원되지 않습니다.

로컬 IGV는 로컬 AWS 구성을 사용하여 파일에 액세스합니다. 해당 구성에 사용되는 역할에 액세스 중인 읽기 세트의 s3 URI에 대한 kms:Decrypt 및 s3:GetObject 권한을 활성화하는 정책이 연결되어 있는지 확인합니다. 그런 다음 IGV에서 “파일 > URL에서 로드”를 사용하고 소스 및 인덱스의 URI에 붙여넣을 수 있습니다. 또는 미리 서명된 URLs 동일한 방식으로 생성하고 사용할 수 있으며, 이는 AWS 구성을 우회합니다. CORS는 Amazon S3 URI 액세스에서 지원되지 않으므로 CORS에 의존하는 요청은 지원되지 않습니다.

 AWS 호스팅 IGV 예제는 AWS Cognito를 사용하여 환경 내에서 올바른 구성과 권한을 생성합니다. 액세스 중인 읽기 세트의 Amazon S3 URI에 대한kms:Decrypt 및 s3:GetObject 권한을 활성화하는 정책이 생성되었는지 확인하고이 정책을 Cognito 사용자 풀에 할당된 역할에 추가합니다. 그런 다음 IGV에서 “파일 > URL에서 로드”를 사용하고 소스 및 인덱스의 URI에를 입력할 수 있습니다. 또는 AWS 구성을 우회하는 동일한 방식으로 미리 서명된 URLs을 생성하고 사용할 수 있습니다.

는 AWS 프로파일이 구성된 리전에서 사용자가 소유한 버킷만 표시하므로 시퀀스 스토어는 “Amazon” 탭 아래에 표시되지 않습니다.

## HealthOmics에서 Samtools 또는 HTSlib 사용
<a name="s3-access-Samtools"></a>

HTSlib는 Samtools, rSamtools, PySam 등과 같은 여러 도구에서 공유하는 코어 라이브러리입니다. HTSlib 버전 1.20 이상을 사용하여 Amazon S3 액세스 포인트를 원활하게 지원합니다. 이전 버전의 HTSlib 라이브러리의 경우 다음 해결 방법을 사용할 수 있습니다.
+ 를 사용하여 HTS Amazon S3 호스트의 환경 변수를 설정합니다`export HTS_S3_HOST="s3.region.amazonaws.com"`.
+ 사용하려는 파일에 대해 미리 서명된 URL을 생성합니다. BAM 또는 CRAM을 사용하는 경우 파일과 인덱스 모두에 대해 미리 서명된 URL이 생성되었는지 확인합니다. 그런 다음 두 파일을 라이브러리와 함께 사용할 수 있습니다.
+ Mountpoint를 사용하여 HTSlib 라이브러리를 사용하는 동일한 환경에 시퀀스 스토어 또는 읽기 세트 접두사를 탑재합니다. 여기에서 로컬 파일 경로를 사용하여 파일에 액세스할 수 있습니다.

## Mountpoint HealthOmics 사용
<a name="s3-access-Mountpoint"></a>

Mountpoint for Amazon S3는 [ Amazon S3 버킷을 로컬 파일 시스템으로 탑재하기 위한 간단한 대용량 파일 클라이언트입니다](https://aws.amazon.com/blogs/storage/the-inside-story-on-mountpoint-for-amazon-s3-a-high-performance-open-source-file-client/). Mountpoint for Amazon S3를 사용하면 애플리케이션이 열기 및 읽기와 같은 파일 작업을 통해 Amazon S3에 저장된 객체에 액세스할 수 있습니다. Mountpoint for Amazon S3는 이러한 작업을 Amazon S3 객체 API 호출로 자동 변환하여 애플리케이션이 파일 인터페이스를 통해 Amazon S3의 탄력적 스토리지 및 처리량에 액세스할 수 있도록 합니다.

 Mountpoint 설치 [지침을 사용하여 Mountpoint를 설치할](https://github.com/awslabs/mountpoint-s3/blob/main/doc/INSTALL.md) 수 있습니다. Mountpoint는 설치에 로컬이고 Amazon S3 접두사 수준에서 작동하는 AWS 프로파일을 사용합니다. 사용 중인 프로필에 액세스 중인 읽기 세트 또는 시퀀스 스토어의 Amazon S3 URI 접두사에 대한 s3:GetObject, s3:ListBucket 및 kms:Decrypt 권한을 활성화하는 정책이 있는지 확인합니다. 그런 다음 다음 경로를 사용하여 버킷을 탑재할 수 있습니다.

```
mount-s3 access point arn local path to mount --prefix prefix to sequence store or read set --region region                                  
```

## HealthOmics에서 CloudFront 사용
<a name="s3-access-CloudFront"></a>

Amazon CloudFront는 고성능, 보안 및 개발자 편의를 위해 구축된 콘텐츠 전송 네트워크(CDN) 서비스입니다. CloudFront를 사용하려는 고객은 서비스 팀과 협력하여 CloudFront 배포를 활성화해야 합니다. 계정 팀과 협력하여 HealthOmics 서비스 팀을 참여시킵니다.

# HealthOmics에서 읽기 세트 활성화
<a name="activating-read-sets"></a>

다음 예제와 AWS CLI같이 **start-read-set-activation-job** API 작업 또는를 통해 아카이브된 읽기 세트를 활성화할 수 있습니다. `sequence store ID` 및를 시퀀스 스토어 ID 및 읽기 세트 ID`read set id`로 바꿉니다. IDs 

```
aws omics start-read-set-activation-job 
     --sequence-store-id sequence store ID \
     --sources readSetId=read set ID readSetId=read set id_1 read set id_2
```

다음과 같이 활성화 작업 정보가 포함된 응답을 받게 됩니다.

```
{
    "id": "12345678",
    "sequenceStoreId": "1234567890",
    "status": "SUBMITTED",
    "creationTime": "2022-10-22T00:50:54.670000+00:00"
}
```

활성화 작업이 시작된 후 **get-read-set-activation-job** API 작업으로 진행 상황을 모니터링할 수 있습니다. 다음은를 사용하여 활성화 작업 상태를 AWS CLI 확인하는 방법의 예입니다. `job ID` 및를 각각 시퀀스 스토어 ID 및 작업 ID`sequence store ID`로 바꿉니다. IDs 

```
aws omics get-read-set-activation-job --id job ID --sequence-store-id sequence store ID                    
```

응답은 다음과 같이 활성화 작업을 요약합니다.

```
{
    "id": 123567890,
    "sequenceStoreId": 123467890,
    "status": "SUBMITTED",
    "statusUpdateReason": "The job is submitted and will start soon.",
    "creationTime": "2022-10-22T00:50:54.670000+00:00",
    "sources": [
        {
            "readSetId": <reads set id_1>,
            "status": "NOT_STARTED",
            "statusUpdateReason": "The source is queued for the job."
        },
        {
            "readSetId": <read set id_2>,
            "status": "NOT_STARTED",
            "statusUpdateReason": "The source is queued for the job."
        }
    ]
}
```

**get-read-set-metadata** API 작업을 사용하여 활성화 작업의 상태를 확인할 수 있습니다. 가능한 상태는 `ACTIVE`, `ACTIVATING`및 입니다`ARCHIVED`. 다음 예제에서를 시퀀스 스토어 ID`sequence store ID`로 바꾸고를 읽기 세트 ID`read set ID`로 바꿉니다.

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

다음 응답은 읽기 세트가 활성 상태임을 보여줍니다.

```
{
    "id": "12345678",
    "arn": "arn:aws:omics:us-west-2:555555555555:sequenceStore/1234567890/readSet/12345678",
    "sequenceStoreId": "0123456789",
    "subjectId": "mySubject",
    "sampleId": "mySample",
    "status": "ACTIVE",
    "name": "HG00100",
    "description": "HG00100 aligned to HG38 BAM",
    "fileType": "BAM",
    "creationTime": "2022-07-13T23:25:20Z",
    "sequenceInformation": {
        "totalReadCount": 1513467,
        "totalBaseCount": 163454436,
        "generatedFrom": "Pulled from SRA",
        "alignment": "ALIGNED"
    },
    "referenceArn": "arn:aws:omics:us-west-2:555555555555:referenceStore/0123456789/reference/0000000001",
    "files": {
        "source1": {
            "totalParts": 2,
            "partSize":  10485760,
            "contentLength": 17112283,
            "s3Access": {
        "s3Uri": "s3://accountID-sequence store ID-ajdpi90jdas90a79fh9a8ja98jdfa9jf98-s3alias/592761533288/sequenceStore/2015356892/readSet/9515444019/import_source1.fastq.gz"
},
         },
        "index": {
            "totalParts": 1,
            "partSize": 53216,
            "contentLength": 10485760
            "s3Access": {
        "s3Uri": "s3://accountID-sequence store ID-ajdpi90jdas90a79fh9a8ja98jdfa9jf98-s3alias/592761533288/sequenceStore/2015356892/readSet/9515444019/import_source1.fastq.gz"
},
        }
    },
    "creationType": "IMPORT",
    "etag": {
        "algorithm": "BAM_MD5up",
        "source1": "d1d65429212d61d115bb19f510d4bd02"
    }
}
```

다음 예제와 같이 **list-read-set-activation-jobs**를 사용하여 모든 읽기 세트 활성화 작업을 볼 수 있습니다. 다음 예제에서는를 시퀀스 스토어 ID`sequence store ID`로 바꿉니다.

```
aws omics list-read-set-activation-jobs --sequence-store-id sequence store ID                
```

다음과 같은 응답을 받게 됩니다.

```
{
    "activationJobs": [
        {
            "id": 1234657890,
            "sequenceStoreId": "1234567890",
            "status": "COMPLETED",
            "creationTime": "2022-10-22T01:33:38.079000+00:00",
            "completionTime": "2022-10-22T01:34:28.941000+00:00"
        }
    ]
}
```