annotate featurecounts2bed.sh @ 0:cada2d2f0a7c draft

Uploaded
author yhoogstrate
date Wed, 26 Mar 2014 09:12:30 -0400
parents
children fae19d64e9de
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
1 #!/bin/bash
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
2
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
3 # This tool has been written by Youri Hoogstrate from the Erasmus
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
4 # Medical Center (Rotterdam, Netherlands) on behalf of the Translational
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
5 # Research IT (TraIT) project:
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
6 # http://www.ctmm.nl/en/programmas/infrastructuren/traitprojecttranslationeleresearch
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
7 #
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
8 # More tools by the Translational Research IT (TraIT) project can be
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
9 # found in the following repository:
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
10 # http://toolshed.dtls.nl/
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
11
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
12 exon_level="true"
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
13 filename=""
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
14
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
15 # Parse parameters
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
16 while getopts e:f: option
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
17 do
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
18 case "${option}"
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
19 in
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
20 e) exon_level=${OPTARG};;
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
21 f) filename=$OPTARG;;
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
22 esac
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
23 done
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
24
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
25 # Convert the file
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
26 if [ $filename == "" ]; then
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
27 echo "Usage:"
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
28 echo " -e [true, false] true = entry for every exon; false = line for genes first exon"
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
29 echo " -f FILENAME from featureCounts"
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
30 else
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
31 while read line; do
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
32 first=${line:0:1}
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
33 if [ $first != "#" ]; then
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
34 columns=($line)
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
35 uid=${columns[@]:0:1}
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
36 if [ $uid != "Geneid" ]; then
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
37 chr=${columns[@]:1:1}
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
38 start=${columns[@]:2:1}
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
39 stop=${columns[@]:3:1}
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
40 direction=${columns[@]:4:1}
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
41 length=${columns[@]:5:1}
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
42 count=${columns[@]:6:1}
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
43
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
44 chr_splitted=($(echo $chr | tr ";" "\n"))
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
45 start_splitted=($(echo $start | tr ";" "\n"))
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
46 stop_splitted=($(echo $stop | tr ";" "\n"))
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
47 strand_splitted=($(echo $direction | tr ";" "\n"))
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
48
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
49 if [ $exon_level == "true" ]; then
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
50 n=${#chr_splitted[@]}
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
51 else
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
52 n=1
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
53 fi
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
54
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
55 for (( i=0; i<$n; i++ ))
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
56 do
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
57 echo ${chr_splitted[@]:$i:1}" "${start_splitted[@]:$i:1}" "${stop_splitted[@]:$i:1}" "$uid" ("$((${stop_splitted[@]:$i:1}-${start_splitted[@]:$i:1}))"/"$length"nt) "$count" "${strand_splitted[@]:$i:1}
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
58 done
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
59 fi
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
60 fi
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
61 done < $filename
cada2d2f0a7c Uploaded
yhoogstrate
parents:
diff changeset
62 fi