Mercurial > repos > davidvanzessen > combined_immune_repertoire_pipeline
diff combined.sh @ 0:4e3df2384422 draft
Uploaded
author | davidvanzessen |
---|---|
date | Wed, 20 Nov 2013 10:00:28 -0500 |
parents | |
children | 9b2567a3ecc9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/combined.sh Wed Nov 20 10:00:28 2013 -0500 @@ -0,0 +1,90 @@ +#!/bin/bash + +export IGDATA=/home/david/Galaxy/galaxy-dist/toolsheddependencies/igBlastn/1.0.0/davidvanzessen/igblast_human/1c64c977624e/ncbi-igblast-1.0.0/; + +html=${@:(-2):1} +imageDir=${@:(-1):1} +dir="$(cd "$(dirname "$0")" && pwd)" +fileCount=`expr $# - 2` +array=("$@") +echo "<html><h3>Progress</h3><table><tr><td>info</td></tr>" > $html +echo "<tr><td>-----------------------------------</td></tr>" >> $html +limit=`expr $fileCount / 2` + +function blastAndParse { + echo "<tr><td>Starting blast of $2</td></tr>" >> $html + fileName=$(basename $1) + $IGDATA/bin/igblastn -germline_db_V $IGDATA/database/human_gl_V -germline_db_J $IGDATA/database/human_gl_J -germline_db_D $IGDATA/database/human_gl_D -domain_system imgt -query $1 -auxiliary_data $IGDATA/optional_file/human_gl.aux -show_translation -outfmt 3 > $PWD/$fileName + echo "<tr><td>Finished blast of $2</td></tr>" >> $html + + echo "<tr><td>Starting parse of $2</td></tr>" >> $html + parsedFileName="${fileName%.*}" + parsedFileName="$parsedFileName.parsed" + perl $dir/igparse.pl $PWD/$fileName 0 | grep -v "D:" | cut -f2- > $parsedFileName + echo "<tr><td>Finished parse of $2</td></tr>" >> $html +} + +for ((i=0;i<$fileCount;i=$((i+2)))) +do + next=$((i+1)) + blastAndParse ${array[$i]} ${array[$next]} & +done +wait + + + +echo "<tr><td>-----------------------------------</td></tr>" >> $html +echo "<tr><td>merging</td></tr>" >> $html + +count=0 +for ((i=0;i<$fileCount;i=$((i+2)))) +do + id=$((i+1)) + place=$((count+limit)) + fn=$(basename ${array[$i]}) + fn="${fn%.*}" + mergeInputs[$count]="$PWD/$fn.parsed" + mergeIDs[$place]=${array[$id]} + count=$((count+1)) +done + +python $dir/igblastmerge.py --input ${mergeInputs[*]} --id ${mergeIDs[*]} --output $PWD/merged.txt + +echo "<tr><td>done</td></tr>" >> $html +echo "<tr><td>-----------------------------------</td></tr>" >> $html +echo "<tr><td>plotting</td></tr>" >> $html + + +inputFile=$PWD/merged.txt +outputFile=$html +outputDir=$imageDir +mkdir $outputDir +Rscript --verbose $dir/RScript.r $inputFile $outputDir $outputDir 2>&1 +echo "<html>" > $outputFile +echo "<img src='VPlot.png'/>" >> $outputFile +echo "<img src='DPlot.png'/>" >> $outputFile +echo "<img src='JPlot.png'/>" >> $outputFile + +samples=`cat $outputDir/samples.txt` +count=1 +echo "<table border='1'>" >> $outputFile +for sample in $samples; do + echo "<tr><td colspan='3' height='100'></td>" >> $outputFile + echo "<tr><td colspan='3'><h1>$sample</h1></td></tr>" >> $outputFile + echo "<tr><td><h2>V-D Heatmap:</h2></td><td><h2>V-J Heatmap:</h2></td><td><h2>D-J Heatmap:</h2></td></tr><tr>" >> $outputFile + mv "$outputDir/HeatmapVD_$sample.png" "$outputDir/VD_$sample.png" + echo "<td><img src='VD_$sample.png'/></td>" >> $outputFile + mv "$outputDir/HeatmapVJ_$sample.png" "$outputDir/VJ_$sample.png" + echo "<td><img src='VJ_$sample.png'/></td>" >> $outputFile + mv "$outputDir/HeatmapDJ_$sample.png" "$outputDir/DJ_$sample.png" + echo "<td><img src='DJ_$sample.png'/></td></tr>" >> $outputFile + count=$((count+1)) +done +echo "</table>" >> $outputFile + +echo "</html>" >> $2 + + +#r_wrapper.sh $in_file $out_file $out_file.files_path + +echo "<tr><td>done</td></tr>" >> $html