View a markdown version of this page

Nextflow 워크플로 정의 세부 정보 - AWS HealthOmics

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

Nextflow 워크플로 정의 세부 정보

HealthOmics는 Nextflow DSL1 및 DSL2를 지원합니다. 자세한 내용은 Nextflow 버전 지원을 참조하세요.

Nextflow DSL2는 Groovy 프로그래밍 언어를 기반으로 하므로 파라미터는 동적이며 Groovy와 동일한 규칙을 사용하여 강제 유형을 지정할 수 있습니다. 입력 JSON에서 제공하는 파라미터와 값은 워크플로의 파라미터(params) 맵에서 사용할 수 있습니다.

nf-schema 및 nf-validation 플러그인 사용

참고

플러그인에 대한 HealthOmics 지원 요약:

  • v22.04 - 플러그인을 지원하지 않음

  • v23.10 - nf-schema 및 지원 nf-validation

  • v24.10 - 지원 nf-schema

  • v25.10, v26.04 - nf-schema, nf-core-utilsnf-fgbio, 및 지원 nf-prov

HealthOmics는 Nextflow 플러그인에 대해 다음과 같은 지원을 제공합니다.

  • Nextflow v23.10의 경우 HealthOmics는 nf-validation@1.1.1 플러그인을 사전 설치합니다.

  • Nextflow v23.10 및 v24.10의 경우 HealthOmics는 nf-schema@2.3.0 플러그인을 사전 설치합니다.

  • Nextflow v25.10의 경우 HealthOmics는 nf-schema@2.6.1, , nf-prov@1.7.0 및 nf-fgbio@1.0.1 플러그인nf-core-utils@0.4.0 사전 설치합니다.

  • Nextflow v26.04의 경우 HealthOmics는 nf-schema@2.7.2, , nf-prov@1.7.0 및 nf-fgbio@1.0.1 플러그인nf-core-utils@0.4.0 사전 설치합니다.

  • 워크플로 실행 중에는 추가 플러그인을 검색할 수 없습니다. HealthOmics는 nextflow.config 파일에서 지정한 다른 플러그인 버전을 무시합니다.

  • Nextflow v24 이상의 경우 nf-schema는 더 이상 사용되지 않는 nf-validation 플러그인의 새 버전입니다. 자세한 내용은 Nextflow GitHub 리포지토리의 nf-schema를 참조하세요.

스토리지 URIs 지정

Amazon S3 또는 HealthOmics URI를 사용하여 Nextflow 파일 또는 경로 객체를 구성하는 경우 읽기 액세스 권한이 부여되는 한 워크플로에서 일치하는 객체를 사용할 수 있습니다. Amazon S3 URIs. 예시는 Amazon S3 입력 파라미터 형식 섹션을 참조하세요.

HealthOmics는 Amazon S3 URIs 또는 HealthOmics 스토리지 URIs에서 glob 패턴 사용을 부분적으로 지원합니다. 워크플로 정의에서 path 또는 file 채널 생성에 Glob 패턴을 사용합니다. 예상되는 동작과 정확한 사례는 단원을 참조하십시오Amazon S3 입력에서 Glob 패턴의 Nextflow 처리.

Nextflow 지시문

Nextflow 구성 파일 또는 워크플로 정의에서 Nextflow 지시문을 구성합니다. 다음 목록은 HealthOmics가 구성 설정을 적용하는 데 사용하는 우선 순위의 순서를 가장 낮은 우선 순위부터 가장 높은 우선 순위까지 보여줍니다.

  1. 구성 파일의 전역 구성입니다.

  2. 워크플로 정의의 작업 섹션입니다.

  3. 구성 파일의 작업별 선택기입니다.

를 사용한 작업 재시도 전략 errorStrategy

