Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add indexFile #35

Merged
merged 3 commits into from
Jan 8, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Comment on lines +199 to +201
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may want to add a basic How to use section like the one above for this as well

##### How to use
1. Add this repository as a submodule in the pipeline of interest.
2. Include the `indexFile` process from the module `main.nf` with a relative path.
sorelfitzgibbon marked this conversation as resolved.
Show resolved Hide resolved
3. Call the function as needed with the approriate input and use returned value as index file name

## License

Author: Yash Patel ([email protected])
Expand Down
16 changes: 16 additions & 0 deletions modules/common/indexFile/main.nf
Original file line number Diff line number Diff line change
@@ -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.")
}
}
Loading