Configuration

The plugin needs a "named" client configuration where specify the credentials, etc to connect to the remote server.

INFO

You can provide multiple configurations in case you work with different servers

nextflow.config
aspera{
    clients {
        asperasoft {
            remote_host = 'demo.asperasoft.com'
            ssh_port = 33001
            remote_user= "aspera"
            remote_password= "demoaspera"
        }
        ncbi {
            ....
        }
}

withAspera

The plugin provides a function to download files:

Channel.withAspera([
    client: 'asperasoft',
    destination:'downloads/',
    sources:[
        'aspera-test-dir-large/100MB',
    ]
])

the function will emit an event per each file downloaded

NCBI Example

NCBI uses a published private key (aspera_tokenauth_id_rsa) and their passphrase (743128bf-3bf3-45b5-ab14-4602c67f2950)

nextflow.config
plugins {
    id "nf-aspera@0.0.1"
}

aspera{
    clients {
        ncbi {
            remote_host = 'ftp.ncbi.nlm.nih.gov'
            ssh_port = 22
            remote_user = "anonftp"
            ssh_private_key_path = "ncbi/aspera_tokenauth_id_rsa"
            ssh_private_key_passphrase = "743128bf-3bf3-45b5-ab14-4602c67f2950"
            cipher = "none"
        }
    }
}
test.nf
workflow{
    Channel.withAspera([
        client: 'ncbi',
        destination:'downloads/',
        sources:[
            '/refseq/release/bacteria/bacteria.1.2.genomic.fna.gz',
        ]
    ])
    | view
}