Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 8f84b74

Browse files
authoredJun 17, 2019
Add files via upload
1 parent 5fae8f0 commit 8f84b74

File tree

12 files changed

+428
-0
lines changed

12 files changed

+428
-0
lines changed
 

‎bdmax/bdmax.sh

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#!/bin/bash
2+
#Usage: bdmax.sh <bamfile> <output directory> <cutoff value> <calculate_lower>
3+
#example : ./bdmax.sh lumpy_BSY_red.bam output_bdmax 60 3
4+
#cutoff = 60
5+
#calculate_lower should be 3 for BSY10dKU70 and 2 for BSY11dKU70 (only the full version works with breakdancer)
6+
bamfile="$1"
7+
cutoff=41
8+
stamp="$5"
9+
output="$6"
10+
conf="bdmaxconfig"
11+
12+
cd ..
13+
14+
if [[ $1 == *"BSY11"* ]]
15+
then
16+
c=2
17+
else
18+
c=3
19+
fi
20+
21+
if [[ $1 == *"BSY11_red"* ]]
22+
then
23+
conf="BSY11_red_config"
24+
else
25+
docker run --name=bdmax1 -v $(pwd):/in/ -w /in/ molecular/breakdancer perl ../home/bio/breakdancer-1.4.5/perl/bam2cfg.pl -c "$c" "$bamfile".bam > ./bdmax/bdmaxconfig
26+
fi
27+
28+
29+
START=$(docker inspect --format='{{.State.StartedAt}}' bdmax1)
30+
STOP=$(docker inspect --format='{{.State.FinishedAt}}' bdmax1)
31+
32+
START_TIMESTAMP=$(date --date=$START +%s)
33+
STOP_TIMESTAMP=$(date --date=$STOP +%s)
34+
35+
TIME1=$(($STOP_TIMESTAMP-$START_TIMESTAMP))
36+
37+
echo first time: $TIME1 seconds
38+
39+
docker container rm bdmax1
40+
41+
echo $conf
42+
43+
docker run --name=bdmax2 -v $(pwd):/in/ -w /in/ molecular/breakdancer breakdancer-max -y $cutoff ./bdmax/"$conf" > "$output"/bdmax/bdmax_"$stamp".vcf
44+
45+
START=$(docker inspect --format='{{.State.StartedAt}}' bdmax2)
46+
STOP=$(docker inspect --format='{{.State.FinishedAt}}' bdmax2)
47+
48+
START_TIMESTAMP=$(date --date=$START +%s)
49+
STOP_TIMESTAMP=$(date --date=$STOP +%s)
50+
51+
TIME2=$(($STOP_TIMESTAMP-$START_TIMESTAMP))
52+
53+
echo second time: $TIME2 secondssss
54+
FTIME=$(($TIME1+$TIME2))
55+
56+
echo final time: $FTIME seconds 2>&1 | tee "$output"/bdmax/bdmax_runtime_"$stamp".txt
57+
58+
docker container rm bdmax2
59+
60+

‎breseq/breseq.sh

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
bam="$1"
3+
fasta="$2"
4+
fastq1="$3"
5+
fastq2="$4"
6+
stamp="$5"
7+
output="$6"
8+
cd ..
9+
docker run --name=breseq -v $(pwd)/:/in/ -w /in/ pvstodghill/breseq:0.32.0__2018-03-15 breseq -o "$output"/breseq/breseq_output_"$stamp" -r "$fasta".fasta "$fastq1".fastq "$fastq2".fastq
10+
11+
START=$(docker inspect --format='{{.State.StartedAt}}' breseq)
12+
STOP=$(docker inspect --format='{{.State.FinishedAt}}' breseq)
13+
14+
START_TIMESTAMP=$(date --date=$START +%s)
15+
STOP_TIMESTAMP=$(date --date=$STOP +%s)
16+
17+
FTIME=$(($STOP_TIMESTAMP-$START_TIMESTAMP))
18+
19+
echo final time: $FTIME seconds 2>&1 | tee "$output"/breseq_runtime_"$stamp".txt
20+
21+
docker container rm breseq

