

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# HealthOmics 執行輸入
<a name="workflows-run-inputs"></a>

如果工作流程定義指定工作流程或工作流程任務的輸入檔案，HealthOmics 會將檔案分階段到工作流程執行專用的暫存磁碟區。這些輸入檔案為唯讀，可防止任務修改工作流程中其他任務的潛在輸入。對於目錄匯入，目錄也是唯讀的。

許多基因體應用程式假設索引檔案與序列檔案 （例如`bam`檔案的配套`bai`檔案） 位於同一位置。若要包含索引檔案，請在工作流程定義中將其指定為任務輸入。

**Topics**
+ [管理執行參數大小](#run-input-file-options)
+ [Amazon S3 輸入參數格式](#s3-run-input-formats)
+ [Amazon S3 輸入封存狀態](#s3-run-input-archive)

## 管理執行參數大小
<a name="run-input-file-options"></a>

當您開始執行時，您可以在執行參數 JSON 物件或檔案中指定執行輸入。您可以為工作流程指定最多 50 KB 的執行參數。您可以使用下列技術來維持在此大小限制內：
+ **使用目錄匯入**

  若要指定大量輸入檔案，請指定一個參數做為包含所有檔案的 Amazon S3 位置，而不是為每個檔案位置指定參數。如需詳細資訊，請參閱下一個主題 (Amazon S3 輸入參數格式）。
+ **使用範例工作表**

  範例工作表是 CSV 或 TSV 檔案，其中包含一個用於 fastq.gz 地址的資料欄 （或兩個用於配對讀取），以及範例名稱等中繼資料的其他資料欄。您可以將範例工作表指定為執行輸入參數，而不是每個輸入檔案的參數。

  您的工作流程會定義您的範例工作表如何映射到工作流程中的資料結構。雖然您可以在 WDL 和 CWL 中撰寫範例工作表的程式碼，但它們在 NextFlow 中更為常見。如需範例，請參閱 **nf-core** GitHub 網站上的[範例工作表](https://github.com/nf-core/scrnaseq/blob/master/assets/samplesheet.csv)。

## Amazon S3 輸入參數格式
<a name="s3-run-input-formats"></a>

對於接受 Amazon S3 位置的輸入參數， 參數可以指定一個檔案或整個檔案目錄的位置。使用目錄有下列優點：
+ 便利性 – 您可以將目錄名稱指定為 參數。您不會列出每個檔案名稱。
+ 精簡性 – 輸入參數檔案大小上限為 50 KB。如果您提供輸入檔案名稱的長清單，則可以超過此上限。

Amazon S3 是平面物件儲存系統，因此不支援目錄。您可以將檔案分組為「目錄」，方法是為每個檔案提供相同的物件金鑰字首。如需 Amazon S3 物件金鑰字首的詳細資訊，請參閱[使用字首組織物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)。

 HealthOmics 會解譯輸入參數值，如下所示：
+ 如果 Amazon S3 位置結尾不是正斜線或使用 glob 模式，HealthOmics 預期參數值是某個 Amazon S3 物件的索引鍵。

  例如，您可以指定 `s3://myfiles/runs/inputs/a/file1.fastq` 輸入 file1.fastq
+ 如果 Amazon S3 位置以正斜線結尾，HealthOmics 會將參數值解譯為 Amazon S3 字首。它會載入具有該字首的所有 Amazon S3 物件。

  例如，您可以指定 `s3://myfiles/runs/inputs/a/`載入其金鑰開頭為此字首的所有物件。
+ 對於 Nextflow，HealthOmics 會稀疏地支援輸入參數中 Amazon S3 URIs 的 glob 模式。

  例如，您可以指定 `“s3://myfiles/runs/inputs/a/*.gz”`輸入其金鑰開頭為此字首的所有 .gz 檔案。

### Amazon S3 輸入中 Glob 模式的下一個流程處理
<a name="wd-nextflow-s3-formats"></a>


| Glob 模式 | HealthOmics 比對行為 | 備註 | 
| --- | --- | --- | 
| s3：//bucket/directory/\$1.txt | 符合字首 s3：//bucket/directory/ 下任何深度的所有.txt物件。例如， 符合 s3：//bucket/directory/abc.txt 或 s3：//bucket/directory/subDir/123.txt 等。 |  | 
| s3：//bucket/directory/\$1\$1/\$1.txt | 符合字首 s3：//bucket/directory/ 下任何深度的所有.txt物件。例如， 符合 s3：//bucket/directory/abc.txt 或 s3：//bucket/directory/subDir/123.txt 等。 | 在 S3 中， \$1\$1 等同於 \$1。 | 
| s3：//bucket/directory/\$1a，b\$1.txt | s3：//bucket/directory/a.txt、s3：//bucket/directory/b.txt |  | 
| s3：//bucket/directory/？.txt | 比對字首根的物件，其檔案名稱是單一字元，後面接著 .txt。例如，它符合 s3：//bucket/directory/a.txt，但不符合 s3：//bucket/directory/someDir/a.txt 或 s3：//bucket/directory/someDir/subDir/a.txt |  | 
| s3：//bucket/directory/【0-9】.txt | s3：//bucket/directory/0.txt、s3：//bucket/directory/1.txt、...、s3：//bucket/directory/9.txt |  | 
| s3：//bucket/directory/【0-9】.txt | s3：//bucket/directory/1.txt、s3：//bucket/directory/2.txt、s3：//bucket/directory/3.txt |  | 
| s3：//bucket/directory/【0-9】.txt | s3：//bucket/directory/b.txt、s3：//bucket/directory/c.txt、...、s3：//bucket/directory/Y.txt |  | 

### Amazon S3 輸入中雙斜線的語言特定處理
<a name="wd-s3-formats"></a>

HealthOmics 會在 Amazon S3 URIs 中處理雙斜線時保留每個工作流程引擎的原生引擎行為，因此當您將工作流程遷移至 HealthOmics 時，不需要對工作流程進行任何變更。下列各節說明每個引擎如何處理各種案例。

#### WDL
<a name="wd-wdl-s3-formats"></a>

如果輸入參數在 URI 中間或結尾包含雙斜線，則 WDL 引擎會保留雙斜線。


| 輸入參數 | 預期位置 | 
| --- | --- | 
| s3：//myfiles/runs/inputs//file1.fastq | s3：//myfiles/runs/inputs//file1.fastq | 
| s3：//myfiles/runs/inputs// | s3：//myfiles/runs/inputs// | 

#### 下一個流程
<a name="wd-nextflow-s3-doubleslash"></a>

如果輸入參數在 URI 中間包含雙斜線，則 Nextflow 引擎會保留雙斜線。對於 URI 結尾的雙斜線，Nextflow 引擎會將其解析為單一斜線。


| 輸入參數 | 預期位置 | 
| --- | --- | 
| s3：//myfiles/runs/inputs//file1.fastq | s3：//myfiles/runs/inputs//file1.fastq | 
| s3：//myfiles//runs/inputs//\$1.gz | s3：//myfiles//runs/inputs//\$1.gz | 
| s3：//myfiles//runs/inputs// | s3：//myfiles//runs/inputs/ | 

#### CWL
<a name="wd-cwl-s3-formats"></a>

如果輸入參數在 URI 中間或結尾包含雙斜線，CWL 引擎會保留雙斜線。


| 輸入參數 | 預期位置 | 
| --- | --- | 
| s3：//myfiles//runs/inputs//file1.fastq | s3：//myfiles//runs/inputs//file1.fastq | 
| s3：//myfiles//runs/inputs// | s3：//myfiles//runs/inputs// | 

## Amazon S3 輸入封存狀態
<a name="s3-run-input-archive"></a>

HealthOmics 可以擷取 Amazon S3 S3 物件。對於處於下列封存儲存狀態的物件，要提供給 HealthOmics 的**restore**物件：
+ Amazon S3 Glacier 中的 Flexible Retrieval 或 Deep Archive 儲存類別。
+ 智慧型分層中的封存存取或 Deep Archive Access 層。

如需有關還原物件的資訊，請參閱《*Amazon S3 使用者指南*》中的[還原封存的物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/restoring-objects.html)。