Как я могу связать печать с процессом?

Я сделал свой конвейер и хотел бы распечатать перед каждым процессом небольшое описание того, что выполняется.

Я в основном пытался добавить «печать» перед каждым процессом в моем скрипте. Когда я запускаю конвейер, он сначала просто распечатывает все описания, а затем процессы начинают выполняться.

Что я сделал :

// Trimming
println 'Trimming reads with AlienTrimmer'
process Trimming {
    ...
}


// Convert to fasta
println 'Convert files from fastq to fasta'
process Fastq2Fasta {
    ...
}


// Concatenate files
println 'Combine all fasta files'
reads_fasta.collectFile()


// Dereplication
if (params.prefixdrep) println 'Dereplication using prefixes'
else println 'Dereplication using full reads lentgh'
process Dereplication {
    ...
}

Что я получаю:

* Trimming reads with AlienTrimmer
* Convert files from fastq to fasta
* Combine all fasta files
* Dereplication using full reads lentgh
[74/ee63b8] Cached process > Trimming (MOBIO2-16S)
[d7/9b16c3] Cached process > Trimming (IHMS1-16S)
[e8/821f96] Cached process > Trimming (IHMS2-16S)
[2d/bfe805] Cached process > Trimming (MOBIO1-16S)
[a0/6702b3] Cached process > Fastq2Fasta (IHMS1-16S)
[c0/044dcd] Cached process > Fastq2Fasta (MOBIO2-16S)
[84/344d52] Cached process > Fastq2Fasta (MOBIO1-16S)
[7f/20caee] Cached process > Fastq2Fasta (IHMS2-16S)
[aa/ea78e8] Cached process > Dereplication (mycobiote_16S)

Что я хочу :

* Trimming reads with AlienTrimmer
[74/ee63b8] Cached process > Trimming (MOBIO2-16S)
[d7/9b16c3] Cached process > Trimming (IHMS1-16S)
[e8/821f96] Cached process > Trimming (IHMS2-16S)
[2d/bfe805] Cached process > Trimming (MOBIO1-16S)
* Convert files from fastq to fasta
[a0/6702b3] Cached process > Fastq2Fasta (IHMS1-16S)
[c0/044dcd] Cached process > Fastq2Fasta (MOBIO2-16S)
[84/344d52] Cached process > Fastq2Fasta (MOBIO1-16S)
[7f/20caee] Cached process > Fastq2Fasta (IHMS2-16S)
* Combine all fasta files   
* Dereplication using full reads lentgh
[aa/ea78e8] Cached process > Dereplication (mycobiote_16S)

person Jet    schedule 07.01.2019    source источник


Ответы (1)


Быстрый ответ не возможен из коробки. Если вам это действительно нужно, вы можете использовать print в разделе сценария, например:

process foo {
  script:
  println 'Hello'
  """
  your_command_here
  """
}

Однако вам также нужно будет написать код, чтобы писать это сообщение только в первый раз.

person pditommaso    schedule 07.01.2019