errorStrategy 지시문을 사용하여 작업 오류에 대한 전략을 정의합니다. 기본적으로 작업이 오류 표시(종료 상태가 0이 아님)와 함께 반환되면 작업이 중지되고 HealthOmics가 전체 실행을 종료합니다. 를 errorStrategy로 설정하면 retry HealthOmics는 실패한 작업을 한 번 재시도합니다. 재시도 횟수를 늘리려면 섹션을 참조하세요를 사용하여 작업 재시도 maxRetries.

process { label 'my_label' errorStrategy 'retry' script: """ your-command-here """ }

HealthOmics가 실행 중에 작업 재시도를 처리하는 방법에 대한 자세한 내용은 섹션을 참조하세요작업 재시도.

를 사용하여 작업 재시도 maxRetries

기본적으로 HealthOmics는 실패한 작업의 재시도를 시도하지 않거나를 구성한 경우 한 번의 재시도를 시도합니다errorStrategy. 최대 재시도 횟수를 늘리려면를 retry errorStrategy로 설정하고 maxRetries 명령을 사용하여 최대 재시도 횟수를 구성합니다.

다음 예제에서는 글로벌 구성에서 최대 재시도 횟수를 3으로 설정합니다.

process { errorStrategy = 'retry' maxRetries = 3 }

다음 예제에서는 워크플로 정의maxRetries의 작업 섹션에서를 설정하는 방법을 보여줍니다.

process myTask { label 'my_label' errorStrategy 'retry' maxRetries 3 script: """ your-command-here """ }

다음 예제에서는 이름 또는 레이블 선택기를 기반으로 Nextflow 구성 파일에서 작업별 구성을 지정하는 방법을 보여줍니다.

process { withLabel: 'my_label' { errorStrategy = 'retry' maxRetries = 3 } withName: 'myTask' { errorStrategy = 'retry' maxRetries = 3 } }

를 사용하여 작업 재시도 옵트아웃 omicsRetryOn5xx

Nextflow v23 이상의 경우 HealthOmics는 서비스 오류(5XX HTTP 상태 코드)로 인해 작업이 실패한 경우 작업 재시도를 지원합니다. 기본적으로 HealthOmics는 실패한 작업을 최대 2회 재시도합니다.

서비스 오류에 대한 작업 재시도를 옵트아웃omicsRetryOn5xx하도록를 구성할 수 있습니다. HealthOmics의 작업 재시도에 대한 자세한 내용은 섹션을 참조하세요작업 재시도.

다음 예제에서는 글로벌 구성omicsRetryOn5xx에서를 구성하여 작업 재시도를 옵트아웃합니다.

process { omicsRetryOn5xx = false }

다음 예제에서는 워크플로 정의omicsRetryOn5xx의 작업 섹션에서를 구성하는 방법을 보여줍니다.

process myTask { label 'my_label' omicsRetryOn5xx = false script: """ your-command-here """ }

다음 예제에서는 이름 또는 레이블 선택기를 기반으로 Nextflow 구성 파일에서 작업별 구성omicsRetryOn5xx으로를 설정하는 방법을 보여줍니다.

process { withLabel: 'my_label' { omicsRetryOn5xx = false } withName: 'myTask' { omicsRetryOn5xx = false } }

time 지시문을 사용한 작업 기간

HealthOmics는 조정 가능한 할당량( 참조HealthOmics 서비스 할당량)을 제공하여 실행의 최대 기간을 지정합니다. Nextflow v23 이상 워크플로의 경우 Nextflow time 명령을 사용하여 최대 작업 기간을 지정할 수도 있습니다.

새 워크플로 개발 중에 최대 작업 기간을 설정하면 런어웨이 작업과 장기 실행 작업을 포착하는 데 도움이 됩니다.

Nextflow 시간 명령에 대한 자세한 내용은 Nextflow 참조의 시간 명령을 참조하세요.