‎delly/delly.sh

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/bin/bash
2+
bam="$1"
3+
fasta="$2"
4+
fastq1="$3"
5+
fastq2="$4"
6+
stamp="$5"
7+
output="$6"
8+
cd ..
9+
docker run --name=delly -v $(pwd)/:/in/ -w /in/ dellytools/delly delly call -o "$output"/delly/delly_output_"$stamp".vcf -g "$fasta".fasta "$bam".bam
10+
11+
12+
START=$(docker inspect --format='{{.State.StartedAt}}' delly)
13+
STOP=$(docker inspect --format='{{.State.FinishedAt}}' delly)
14+
15+
START_TIMESTAMP=$(date --date=$START +%s)
16+
STOP_TIMESTAMP=$(date --date=$STOP +%s)
17+
18+
TIME1=$(($STOP_TIMESTAMP-$START_TIMESTAMP))
19+
20+
echo first time: "$TIME1"
21+
22+
docker container rm delly
23+
24+
docker run --name=bcftools -v $(pwd)/delly/output/:/in/ -w /in/ halllab/bcftools:v1.9 bcftools view -i'FILTER="PASS" && MAPQ>40 && (PE>5 || SR>5)' delly_output_"$stamp".vcf > ./delly/output/delly_output_BCFTOOLS_"$stamp".vcf.vcf
25+
26+
START=$(docker inspect --format='{{.State.StartedAt}}' bcftools)
27+
STOP=$(docker inspect --format='{{.State.FinishedAt}}' bcftools)
28+
29+
START_TIMESTAMP=$(date --date=$START +%s)
30+
STOP_TIMESTAMP=$(date --date=$STOP +%s)
31+
32+
TIME2=$(($STOP_TIMESTAMP-$START_TIMESTAMP))
33+
34+
echo seocnd time: "$TIME2"
35+
36+
docker container rm bcftools
37+
38+
FTIME=$(($TIME1+$TIME2))
39+
40+
echo final time: $FTIME seconds 2>&1 | tee "$output"/delly/delly_runtime_"$stamp".txt

‎doall.sh

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
#!/bin/bash
2+
#tests all tools with all alignments we had deemed necessary
3+
#usage: ./doall.sh <output name>
4+
#example: ./doall.sh newoutput
5+
# creates a directory called "newoutput" that contains the results of all four alignments for each tool
6+
#if no outputn name is provided, a timestamp is used as a default
7+
8+
echo "calling tools with predeterminded parameters"
9+
10+
declare -a params=("BSY10_red"
11+
"BSY11_red"
12+
"BSY10_full"
13+
"BSY11_full")
14+
15+
stamp="$(date +'%Y_%m_%d-%H_%M_%S')"
16+
oname="$1"
17+
18+
if [ -z "$1" ]
19+
then
20+
echo "No name supplied, setting time stamp as default"
21+
oname="$stamp"
22+
fi
23+
24+
mkdir output_"$oname"
25+
mkdir output_"$oname"/BSY11
26+
mkdir output_"$oname"/BSY11/red
27+
mkdir output_"$oname"/BSY11/full
28+
29+
mkdir output_"$oname"/BSY10
30+
mkdir output_"$oname"/BSY10/red
31+
mkdir output_"$oname"/BSY10/full
32+
33+
declare -a tools=("bdmax" "delly" "gridss" "lumpy" "manta" "softsv" "breseq" "metasv")
34+
for tool in "${tools[@]}"
35+
do
36+
mkdir output_"$oname"/BSY11/red/"$tool"
37+
mkdir output_"$oname"/BSY11/full/"$tool"
38+
mkdir output_"$oname"/BSY10/red/"$tool"
39+
mkdir output_"$oname"/BSY10/full/"$tool"
40+
done
41+
42+
ref="reference/cbs_7435_full"
43+
44+
for p in "${params[@]}"
45+
do
46+
echo "calling with $p"
47+
48+
if [[ $p == *"BSY11"* ]]
49+
then
50+
if [[ $p == *"_red"* ]]; then
51+
output=output_"$oname"/BSY11/red
52+
bam="BSY11/BSY11_red"
53+
fastq1="BSY11/BSY11_1_trimmed_red"
54+
fastq2="BSY11/BSY11_2_trimmed_red"
55+
else
56+
output=output_"$oname"/BSY11/full
57+
bam="BSY11/BSY11_full"
58+
fastq1="BSY11/BSY11_1_trimmed"
59+
fastq2="BSY11/BSY11_2_trimmed"
60+
fi
61+
else
62+
if [[ $p == *"_red"* ]]; then
63+
output=output_"$oname"/BSY10/red
64+
bam="BSY10/BSY10_red"
65+
fastq1="BSY10/BSY10_1_trimmed_red"
66+
fastq2="BSY10/BSY10_2_trimmed_red"
67+
else
68+
output=output_"$oname"/BSY10/full
69+
bam="BSY10/BSY10_full"
70+
fastq1="BSY10/BSY10_1_trimmed"
71+
fastq2="BSY10/BSY10_2_trimmed"
72+
fi
73+
fi
74+
75+
bash ./doit.sh "$bam" "$ref" "$fastq1" "$fastq2" "$oname" "$output" 2>&1
76+
done
77+
78+
echo "doall done, fingers crossed"

