Input a triple (id, fasta, params) to last/lastal (#563)

The `last/lastal` submodule takes query sequences to align to a target
index, and optionally takes one set of alignment parameters (including a
score matrix) computed by the `last/train` module for each of the
sequences.

In the previous implementation the sequences and the alignment
parameters were provided in different channels, causing them to be
sometimes desynchronised.

In the patched implementation, `last/lastal` takes a 3-tuple as
input to ensure synchronicity.  To produce this tuple in a pipeline,
one can use the `join` command as in the following example.

     LAST_TRAIN  ( query,
                   target )
     LAST_LASTAL ( query.join(LAST_TRAIN.out.param_file),
                   target )

In case no parameter file is computed one can pass a dummy file
to the module as follows:

     LAST_LASTAL ( query.map { row -> [ row[0], row[1], [] ] },
                   target )
This commit is contained in:
Charles Plessy 2021-07-06 17:35:04 +09:00 committed by GitHub
parent fbab00238f
commit 45f2f1ee5f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 7 deletions

View file

@ -19,9 +19,8 @@ process LAST_LASTAL {
}
input:
tuple val(meta), path(fastx)
tuple val(meta), path(fastx), path (param_file)
path index
path param_file
output:
tuple val(meta), path("*.maf.gz"), emit: maf

View file

@ -8,20 +8,21 @@ include { LAST_LASTAL } from '../../../../software/last/lastal/main.nf' addParam
workflow test_last_lastal_with_dummy_param_file {
input = [ [ id:'contigs', single_end:false ], // meta map
file(params.test_data['sarscov2']['illumina']['contigs_fasta'], checkIfExists: true) ]
file(params.test_data['sarscov2']['illumina']['contigs_fasta'], checkIfExists: true),
[] ]
db = [ file(params.test_data['sarscov2']['genome']['lastdb_tar_gz'], checkIfExists: true) ]
UNTAR ( db )
LAST_LASTAL ( input, UNTAR.out.untar, [] )
LAST_LASTAL ( input, UNTAR.out.untar)
}
workflow test_last_lastal_with_real_param_file {
input = [ [ id:'contigs', single_end:false ], // meta map
file(params.test_data['sarscov2']['illumina']['contigs_fasta'], checkIfExists: true) ]
file(params.test_data['sarscov2']['illumina']['contigs_fasta'], checkIfExists: true),
file(params.test_data['sarscov2']['genome']['contigs_genome_par'], checkIfExists: true) ]
db = [ file(params.test_data['sarscov2']['genome']['lastdb_tar_gz'], checkIfExists: true) ]
param_file = [ file(params.test_data['sarscov2']['genome']['contigs_genome_par'], checkIfExists: true) ]
UNTAR ( db )
LAST_LASTAL ( input, UNTAR.out.untar, param_file )
LAST_LASTAL ( input, UNTAR.out.untar)
}