HealthOmics는 Nextflow 시간 명령에 대해 다음과 같은 지원을 제공합니다.

  1. HealthOmics는 시간 명령에 대해 1분 단위를 지원합니다. 60초에서 최대 실행 기간 값 사이의 값을 지정할 수 있습니다.

  2. 60 미만의 값을 입력하면 HealthOmics는 값을 60초로 반올림합니다. 60보다 큰 값의 경우 HealthOmics는 가장 가까운 분으로 내림합니다.

  3. 워크플로가 작업에 대한 재시도를 지원하는 경우 HealthOmics는 시간 초과 시 작업을 재시도합니다.

  4. 작업이 시간 초과(또는 마지막 재시도 시간이 초과)되면 HealthOmics는 작업을 취소합니다. 이 작업의 지속 시간은 1~2분입니다.

  5. 작업 제한 시간이 초과되면 HealthOmics는 실행 및 작업 상태를 실패로 설정하고 실행의 다른 작업(시작 중, 보류 중 또는 실행 중 상태의 작업)을 취소합니다. HealthOmics는 제한 시간 전에 완료한 작업의 출력을 지정된 S3 출력 위치로 내보냅니다.

  6. 작업이 대기 중 상태로 소요한 시간은 작업 기간에 포함되지 않습니다.

  7. 실행이 실행 그룹의 일부이고 실행 그룹이 작업 타이머보다 빨리 시간 초과되는 경우 실행 및 작업이 실패 상태로 전환됩니다.

ms, , 또는 단위 중 하나 이상을 사용하여 제한 시간을 지정합니다smhd.

다음 예제에서는 Nextflow 구성 파일에서 전역 구성을 지정하는 방법을 보여줍니다. 전역 제한 시간을 1시간 30분으로 설정합니다.

process { time = '1h30m' }

다음 예제에서는 워크플로 정의의 작업 섹션에서 시간 지시문을 지정하는 방법을 보여줍니다. 이 예제에서는 제한 시간을 3일, 5시간 및 4분으로 설정합니다. 이 값은 구성 파일의 전역 값보다 우선하지만 구성 my_label 파일의에 대한 작업별 시간 지시문보다 우선하지는 않습니다.

process myTask { label 'my_label' time '3d5h4m' script: """ your-command-here """ }

다음 예제에서는 이름 또는 레이블 선택기를 기반으로 Nextflow 구성 파일에서 작업별 시간 지시문을 지정하는 방법을 보여줍니다. 이 예제에서는 글로벌 작업 제한 시간 값을 30분으로 설정합니다. 작업에 대해 2시간의 값을 설정하고 레이블이 인 작업에 대해 3시간의 값을 myTask 설정합니다my_label. 선택기와 일치하는 작업의 경우 이러한 값이 워크플로 정의의 전역 값 및 값보다 우선합니다.

process { time = '30m' withLabel: 'my_label' { time = '3h' } withName: 'myTask' { time = '2h' } }

Nextflow 프로파일 사용

Nextflow 프로파일은 런타임 시 선택할 수 있는 구성 설정 세트입니다. nextflow.config 파일 profiles 블록에서 프로필을 정의합니다.

profiles { standard { process.cpus = 2 process.memory = '4 GB' } production { process.cpus = 16 process.memory = '64 GB' params.input = 's3://bucket/production-data.bam' } }

실행을 시작할 때 engineSettings 파라미터를 사용하여 하나 이상의 프로파일을 지정합니다. HealthOmics는 -profile 플래그를 Nextflow 엔진에 전달합니다. 자세한 내용은 엔진 설정 지정 단원을 참조하십시오.

aws omics start-run \ --workflow-id workflow-id \ --role-arn role-arn \ --output-uri s3://bucket/prefix/ \ --engine-settings '{"profile": "production"}'

여러 프로파일이 지정되면(예: "test,docker") Nextflow는 명령줄에 지정된 순서대로 프로파일을 적용합니다. 이후 프로파일은 충돌하는 설정에 대해 이전 프로파일을 재정의합니다. 26보다 낮은 Nextflow 버전의 경우 프로파일은 명령줄 순서 대신 구성 파일에 정의된 순서대로 적용됩니다.