‎doit.sh

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/bin/bash
2+
#tests all tools usings a single alignment
3+
#usage: ./doit.sh <bamfile name> <reference file name> <fastq1 file name> <fastq2 file name> <output name> <output folder>
4+
# all file names are provided WITHOUT FILE EXTENSION
5+
#example: ./doit.sh BSY11_trimmed_red cbs_7435_full 100549_1_trimmed 100549_2_trimmed test1 testoutput
6+
echo "testing all tools..."
7+
8+
docker kill $(docker ps -q)
9+
docker rm $(docker ps -a -q)
10+
11+
declare -a tools=("bdmax" "delly" "gridss" "lumpy" "manta" "softsv" "breseq")
12+
#("bdmax" "breseq" "delly" "gridss" "lumpy" "manta" "metasv" "softsv")
13+
14+
dir="$(pwd)"
15+
16+
for tool in "${tools[@]}"
17+
do
18+
stamp="$(date +'%Y_%d_%m-%H_%M_%S')"
19+
echo "╔══════════════════════════════════════════════════════════════╗"
20+
echo "║ starting $tool"
21+
echo "╚══════════════════════════════════════════════════════════════╝"
22+
cd "$dir"/"$tool"
23+
./$tool.sh "$1" "$2" "$3" "$4" "$5" "$6" 2>&1 | tee ../"$6"/"$tool"/"$tool"_out_"$5".txt
24+
echo "##################### DONE WITH $tool ######################"
25+
done
26+
27+
echo "That's all, folks!"

‎gridss/gridss.sh

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/bash
2+
stamp="$5"
3+
bam="$1"
4+
fasta="$2"
5+
fastq1="$3"
6+
fastq2="$4"
7+
output="$6"
8+
cd ..
9+
mkdir "$output"/gridss/gridss_out_"$stamp"
10+
docker run --name=gridss -v $(pwd)/:/in/ -w /in/ gridss/gridss OUTPUT="$output"/gridss/gridss_out_"$stamp"/output_file_"$stamp".vcf INPUT="$bam".bam REFERENCE_SEQUENCE="$fasta".fasta ASSEMBLY="$output"/gridss/gridss_out_"$stamp"/output_file_"$stamp".bam
11+
12+
START=$(docker inspect --format='{{.State.StartedAt}}' gridss)
13+
STOP=$(docker inspect --format='{{.State.FinishedAt}}' gridss)
14+
15+
START_TIMESTAMP=$(date --date=$START +%s)
16+
STOP_TIMESTAMP=$(date --date=$STOP +%s)
17+
18+
FTIME=$(($STOP_TIMESTAMP-$START_TIMESTAMP))
19+
20+
echo final time: $FTIME seconds 2>&1 | tee "$output"/gridss/gridss_runtime_"$stamp".txt
21+
22+
docker container rm gridss

‎lumpy/lumpy.sh

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
stamp="$5"
3+
output="$6"
4+
cd ..
5+
docker run --name=lumpy -v $(pwd)/:/in/ -w /in/ erictdawson/lumpy-sv lumpyexpress -B "$1".bam -S "$1".splitters.bam -D "$1".discordants.bam -o "$output"/lumpy/lumpyoutput_"$stamp".vcf
6+
7+
./lumpy/lumpy_awk_filter.sh "$output"/lumpy/lumpyoutput_"$stamp".vcf 100 "$output"/lumpy/lumpyoutput_CUTOFF_"$stamp".vcf
8+
9+
#rm ./lumpy/output/lumpyoutput_"$stamp".vcf
10+
11+
START=$(docker inspect --format='{{.State.StartedAt}}' lumpy)
12+
STOP=$(docker inspect --format='{{.State.FinishedAt}}' lumpy)
13+
14+
START_TIMESTAMP=$(date --date=$START +%s)
15+
STOP_TIMESTAMP=$(date --date=$STOP +%s)
16+
17+
FTIME=$(($STOP_TIMESTAMP-$START_TIMESTAMP))
18+
19+
echo final time: $FTIME seconds 2>&1 | tee "$output"/lumpy/lumpy_runtime_"$stamp".txt
20+
21+
docker container rm lumpy

