Bash Helpers

Learn to build an applet that performs a basic SAMtools count with the aid of bash helper variables.

Source Code

View full source code on GitHub

Step 1. Download BAM Files

Download input files using the dx-download-all-inputs command. The dx-download-all-inputs command will go through all inputs and download into folders with the pattern /home/dnanexus/in/[VARIABLE]/[file or subfolder with files].

dx-download-all-inputs

Step 2. Create an Output Directory

We create an output directory in preparation for dx-upload-all-outputs DNAnexus command in the (Upload Results)[#Upload Result] section.

mkdir -p out/counts_txt

Step 3. Run SAMtools View

After executing the dx-download-all-inputs command, there are three helper variables created to aid in scripting. For this applet, the input variable name mappings_bam with platform filename my_mappings.bam will have a helper variables:

# [VARIABLE]_path the absolute string path to the file.
$ echo $mappings_bam_path
/home/dnanexus/in/mappings_bam/my_mappings.bam
# [VARIABLE]_prefix the file name minus the longest matching pattern in the dxapp.json file
$ echo $mappings_bam_prefix
my_mappings
# [VARIABLE]_name the file name from the platform
$ echo $mappings_bam_name
my_mappings.bam

We use the bash helper variable mappings_bam_path to reference the location of a file after it has been downloaded using dx-download-all-inputs.

samtools view -c "${mappings_bam_path}" > out/counts_txt/"${mappings_bam_prefix}.txt"

Step 4. Upload Result

We use the dx-upload-all-outputs command to upload data to the platform and specify it as the job’s output. The dx-upload-all-outputs command expects to find file paths matching the pattern /home/dnanexus/out/[VARIABLE]/*. It will upload matching files and then associate them as the output corresponding to [VARIABLE]. In this case, the output is called counts_txt. Earlier we created the folders, and we can now place the outputs there.

dx-upload-all-outputs

Last updated

Copyright 2024 DNAnexus