다음 사항에 유의하세요.

  • 프로필 지원은 모든 HealthOmics 지원 Nextflow 버전에서 사용할 수 있습니다.

  • 프로필에는 파라미터, 프로세스 지시문, includeConfig 문 및 매니페스트 재정의( 포함)가 포함될 수 있습니다manifest.nextflowVersion.

  • 명시적 실행 파라미터는 프로파일 정의 파라미터 값보다 우선합니다.

  • 존재하지 않는 프로파일을 지정하면 HealthOmics는 검증 오류를 반환합니다.

  • 프로필은 워크플로 정의 zip 파일에 정의되어야 합니다. HealthOmics는 외부 소스에서 프로필 정의 가져오기를 지원하지 않습니다.

  • 프로파일을 지정하지 않으면 워크플로 정의의 standard 프로파일 아래에 프로파일이 정의된 경우 실행에서 해당 프로파일을 사용합니다. 그렇지 않으면 실행은 기본(상위 수준) 구성을 사용합니다.

  • 프로파일을 사용할 때는 실행 간에 일관된 프로파일 애플리케이션 동작을 보장하기 manifest.nextflowVersion 위해를 사용하여 워크플로 정의에 Nextflow 버전을 고정시키는 것이 좋습니다.

워크플로 수준 콘텐츠 내보내기

Nextflow v25.10 이상에서는 산지 보고서 또는 파이프라인 DAGs. 이러한 파일을 내보내려면에 기록합니다/mnt/workflow/output/. HealthOmics는이 디렉터리에 배치된 파일을 실행의 Amazon S3 출력 위치의 output/ 접두사로 내보냅니다.

다음 예제에서는에 산지 보고서를 작성하도록 nf-prov 플러그인을 구성하는 방법을 보여줍니다/mnt/workflow/output/.

prov { formats { bco { file = "/mnt/workflow/output/pipeline_info/manifest.bco.json" } } }

실행의 입력 JSON에서이 경로를 파라미터로 전달할 수도 있습니다. 이 접근 방식은를 사용하는 nf-core 워크플로에서 일반적입니다params.outdir.

{ "outdir": "/mnt/workflow/output/" }

작업 콘텐츠 내보내기

Nextflow에 작성된 워크플로의 경우 publishDir 명령을 정의하여 작업 콘텐츠를 출력 Amazon S3 버킷으로 내보냅니다. 다음 예제와 같이 publishDir 값을 로 설정합니다/mnt/workflow/pubdir. Amazon S3로 파일을 내보내려면 파일이이 디렉터리에 있어야 합니다.

nextflow.enable.dsl=2 workflow { CramToBamTask(params.ref_fasta, params.ref_fasta_index, params.ref_dict, params.input_cram, params.sample_name) ValidateSamFile(CramToBamTask.out.outputBam) } process CramToBamTask { container "<account>.dkr.ecr.us-west-2.amazonaws.com/genomes-in-the-cloud" publishDir "/mnt/workflow/pubdir" input: path ref_fasta path ref_fasta_index path ref_dict path input_cram val sample_name output: path "${sample_name}.bam", emit: outputBam path "${sample_name}.bai", emit: outputBai script: """ set -eo pipefail samtools view -h -T $ref_fasta $input_cram | samtools view -b -o ${sample_name}.bam - samtools index -b ${sample_name}.bam mv ${sample_name}.bam.bai ${sample_name}.bai """ } process ValidateSamFile { container "<account>.dkr.ecr.us-west-2.amazonaws.com/genomes-in-the-cloud" publishDir "/mnt/workflow/pubdir" input: file input_bam output: path "validation_report" script: """ java -Xmx3G -jar /usr/gitc/picard.jar \ ValidateSamFile \ INPUT=${input_bam} \ OUTPUT=validation_report \ MODE=SUMMARY \ IS_BISULFITE_SEQUENCED=false """ }