‎lumpy/lumpy_awk_filter.sh

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/bash
2+
#
3+
# Usage:
4+
# awk_filter.sh <filename> <cutoff value> <output filename>
5+
#
6+
# Examples:
7+
# lumpy_awk_filter.sh example.vcf 100 cutoff.vcf
8+
#
9+
10+
if [ $# -lt 2 ]; then
11+
echo -e "Usage:\n `basename ${0}` <filename> <cutoff value> <output filename>"
12+
exit 1
13+
fi
14+
15+
fname=${1}
16+
cutoff=${2}
17+
output=${3}
18+
odir="."
19+
20+
awk -v cutoff=${cutoff} -F ";" -e \
21+
'{
22+
for (i=1;i<=NF;i++) {
23+
if ($i ~ /SU=/) {
24+
tmp=match($i, /[0-9]/);
25+
if ((substr(($i),tmp))+0 > cutoff) {
26+
print($0);
27+
}
28+
}
29+
}
30+
}' ${fname} > ${output}

‎manta/manta.sh

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Usage: manta.sh <bamfile> <reference fasta> <output directory> <number of available cores>
2+
#
3+
bam="$1"
4+
fasta="$2"
5+
fastq1="$3"
6+
fastq2="$4"
7+
cores=1
8+
stamp="$5"
9+
output="$6"
10+
11+
cd ..
12+
docker run --name=manta1 -v $(pwd):/in/ -w /in/ kfdrc/manta ../manta-1.4.0.centos6_x86_64/bin/configManta.py --bam="$bam".bam --referenceFasta="$fasta".fasta --runDir="$output"/manta/output_"$stamp"
13+
14+
15+
START=$(docker inspect --format='{{.State.StartedAt}}' manta1)
16+
STOP=$(docker inspect --format='{{.State.FinishedAt}}' manta1)
17+
18+
START_TIMESTAMP=$(date --date=$START +%s)
19+
STOP_TIMESTAMP=$(date --date=$STOP +%s)
20+
21+
TIME1=$(($STOP_TIMESTAMP-$START_TIMESTAMP))
22+
23+
echo first time: $TIME1 seconds
24+
25+
docker container rm manta1
26+
27+
28+
docker run --name=manta2 -v $(pwd):/in/ -w /in/ kfdrc/manta python "$output"/manta/output_"$stamp"/runWorkflow.py -m local -j $cores
29+
30+
START=$(docker inspect --format='{{.State.StartedAt}}' manta2)
31+
STOP=$(docker inspect --format='{{.State.FinishedAt}}' manta2)
32+
33+
START_TIMESTAMP=$(date --date=$START +%s)
34+
STOP_TIMESTAMP=$(date --date=$STOP +%s)
35+
36+
TIME2=$(($STOP_TIMESTAMP-$START_TIMESTAMP))
37+
38+
echo second time: $TIME2 seconds
39+
40+
docker container rm manta2
41+
42+
FTIME=$(($TIME1+$TIME2))
43+
44+
echo final time: $FTIME seconds 2>&1 | tee "$output"/manta/manta_runtime_"$stamp".txt

