-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathcrosscutaligner.sh
More file actions
executable file
·71 lines (60 loc) · 1.94 KB
/
Copy pathcrosscutaligner.sh
File metadata and controls
executable file
·71 lines (60 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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
#!/bin/bash
usage(){
echo "
Written by Brian Bushnell
Last modified May 4, 2025
Description: Aligns a query sequence to a reference using CrossCutAligner.
This fully explores the matrix using 4 arrays of roughly length reflen.
The sequences can be any characters, but N is a special case.
Outputs the identity, rstart, and rstop positions.
CrossCut is a nontraditional aligner that fills antidiagonals,
incurring zero data dependencies between loops. This allows
perfect SIMD vectorization.
Usage:
crosscutaligner.sh <query> <ref>
crosscutaligner.sh <query> <ref> <map>
crosscutaligner.sh <query> <ref> <map> <iterations> <simd>
Parameters:
query A literal nucleotide sequence or fasta file.
ref A literal nucleotide sequence or fasta file.
map Optional output text file for matrix score space.
Set to null for benchmarking with no visualization.
This has not yet been tested and will produce unknown results.
iterations Optional integer for benchmarking multiple iterations.
simd Use vector instructions.
Please contact Brian Bushnell at bbushnell@lbl.gov if you encounter any problems.
For documentation and the latest version, visit: https://bbmap.org
"
}
if [ -z "$1" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
usage
exit
fi
resolveSymlinks(){
SCRIPT="$(cd "$(dirname "$0")" && pwd)/$(basename "$0")"
while [ -h "$SCRIPT" ]; do
DIR="$(dirname "$SCRIPT")"
SCRIPT="$(readlink "$SCRIPT")"
[ "${SCRIPT#/}" = "$SCRIPT" ] && SCRIPT="$DIR/$SCRIPT"
done
DIR="$(cd "$(dirname "$SCRIPT")" && pwd)"
if [ -f "$DIR/bbtools.jar" ]; then
CP="$DIR/bbtools.jar"
else
CP="$DIR/current/"
fi
}
setEnv(){
. "$DIR/javasetup.sh"
. "$DIR/memdetect.sh"
parseJavaArgs "--xmx=200m" "--xms=200m" "--mode=fixed" "$@"
setEnvironment
}
launch() {
CMD="java $EA $EOOM $SIMD $XMX $XMS -cp $CP idaligner.CrossCutAligner $@"
echo "$CMD" >&2
eval $CMD
}
resolveSymlinks
setEnv "$@"
launch "$@"