nf-core/configs: googlebatch Configuration

To be used with the googlebatch profile by specifying the -profile googlebatch when running nf-core pipelines. project id and workdir bucket need to be supplied with params.project_id, params.workdir_bucket .

Required Parameters

--project_id

Project id of the project where compute resources will be created

--workdir_bucket

Cloud Storage Bucket to be used for the workdir

Optional Parameters

--location

The region where compute resources will be provisioned. If not specified, it will default to us-central1.

--use_spot

Defines which provisioning model to be used. When set to false, standard VM instances will be used. Defaults to true.

--boot_disk

Defines the size of boot disk on compute instances. Defaults to 100GB.

--workers_service_account

Defines which service account will be used by Compute instances running the pipeline. If not specified, the default compute service account of the project will be used.

--use_private_ip

Defines whether real IP addresses will be assigned to compute instance runningn the pipeline. Defaults to false. If set to true a Cloud NAT needs to be provisioned on the same VPC to enable workers to access the Internet to download any necessary artifacts such as container images or communicate with Tower if it is configured. It is recommeneded to use private IP addresses.

--custom_vpc

If you don’t want to use the default VPC network or if it is not available, you need to specify both the custom_vpc and the custom_subnet. Custom VPC should be in this format global/networks/[custom_VPC].

--custom_subnet

When custom_vpc is specified, you must also specify the custom_subnet. Custom subnet should be in this format regions/[GCP_Region]/subnetworks/[custom_subnet].

Gogole Batch Setup

Please refer to the Nextflow documentation which describe how to setup the Google Cloud environment.

Config file

See config file on GitHub

conf/googlebatch
params {
    config_profile_description = 'Google Cloud Batch API Profile'
    config_profile_contact     = 'Hatem Nawar @hnawar'
    config_profile_url         = 'https://cloud.google.com/batch'
 
    //project
    project_id                 = null
    location                   = 'us-central1'
    workdir_bucket             = null
 
    //compute
    use_spot                   = true
    boot_disk                  = '100 GB'
    workers_service_account    = null
 
 
    //networking
    use_private_ip             = false
    // Custom VPC should be in this format 'global/networks/[custom_VPC]'
    custom_vpc                 = null
    //Custom subnet should be in this format 'regions/[GCP_Region]/subnetworks/[custom_subnet]'
    custom_subnet              = null
}
 
workDir = params.workdir_bucket
 
process {
    executor = 'google-batch'
}
google {
    location                  = params.location
    project                   = params.project_id
    batch.network             = params.custom_vpc
    batch.subnetwork          = params.custom_subnet
    batch.usePrivateAddress   = params.use_private_ip
    batch.spot                = params.use_spot
    batch.serviceAccountEmail = params.workers_service_account
    batch.bootDiskSize        = params.boot_disk
}