‎mapping.sh

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/bin/bash -x
2+
#Shell script for mapping procedure
3+
#Lea Demelius - 20.2.2019
4+
echo "Starting mapping procedure..."
5+
fasta="$1"
6+
fastq1="$2"
7+
fastq2="$3"
8+
name="$4"
9+
docker pull lindsayliang/bwa_mem
10+
docker pull kfdrc/speedseq
11+
docker pull rpseq/samblaster
12+
docker pull jweinstk/samtools
13+
docker pull erictdawson/lumpy-sv
14+
docker run --rm -v $(pwd):/in/ -w /in/ lindsayliang/bwa_mem bwa index $fasta
15+
docker run --rm -v $(pwd):/in/ -w /in/ lindsayliang/bwa_mem bwa mem -R "@RG\tID:id\tSM:100549\tLB:lib" $fasta $fastq1 $fastq2 > x.sam
16+
docker run --rm -v $(pwd):/in/ -w /in/ rpseq/samblaster -i x.sam --excludeDups --addMateTags --maxSplitCount 2 --minNonOverlap 20 > y.sam
17+
docker run --rm -v $(pwd):/in/ -w /in/ jweinstk/samtools samtools view -S -b y.sam > z.unsorted.bam
18+
docker run --rm -v $(pwd):/in/ -w /in/ jweinstk/samtools samtools sort z.unsorted.bam -o $name.bam
19+
docker run --rm -v $(pwd):/in/ -w /in/ jweinstk/samtools samtools view -b -F 1294 $name.bam > z.discordants.unsorted.bam
20+
docker run --rm -v $(pwd):/in/ -w /in/ jweinstk/samtools samtools view -h $name.bam > z.splitters.before.bam
21+
docker run --rm -v $(pwd):/in/ -w /in/ erictdawson/lumpy-sv ../app/lumpy-sv/scripts/extractSplitReads_BwaMem -i z.splitters.before.bam > z.splitters.nearlythere.sam
22+
docker run --rm -v $(pwd):/in/ -w /in/ jweinstk/samtools samtools view -Sb z.splitters.nearlythere.sam > z.splitters.unsorted.bam
23+
docker run --rm -v $(pwd):/in/ -w /in/ jweinstk/samtools samtools sort z.discordants.unsorted.bam -o $name.discordants.bam
24+
docker run --rm -v $(pwd):/in/ -w /in/ jweinstk/samtools samtools sort z.splitters.unsorted.bam -o $name.splitters.bam
25+
docker run --rm -v $(pwd):/in/ -w /in/ jweinstk/samtools samtools index $name.bam
26+
docker run --rm -v $(pwd):/in/ -w /in/ jweinstk/samtools samtools index $name.discordants.bam
27+
docker run --rm -v $(pwd):/in/ -w /in/ jweinstk/samtools samtools index $name.splitters.bam
28+
rm z.splitters.unsorted.bam
29+
rm z.discordants.unsorted.bam
30+
rm z.splitters.nearlythere.sam
31+
rm z.splitters.before.bam
32+
rm z.unsorted.bam
33+
rm y.sam
34+
rm x.sam
35+
echo "End of mapping procedure"

‎softsv/softsv.sh

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/bin/bash
2+
stamp="$5"
3+
bam="$1"
4+
fasta="$2"
5+
fastq1="$3"
6+
fastq2="$4"
7+
output="$6"
8+
cd ..
9+
mkdir "$output"/softsv/softsv_output_"$stamp"
10+
docker run --name=softsv -v $(pwd)/:/in/ -w /in/ chrishah/softsv:1.4.2 SoftSV -i "$bam".bam -o "$output"/softsv/softsv_output_"$stamp"
11+
12+
./softsv/softsv_awk_filter.sh "$output"/softsv/softsv_output_"$stamp" 100
13+
14+
START=$(docker inspect --format='{{.State.StartedAt}}' softsv)
15+
STOP=$(docker inspect --format='{{.State.FinishedAt}}' softsv)
16+
17+
START_TIMESTAMP=$(date --date=$START +%s)
18+
STOP_TIMESTAMP=$(date --date=$STOP +%s)
19+
20+
TIME1=$(($STOP_TIMESTAMP-$START_TIMESTAMP))
21+
22+
echo final time: $TIME1 seconds 2>&1 | tee "$output"/softsv/softsv_runtime_"$stamp".txt
23+
24+
docker container rm softsv

‎softsv/softsv_awk_filter.sh

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/bin/bash
2+
#
3+
# Usage:
4+
# softsv_awk_filter.sh <directoryname> <cutoff value>
5+
#
6+
# Examples:
7+
# softsv_awk_filter.sh softsv_directory 100
8+
#
9+
10+
if [ $# -lt 2 ]; then
11+
echo -e "Usage:\n `basename ${0}` <directoryname> <cutoff value>"
12+
exit 1
13+
fi
14+
15+
dname=${1}
16+
cutoff=${2}
17+
odir="."
18+
19+
for file in ${dname}/*.txt ; do
20+
awk -v cutoff=${cutoff} -F " " -e \
21+
'{
22+
if ($5+$6 > cutoff) {
23+
print $0;
24+
}
25+
}' $file > $file'_cutoff.txt';
26+
done

0 commit comments

Comments
 (0)
Please sign in to comment.