| 
0
 | 
     1 #!/bin/bash
 | 
| 
 | 
     2 
 | 
| 
 | 
     3 #sample_data=(tmp tmp1 tmp2 tmp3)
 | 
| 
 | 
     4 sample_data=(`cat $1 | cut -f1 | sed ':a;N;$!ba;s/\n/ /g'`)
 | 
| 
 | 
     5 #sample_name=(sample1 sample2 sample3 sample4)
 | 
| 
 | 
     6 sample_name=(`cat $1 | cut -f2 | sed ':a;N;$!ba;s/\n/ /g'`)
 | 
| 
 | 
     7 #sample_group=(gr1 gr1 gr2 gr2)
 | 
| 
 | 
     8 sample_group=(`cat $1 | cut -f3 | sed ':a;N;$!ba;s/\n/ /g'`)
 | 
| 
 | 
     9 
 | 
| 
 | 
    10 
 | 
| 
 | 
    11 group=('#')
 | 
| 
 | 
    12 sample=('#Feature')
 | 
| 
 | 
    13 
 | 
| 
 | 
    14 touch anno.tmp
 | 
| 
 | 
    15 touch count.tmp
 | 
| 
 | 
    16 
 | 
| 
 | 
    17 nsamples=`expr ${#sample_data[@]} - 1`
 | 
| 
 | 
    18 
 | 
| 
 | 
    19 for i in `seq 0 1 $nsamples`; do
 | 
| 
 | 
    20 	group+=(${sample_group[i]}:${sample_group[i]})
 | 
| 
 | 
    21 	sample+=(${sample_name[i]})
 | 
| 
 | 
    22 
 | 
| 
 | 
    23 	cat ${sample_data[i]} | tail -n+3 > dataWithoutHeader 2>> script.log
 | 
| 
 | 
    24 
 | 
| 
 | 
    25 	cat dataWithoutHeader | sort -k1 > dataWithoutHeader.sorted 2>> script.log
 | 
| 
 | 
    26 
 | 
| 
 | 
    27 	cat dataWithoutHeader.sorted | awk '{print $1}' > anno.sample 2>> script.log
 | 
| 
 | 
    28 	cat dataWithoutHeader.sorted | awk '{print $5}' > count.sample 2>> script.log
 | 
| 
 | 
    29 
 | 
| 
 | 
    30 	paste -d"\t" count.tmp count.sample > count 2>> script.log
 | 
| 
 | 
    31 	paste -d"\t" anno.tmp anno.sample > anno 2>> script.log
 | 
| 
 | 
    32 
 | 
| 
 | 
    33 	cat count > count.tmp 2>> script.log
 | 
| 
 | 
    34 	cat anno > anno.tmp 2>> script.log
 | 
| 
 | 
    35 
 | 
| 
 | 
    36 done
 | 
| 
 | 
    37 
 | 
| 
 | 
    38 echo ${group[*]} | sed -e 's/ /\t/g' > count.matrix 2>> script.log
 | 
| 
 | 
    39 echo ${sample[*]} | sed -e 's/ /\t/g' >> count.matrix 2>> script.log
 | 
| 
 | 
    40 
 | 
| 
 | 
    41 cat count | cut -f 2- > count.tmp 2>> script.log
 | 
| 
 | 
    42 
 | 
| 
 | 
    43 paste -d"\t" anno.sample count.tmp >> count.matrix 2>> script.log
 | 
| 
 | 
    44 
 | 
| 
 | 
    45 cat anno.tmp | cut -f 2- | awk '{for (i=2; i<=NF; i++){if ($1!=$i){print "error"; break}}}' > control.data 2>> script.log
 | 
| 
 | 
    46 
 | 
| 
 | 
    47 echo -e "gene_ID\tstart_coord\tend_coord" > annotation 2>> script.log
 | 
| 
 | 
    48 cat dataWithoutHeader.sorted | awk '{print $1"\t"$2"\t"$3}' >> annotation 2>> script.log
 | 
| 
 | 
    49 
 | 
| 
 | 
    50 if [[ -s control.data ]]; then
 | 
| 
 | 
    51 	echo "kolumny nie sa w odpowiedniej kolejnosci" > error.log
 | 
| 
 | 
    52 	echo "" > count.matrix
 | 
| 
 | 
    53 	echo "" > annotation
 | 
| 
 | 
    54 else
 | 
| 
 | 
    55 	echo "" > error.log
 | 
| 
 | 
    56 fi
 |