Nextflow v25.10 이상의 경우 publishDir의 대안으로 워크플로 출력을 사용하여 작업 콘텐츠를 내보낼 수 있습니다. 다음 예제에서는 작업 결과를 Amazon S3로 내보내는 워크플로 output 블록을 정의하는 방법을 보여줍니다.

process myTask { input: val data output: path 'result.txt' script: """ echo ${data} > result.txt """ } workflow { main: output_file = myTask('hello') publish: results = output_file } output { results { path '.' } }

워크플로 출력에 대한 자세한 내용은 Nextflow 설명서의 워크플로 출력을 참조하세요.

Nextflow 구문 버전 지정

Nextflow v26.04.0은 기본적으로 엄격한(v2) 구문 구문 분석기를 사용합니다. 이는 Nextflow v25.10.0 이하의 기본값인 레거시(v1) 구문을 사용하여 작성된 워크플로에 대한 주요 변경 사항입니다. v2 구문에 대한 자세한 내용은 Seqera Nextflow 설명서의 엄격한 구문을 참조하세요.

레거시 (v1) 구문 분석기에 대해 작성된 워크플로를 실행하려면 StartRun 요청v1에서를 engineSettings.syntaxVersion로 설정합니다.

{ "engineSettings": { "syntaxVersion": "v1" } }

Nextflow v25.10.0 이하의 경우 HealthOmics는 v2 구문 분석기를 지원하지 않습니다.

Nextflow v26.04 릴리스 정보

다음 표에는 Nextflow 버전 26.04에서 릴리스된 새로운 기능, 개선 사항 및 사용 중단에 대한 HealthOmics 지원이 요약되어 있습니다.

새로운 기능 및 개선 사항

기능 구 버전 HealthOmics 지원 참고
엄격한 구문 구문 분석기(기본값) 26.04 v26.04에서 기본적으로 활성화됩니다. 엔진 설정syntaxVersion: "v1"에서를 통해 사용 가능한 레거시 구문 분석기입니다.
레코드 형식 26.04 자세한 내용은 Seqera Nextflow 설명서의 레코드를 참조하세요.
워크플로 출력 요약 26.04 실행 완료 시 워크플로 출력 요약을 인쇄합니다. 엔진 설정outputFormat에서를 통해 구성 가능한 출력 형식입니다. 자세한 내용은 엔진 설정 지정 단원을 참조하십시오.
에이전트 로깅 모드 26.04 엔진 설정agentMode에서를 통해 구성할 수 있습니다. 자세한 내용은 엔진 설정 지정 단원을 참조하십시오.
모듈 시스템(Nextflow 레지스트리) 26.04 아니요 HealthOmics 워크플로는 아웃바운드 인터넷 액세스 없이 격리된 네트워크에서 실행됩니다. 워크플로 zip에 직접 모듈을 포함할 수 있습니다.
정적 형식 지정(미리 보기) 26.04 아니요 HealthOmics는 미리 보기 기능을 지원하지 않습니다.
파일에서 컬렉션 파라미터 자동 로드 26.04 아니요 HealthOmics가 지원하지 않는 정적 입력(미리 보기)이 필요합니다.
다중 수정 파이프라인 체크아웃 26.04 해당 사항 없음 해당 사항 없음. HealthOmics는 Git 기반 파이프라인 체크아웃을 사용하지 않습니다.

사용 중단

더 이상 사용되지 않는 항목 구 버전 영향 권장 조치
listFiles() 메서드 26.04 사용 중단 경고 를 로 바꿉니다listDirectory().
nextflow.enable.strict 플래그 26.04 더 이상 필요하지 않음 구성에서를 제거합니다. 이제 엄격한 모드가 기본값입니다.
manifest.defaultBranch 26.04 더 이상 필요하지 않음 구성에서를 제거합니다. HealthOmics는 Git 기반 파이프라인 체크아웃을 사용하지 않으며이 옵션을 지원하지 않습니다.