jpayne@69
|
1 #!/bin/bash
|
jpayne@69
|
2
|
jpayne@69
|
3 usage(){
|
jpayne@69
|
4 echo "
|
jpayne@69
|
5 Written by Brian Bushnell
|
jpayne@69
|
6 Last modified February 17, 2015
|
jpayne@69
|
7
|
jpayne@69
|
8 Description: Generates synthetic cross-contaminated files from clean files.
|
jpayne@69
|
9 Intended for use with synthetic reads generated by SynthMDA or RandomReads.
|
jpayne@69
|
10
|
jpayne@69
|
11 Usage: crosscontaminate.sh in=<file,file,...> out=<file,file,...>
|
jpayne@69
|
12
|
jpayne@69
|
13 Input parameters:
|
jpayne@69
|
14 in=<file,file,...> Clean input reads.
|
jpayne@69
|
15 innamefile=<file> A file containing the names of input files,
|
jpayne@69
|
16 one name per line.
|
jpayne@69
|
17 interleaved=auto (int) t/f overrides interleaved autodetection.
|
jpayne@69
|
18 qin=auto Input quality offset: 33 (Sanger), 64, or auto.
|
jpayne@69
|
19 reads=-1 If positive, quit after processing X reads or pairs.
|
jpayne@69
|
20
|
jpayne@69
|
21 Processing Parameters:
|
jpayne@69
|
22 minsinks=1 Min contamination destinations from one source.
|
jpayne@69
|
23 maxsinks=8 Max contamination destinations from one source.
|
jpayne@69
|
24 minprob=0.000005 Min allowed contamination rate (geometric distribution).
|
jpayne@69
|
25 maxprob=0.025 Max allowed contamination rate.
|
jpayne@69
|
26
|
jpayne@69
|
27 Output parameters:
|
jpayne@69
|
28 out=<file,file,...> Contaminated output reads.
|
jpayne@69
|
29 outnamefile=<file> A file containing the names of output files,
|
jpayne@69
|
30 one name per line.
|
jpayne@69
|
31 overwrite=t (ow) Grant permission to overwrite files.
|
jpayne@69
|
32 #showspeed=t (ss) 'f' suppresses display of processing speed.
|
jpayne@69
|
33 ziplevel=2 (zl) Compression level; 1 (min) through 9 (max).
|
jpayne@69
|
34 threads=auto (t) Set number of threads to use; default is number of
|
jpayne@69
|
35 logical processors.
|
jpayne@69
|
36 qout=auto Output quality offset: 33 (Sanger), 64, or auto.
|
jpayne@69
|
37 shuffle=f Shuffle contents of output files.
|
jpayne@69
|
38 shufflethreads=3 Use this many threads for shuffling (uses more memory).
|
jpayne@69
|
39
|
jpayne@69
|
40 Java Parameters:
|
jpayne@69
|
41 -Xmx This will set Java's memory usage, overriding autodetection.
|
jpayne@69
|
42 -Xmx20g will specify 20 gigs of RAM, and -Xmx200m will specify 200 megs.
|
jpayne@69
|
43 The max is typically 85% of physical memory.
|
jpayne@69
|
44 -eoom This flag will cause the process to exit if an
|
jpayne@69
|
45 out-of-memory exception occurs. Requires Java 8u92+.
|
jpayne@69
|
46 -da Disable assertions.
|
jpayne@69
|
47
|
jpayne@69
|
48 Please contact Brian Bushnell at bbushnell@lbl.gov if you encounter any problems.
|
jpayne@69
|
49 "
|
jpayne@69
|
50 }
|
jpayne@69
|
51
|
jpayne@69
|
52 #This block allows symlinked shellscripts to correctly set classpath.
|
jpayne@69
|
53 pushd . > /dev/null
|
jpayne@69
|
54 DIR="${BASH_SOURCE[0]}"
|
jpayne@69
|
55 while [ -h "$DIR" ]; do
|
jpayne@69
|
56 cd "$(dirname "$DIR")"
|
jpayne@69
|
57 DIR="$(readlink "$(basename "$DIR")")"
|
jpayne@69
|
58 done
|
jpayne@69
|
59 cd "$(dirname "$DIR")"
|
jpayne@69
|
60 DIR="$(pwd)/"
|
jpayne@69
|
61 popd > /dev/null
|
jpayne@69
|
62
|
jpayne@69
|
63 #DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/"
|
jpayne@69
|
64 CP="$DIR""current/"
|
jpayne@69
|
65
|
jpayne@69
|
66 z="-Xmx4g"
|
jpayne@69
|
67 z2="-Xms4g"
|
jpayne@69
|
68 set=0
|
jpayne@69
|
69
|
jpayne@69
|
70 if [ -z "$1" ] || [[ $1 == -h ]] || [[ $1 == --help ]]; then
|
jpayne@69
|
71 usage
|
jpayne@69
|
72 exit
|
jpayne@69
|
73 fi
|
jpayne@69
|
74
|
jpayne@69
|
75 calcXmx () {
|
jpayne@69
|
76 source "$DIR""/calcmem.sh"
|
jpayne@69
|
77 setEnvironment
|
jpayne@69
|
78 parseXmx "$@"
|
jpayne@69
|
79 if [[ $set == 1 ]]; then
|
jpayne@69
|
80 return
|
jpayne@69
|
81 fi
|
jpayne@69
|
82 freeRam 4000m 42
|
jpayne@69
|
83 z="-Xmx${RAM}m"
|
jpayne@69
|
84 }
|
jpayne@69
|
85 calcXmx "$@"
|
jpayne@69
|
86
|
jpayne@69
|
87 crosscontaminate() {
|
jpayne@69
|
88 local CMD="java $EA $EOOM $z -cp $CP jgi.CrossContaminate $@"
|
jpayne@69
|
89 echo $CMD >&2
|
jpayne@69
|
90 eval $CMD
|
jpayne@69
|
91 }
|
jpayne@69
|
92
|
jpayne@69
|
93 crosscontaminate "$@"
|