comparison featurecounts2bed.sh @ 0:ab0323782bb5 draft

planemo upload for repository https://bitbucket.org/EMCbioinf/galaxy-tool-shed-tools/raw/master/featurecounts commit cc900436bad9c6cca1f73d438c1f158d3bfc4318-dirty
author yhoogstrate
date Mon, 18 May 2015 04:49:19 -0400
parents
children b5c93611d2c5
comparison
equal deleted inserted replaced
-1:000000000000 0:ab0323782bb5
1 #!/bin/bash
2
3 # featurecounts2bed - converts featureCounts output to BED format
4
5 # Copyright 2013-2014, Youri Hoogstrate
6
7 # This program is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
11
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License at <http://www.gnu.org/licenses/> for
16 # more details.
17
18 # This tool has been written by Youri Hoogstrate from the Erasmus
19 # Medical Center (Rotterdam, Netherlands) on behalf of the Translational
20 # Research IT (TraIT) project:
21 # http://www.ctmm.nl/en/programmas/infrastructuren/traitprojecttranslationeleresearch
22 #
23 # More tools by the Translational Research IT (TraIT) project can be
24 # found in the following repository:
25 # http://toolshed.dtls.nl/
26
27
28 exon_level="true"
29 filename=""
30
31 # Parse parameters
32 while getopts e:f: option
33 do
34 case "${option}"
35 in
36 e) exon_level=${OPTARG};;
37 f) filename=$OPTARG;;
38 esac
39 done
40
41 # Convert the file
42 if [ $filename == "" ]; then
43 echo "Usage:"
44 echo " -e [true, false] true = entry for every exon; false = line for genes first exon"
45 echo " -f FILENAME from featureCounts"
46 else
47 while read line; do
48 first=${line:0:1}
49 if [ $first != "#" ]; then
50 columns=($line)
51 uid=${columns[@]:0:1}
52 if [ $uid != "Geneid" ]; then
53 chr=${columns[@]:1:1}
54 start=${columns[@]:2:1}
55 stop=${columns[@]:3:1}
56 direction=${columns[@]:4:1}
57 length=${columns[@]:5:1}
58 count=${columns[@]:6:1}
59
60 chr_splitted=($(echo $chr | tr ";" "\n"))
61 start_splitted=($(echo $start | tr ";" "\n"))
62 stop_splitted=($(echo $stop | tr ";" "\n"))
63 strand_splitted=($(echo $direction | tr ";" "\n"))
64
65 if [ $exon_level == "true" ]; then
66 n=${#chr_splitted[@]}
67 else
68 n=1
69 fi
70
71 for (( i=0; i<$n; i++ ))
72 do
73 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}
74 done
75 fi
76 fi
77 done < $filename
78 fi