mirror of
https://github.com/MillironX/nf-core_modules.git
synced 2024-12-22 11:08:17 +00:00
Adding bcftools_isec taking a path with several vcfs and its tests
This commit is contained in:
parent
8e4764b8ed
commit
3a40ec5664
5 changed files with 122 additions and 9 deletions
44
.github/workflows/bcftools_isec.yml
vendored
Normal file
44
.github/workflows/bcftools_isec.yml
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
name: bcftools_isec
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- software/bcftools/bgzip/**
|
||||
- software/bcftools/tabix/**
|
||||
- software/bcftools/isec/**
|
||||
- .github/workflows/bcftools_isec.yml
|
||||
- tests/software/bcftools/**
|
||||
pull_request:
|
||||
paths:
|
||||
- software/bcftools/bgzip/**
|
||||
- software/bcftools/tabix/**
|
||||
- software/bcftools/isec/**
|
||||
- .github/workflows/bcftools_tabix.yml
|
||||
- tests/software/bcftools/**
|
||||
|
||||
jobs:
|
||||
ci_test:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
nxf_version: [20.11.0-edge]
|
||||
env:
|
||||
NXF_ANSI_LOG: false
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install Nextflow
|
||||
env:
|
||||
NXF_VER: ${{ matrix.nxf_version }}
|
||||
run: |
|
||||
wget -qO- get.nextflow.io | bash
|
||||
sudo mv nextflow /usr/local/bin/
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: "3.x"
|
||||
- name: Install dependencies
|
||||
run: python -m pip install --upgrade pip pytest-workflow
|
||||
|
||||
# Test the module
|
||||
- run: pytest --tag bcftools_isec --symlink --wt 2
|
|
@ -4,7 +4,7 @@ include { initOptions; saveFiles; getSoftwareName } from './functions'
|
|||
params.options = [:]
|
||||
def options = initOptions(params.options)
|
||||
|
||||
process BCFTOOLS_STATS {
|
||||
process BCFTOOLS_ISEC {
|
||||
tag "$meta.id"
|
||||
publishDir "${params.outdir}",
|
||||
mode: params.publish_dir_mode,
|
||||
|
@ -18,17 +18,20 @@ process BCFTOOLS_STATS {
|
|||
}
|
||||
|
||||
input:
|
||||
tuple val(meta), path(vcf)
|
||||
tuple val(meta), path('vcfs/*')
|
||||
|
||||
output:
|
||||
tuple val(meta), path("*.txt"), emit: stats
|
||||
tuple val(meta), path("${prefix}"), emit: results
|
||||
path "*.version.txt" , emit: version
|
||||
|
||||
script:
|
||||
def software = getSoftwareName(task.process)
|
||||
def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
|
||||
prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
|
||||
"""
|
||||
bcftools stats $options.args $vcf > ${prefix}.bcftools_stats.txt
|
||||
bcftools isec \\
|
||||
$options.args \\
|
||||
-p $prefix \\
|
||||
*/*.vcf.gz
|
||||
echo \$(bcftools --version 2>&1) | sed 's/^.*bcftools //; s/ .*\$//' > ${software}.version.txt
|
||||
"""
|
||||
}
|
||||
|
|
|
@ -41,9 +41,10 @@ input:
|
|||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- vcf:
|
||||
type: file
|
||||
description: VCF input file
|
||||
pattern: "*.{vcf}"
|
||||
type: files
|
||||
description: |
|
||||
List containing 2 or more vcf files and their respective index (tbi files)
|
||||
e.g. [ 'file1.vcf', 'file1.vcf.tbi', 'file2.vcf', 'file2.vcf.tbi' ]
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -8,6 +8,11 @@ include { BCFTOOLS_STATS } from '../../../software/bcftools/stats/main.nf' addPa
|
|||
include { BCFTOOLS_BGZIP } from '../../../software/bcftools/bgzip/main.nf' addParams( options: [:] )
|
||||
include { BCFTOOLS_TABIX } from '../../../software/bcftools/tabix/main.nf' addParams( options: [:] )
|
||||
include { BCFTOOLS_CONSENSUS } from '../../../software/bcftools/consensus/main.nf' addParams( options: [:] )
|
||||
include { BCFTOOLS_ISEC } from '../../../software/bcftools/isec/main.nf' addParams( options: ['args': '--nfiles +2 --output-type z'] )
|
||||
include { BCFTOOLS_BGZIP as BCFTOOLS_BGZIP2 } from '../../../software/bcftools/bgzip/main.nf' addParams( options: [:] )
|
||||
include { BCFTOOLS_TABIX as BCFTOOLS_TABIX2 } from '../../../software/bcftools/tabix/main.nf' addParams( options: [:] )
|
||||
include { BCFTOOLS_BGZIP as BCFTOOLS_BGZIP3 } from '../../../software/bcftools/bgzip/main.nf' addParams( options: [:] )
|
||||
include { BCFTOOLS_TABIX as BCFTOOLS_TABIX3 } from '../../../software/bcftools/tabix/main.nf' addParams( options: [:] )
|
||||
|
||||
workflow test_bcftools_filter {
|
||||
|
||||
|
@ -62,4 +67,31 @@ workflow test_bcftools_consensus {
|
|||
.join( fasta, by: [0] ) )
|
||||
}
|
||||
|
||||
workflow test_bcftools_isec {
|
||||
|
||||
def input = []
|
||||
input1 = [ [ id:'test1' ], // meta map
|
||||
file("${launchDir}/tests/data/vcf/test.vcf", checkIfExists: true) ]
|
||||
|
||||
input2 = [ [ id:'test2' ], // meta map
|
||||
file("${launchDir}/tests/data/vcf/test.vcf", checkIfExists: true) ]
|
||||
|
||||
input3 = [ [ id:'test3' ], // meta map
|
||||
file("${launchDir}/tests/data/vcf/test.vcf", checkIfExists: true) ]
|
||||
|
||||
BCFTOOLS_BGZIP ( input1 )
|
||||
BCFTOOLS_TABIX ( BCFTOOLS_BGZIP.out.vcf )
|
||||
BCFTOOLS_BGZIP2 ( input2 )
|
||||
BCFTOOLS_TABIX2 ( BCFTOOLS_BGZIP2.out.vcf )
|
||||
BCFTOOLS_BGZIP3 ( input3 )
|
||||
BCFTOOLS_TABIX3 ( BCFTOOLS_BGZIP3.out.vcf )
|
||||
BCFTOOLS_ISEC ( BCFTOOLS_BGZIP.out.vcf
|
||||
.mix( BCFTOOLS_TABIX.out.tbi )
|
||||
.mix( BCFTOOLS_BGZIP2.out.vcf )
|
||||
.mix( BCFTOOLS_TABIX2.out.tbi )
|
||||
.mix( BCFTOOLS_BGZIP3.out.vcf )
|
||||
.mix( BCFTOOLS_TABIX3.out.tbi)
|
||||
.map { [ it[1] ]}
|
||||
.collect()
|
||||
.map { [ [id: 'test'], it ] } )
|
||||
}
|
||||
|
|
|
@ -46,3 +46,36 @@
|
|||
md5sum: 06d52177f819730dd409157914534e8d
|
||||
- path: output/bcftools/test.fa
|
||||
md5sum: c9e7ac4537756a0b33bcf17117f9a065
|
||||
|
||||
- name: Run bcftools isec test workflow
|
||||
command: nextflow run ./tests/software/bcftools/ -profile docker -entry test_bcftools_isec -c tests/config/nextflow.config
|
||||
tags:
|
||||
- bcftools
|
||||
- bcftools_isec
|
||||
files:
|
||||
- path: output/bcftools/test1.vcf.gz
|
||||
md5sum: eb75ae1f08a1884f8edc59ed423471a2
|
||||
- path: output/bcftools/test1.vcf.gz.tbi
|
||||
md5sum: 06d52177f819730dd409157914534e8d
|
||||
- path: output/bcftools/test2.vcf.gz
|
||||
md5sum: eb75ae1f08a1884f8edc59ed423471a2
|
||||
- path: output/bcftools/test2.vcf.gz.tbi
|
||||
md5sum: 06d52177f819730dd409157914534e8d
|
||||
- path: output/bcftools/test3.vcf.gz
|
||||
md5sum: eb75ae1f08a1884f8edc59ed423471a2
|
||||
- path: output/bcftools/test/0000.vcf.gz
|
||||
md5sum: 20bd741594f456c48e1928f07f0be342
|
||||
- path: output/bcftools/test/0000.vcf.gz.tbi
|
||||
md5sum: d4357a62c60df6abcb5cc806b4681dff
|
||||
- path: output/bcftools/test/0001.vcf.gz
|
||||
md5sum: 20bd741594f456c48e1928f07f0be342
|
||||
- path: output/bcftools/test/0001.vcf.gz.tbi
|
||||
md5sum: d4357a62c60df6abcb5cc806b4681dff
|
||||
- path: output/bcftools/test/0002.vcf.gz
|
||||
md5sum: 20bd741594f456c48e1928f07f0be342
|
||||
- path: output/bcftools/test/0002.vcf.gz.tbi
|
||||
md5sum: d4357a62c60df6abcb5cc806b4681dff
|
||||
- path: md5 output/bcftools/test/README.txt
|
||||
md5sum: 9a3a041e63a18e0ad41abab96e2c5f73
|
||||
- path: md5 output/bcftools/test/sites.txt
|
||||
md5sum: 01bb949ed7825ecf692bf0640e363647
|
||||
|
|
Loading…
Reference in a new issue