Newer
Older
#!/bin/bash
# tune-hmm.sh
script_name="tune-hmm.sh"
#Help function
usage() {
echo "-h Help documentation for $script_name"
echo "-f --File path to Replicate 1 alignments"
echo "-r --UCSC Reference genome (e.g. hg19, mm10)"
echo "-o --Path to output directory"
echo "-v --Version of script"
echo "Example: $script_name -f 'foo_1.bam' -r 'hg19' -o '/path/to/output/dir/'"
exit 1
}
# Version function
version(){
echo "$script_name $script_ver"
exit 1
}
main(){
# Load required modules
module load python/2.7.x-anaconda
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# Parsing options
OPTIND=1 # Reset OPTIND
while getopts :f:r:o:vh opt
do
case $opt in
f) aln1=$OPTARG;;
r) ucsc_reference=$OPTARG;;
o) out=$OPTARG;;
v) version;;
h) usage;;
esac
done
shift $(($OPTIND -1))
# Check for mandatory options
if [[ -z $aln1 ]] || [[ -z $ucsc_reference ]] || [[ -z $out ]]; then
usage
fi
# Define the out directory
out_dir=$out\/$script_name-$script_ver
# Make sure directories exist
if [ ! -e $out ]; then
mkdir $out
fi
if [ ! -e $out_dir ]; then
mkdir $out_dir
fi
# Run call-transcripts.R
if [ ! -e $out_dir/metadata.json ]; then
Rscript tune-hmm.R --alignment1 $aln1 --genome $ucsc_reference --out $out_dir
# Get input and output files and then print out metadata.json file
input_files=("$aln1")
printf -v input "\"%s\"," "${input_files[@]}"
input=${input%,}
output_file=($out_dir\/$prefix*)
printf -v output "\"%s\"," "${output_file[@]}"
output=${output%,}
printf '{"script name":"%s","script version":"%s", "input files": [%s], "output files": [%s]}' "$script_name" "$script_ver" "$input" "$output" | python -m json.tool > $out_dir/metadata.json
else
aln1_fn=$(basename "$aln1")
echo "* HMM tune has been made from $aln1_fn. "
fi
}
main "$@"