annotate rgttable.pl @ 0:74c942b5f0da draft default tip

Uploaded
author jgarbe
date Wed, 27 Nov 2013 14:44:13 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
1 #!/usr/bin/perl -w
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
2
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
3 ###########################################################
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
4 # rgttable.pl
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
5 # John Garbe
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
6 # October 2013
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
7 #
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
8 # Read in a cuffdiff output file (any read_group_tracking file) and print out a file with
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
9 # tab-delimited columns: featureID, group1-sample1 fpkm, group1-sample2 fpkm, group2-sample1 fpkm, ...
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
10 #
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
11 ###########################################################
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
12
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
13 =head1 NAME
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
14
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
15 rgttable.pl - Read in a cuffdiff output file (any read_group_tracking file) and print out a file with
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
16 tab-delimited columns: featureID, group1-rep1 fpkm, group1-rep2 fpkm, group2-rep1 fpkm, group2-rep2 fpkm, etc.
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
17
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
18 =head1 SYNOPSIS
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
19
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
20 rgttable.pl [-c column] genes.read_group_tracking [output.txt]
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
21
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
22 =head1 DESCRIPTION
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
23
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
24 This script converts read group tracking files produced by Cuffdiff into a format useful
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
25 for importing into other programs. This works with the isoforms, genes, cds, and tss_groups
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
26 read group tracking files generated by cuffdiff
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
27
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
28 =cut
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
29
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
30 use Getopt::Std;
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
31
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
32 $usage = "USAGE: rgttable.pl [-c column_number] genes.read_group_tracking [output.txt]\n";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
33
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
34 die $usage if ($#ARGV < 0);
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
35
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
36 # parameters
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
37 getopts('c:', \%opts) or die "$usage\n";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
38 $column = $opts{'c'} || 7; # column to extract
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
39 $column--; # convert from 1-based index to 0-based index
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
40
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
41 # open up input file
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
42 open IFILE, "<$ARGV[0]" or die "cannot open input file $ARGV[0]\n";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
43 if ($#ARGV == 1) {
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
44 open OFILE, ">$ARGV[1]" or die "cannot open outputfile $ARGV[1]\n";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
45 } else {
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
46 open OFILE, ">-" or die "cannot open stdout\n";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
47 }
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
48
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
49 # open up output files - don't use this, write to STDOUT instead
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
50 # open OFILE, ">$ARGV[0].txt" or die "cannot open $ARGV[0].out\n";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
51
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
52 # run through the input file, which has these columns:
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
53 # tracking_id condition replicate raw_frags internal_scaled_frags external_scaled_frags FPKM effective_length status
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
54 $header = <IFILE>;
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
55 @line = split /\t/, $header;
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
56 # if an output file is specified, write to stdout for Galaxy compatibility
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
57 if ($#ARGV == 1) {
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
58 print STDOUT "Extracting column " . ($column+1) . ": $line[$column]\n";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
59 } else {
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
60 print STDERR "Extracting column " . ($column+1) . ": $line[$column]\n";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
61 }
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
62 while ($line = <IFILE>) {
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
63 chomp $line;
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
64 # $linecount++;
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
65 @line = split /\t/, $line;
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
66 $data{$line[0]}{$line[1]}{$line[2]} = $line[$column];
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
67 }
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
68
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
69 $header = 1;
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
70 # print out the data
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
71 for $feature (sort keys %data) {
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
72 if ($header) {
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
73 print OFILE "tracking_id";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
74 } else {
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
75 print OFILE "$feature";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
76 }
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
77 for $condition (sort keys %{ $data{$feature} }) {
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
78 for $replicate (sort keys %{ $data{$feature}{$condition} }) {
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
79 if ($header) {
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
80 print OFILE "\t$condition-$replicate";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
81 } else {
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
82 print OFILE "\t$data{$feature}{$condition}{$replicate}";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
83 }
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
84 }
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
85 }
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
86 print OFILE "\n";
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
87 $header = 0;
74c942b5f0da Uploaded
jgarbe
parents:
diff changeset
88 }