diff --git a/CHANGELOG.md b/CHANGELOG.md index 3135094..3cdcbde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [Unreleased] ### Added +- Add `indexFile` module to return index file path - Add intermediate file/directory removal module - Add genome interval extraction module - Add PipeVal validation module diff --git a/README.md b/README.md index 9438269..47cfffc 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,22 @@ Parameters: 3. Use the `addParams` directive when importing to specify any params. 4. Call the process with the input channel, a tuple with `id` and `file_path`. +### Return Expected Index File +##### Description +Module returns the expected path to the index file for a given input file. +NOTE! This does not check for the existence of the index file. + +Inputs: + - input_file: currently supports BAM or VCF + +Output: + - The input file path with the expected index extension appended: currently `.bai` for BAM files and `.tbi` for VCF files + +##### How to use +1. Add this repository as a submodule in the pipeline of interest. +2. Include the `indexFile` function from the module `main.nf` with a relative path. +3. Call the function as needed with the approriate input and use returned value as index file name + ## License Author: Yash Patel (YashPatel@mednet.ucla.edu) diff --git a/modules/common/indexFile/main.nf b/modules/common/indexFile/main.nf new file mode 100644 index 0000000..75d9456 --- /dev/null +++ b/modules/common/indexFile/main.nf @@ -0,0 +1,16 @@ +/** +* Module returns the expected path to a file's index file. +* Note that this is not a check for the existence of the index file. +*/ + +def indexFile(Object bam_or_vcf) { + if(bam_or_vcf.endsWith('.bam')) { + return "${bam_or_vcf}.bai" + } + else if(bam_or_vcf.endsWith('vcf.gz')) { + return "${bam_or_vcf}.tbi" + } + else { + throw new Exception("Index file for ${bam_or_vcf} file type not supported. Use .bam or .vcf.gz files.") + } + }