annotate bin/last-bisulfite-paired.sh @ 0:06f8460885ff

migrate from GitHub
author yutaka-saito
date Sun, 19 Apr 2015 20:51:13 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
1 #! /bin/sh
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
2
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
3 # Align paired bisulfite-converted DNA reads to a genome.
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
4
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
5 # This assumes that reads1.fastq are all from the converted strand
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
6 # (i.e. they have C->T conversions) and reads2.fastq are all from the
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
7 # reverse-complement (i.e. they have G->A conversions).
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
8
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
9 # "GNU parallel" needs to be installed.
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
10
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
11 [ $# -eq 4 ] || {
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
12 cat <<EOF
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
13 Typical usage:
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
14
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
15 lastdb -uBISF my_f mygenome.fa
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
16 lastdb -uBISR my_r mygenome.fa
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
17
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
18 $(basename $0) my_f my_r reads1.fastq reads2.fastq > results.maf
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
19
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
20 EOF
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
21 exit 2
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
22 }
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
23
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
24 # Try to get the LAST programs into the PATH, if they aren't already:
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
25 PATH=$PATH:$(dirname $0)/../src
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
26
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
27 tmp=${TMPDIR-/tmp}/$$
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
28 trap 'rm -f $tmp.*' EXIT
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
29
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
30 cat > $tmp.script << 'EOF'
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
31 t=$1.$$
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
32
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
33 lastal -pBISF -s1 -Q1 -e120 -i1 "$2" "$4" > $t.t1f
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
34 lastal -pBISR -s0 -Q1 -e120 -i1 "$3" "$4" > $t.t1r
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
35 last-merge-batches $t.t1f $t.t1r > $t.t1
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
36 rm $t.t1f $t.t1r
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
37
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
38 lastal -pBISF -s0 -Q1 -e120 -i1 "$2" "$5" > $t.t2f
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
39 lastal -pBISR -s1 -Q1 -e120 -i1 "$3" "$5" > $t.t2r
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
40 last-merge-batches $t.t2f $t.t2r > $t.t2
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
41 rm $t.t2f $t.t2r
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
42
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
43 last-pair-probs -m0.1 $t.t1 $t.t2 |
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
44 perl -F'(\s+)' -ane '$F[12] =~ y/ta/CG/ if /^s/ and $s++ % 2; print @F'
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
45 rm $t.t1 $t.t2
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
46 EOF
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
47
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
48 # Convert C to t, and all other letters to uppercase:
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
49 perl -pe 'y/Cca-z/ttA-Z/ if $. % 4 == 2' "$3" | split -l400000 -a5 - $tmp.1
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
50
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
51 # Convert G to a, and all other letters to uppercase:
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
52 perl -pe 'y/Gga-z/aaA-Z/ if $. % 4 == 2' "$4" | split -l400000 -a5 - $tmp.2
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
53
06f8460885ff migrate from GitHub
yutaka-saito
parents:
diff changeset
54 parallel --gnu --xapply sh $tmp.script $tmp "$1" "$2" ::: $tmp.1* ::: $tmp.2*