annotate cutWrapper.pl @ 0:34c29e183ef7 draft

Uploaded cut_columns tarball.
author devteam
date Tue, 04 Dec 2012 10:59:02 -0500
parents
children cec635fab700
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
1 #!/usr/bin/perl -w
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
2
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
3 use strict;
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
4 use warnings;
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
5
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
6 my @columns = ();
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
7 my $del = "";
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
8 my @in = ();
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
9 my @out = ();
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
10 my $command = "";
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
11 my $field = 0;
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
12
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
13 # a wrapper for cut for use in galaxy
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
14 # cutWrapper.pl [filename] [columns] [delim] [output]
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
15
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
16 die "Check arguments\n" unless @ARGV == 4;
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
17
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
18 $ARGV[1] =~ s/\s+//g;
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
19 foreach ( split /,/, $ARGV[1] ) {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
20 if (m/^c\d{1,}$/i) {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
21 push (@columns, $_);
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
22 $columns[@columns-1] =~s/c//ig;
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
23 }
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
24 }
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
25
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
26 die "No columns specified, columns are not preceded with 'c', or commas are not used to separate column numbers: $ARGV[1]\n" if @columns == 0;
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
27
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
28 my $column_delimiters_href = {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
29 'T' => q{\t},
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
30 'C' => ",",
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
31 'D' => "-",
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
32 'U' => "_",
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
33 'P' => q{\|},
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
34 'Dt' => q{\.},
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
35 'Sp' => q{\s+}
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
36 };
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
37
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
38 $del = $column_delimiters_href->{$ARGV[2]};
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
39
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
40 open (OUT, ">$ARGV[3]") or die "Cannot create $ARGV[2]:$!\n";
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
41 open (IN, "<$ARGV[0]") or die "Cannot open $ARGV[0]:$!\n";
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
42
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
43 while (my $line=<IN>) {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
44 if ($line =~ /^#/) {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
45 #Ignore comment lines
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
46 } else {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
47 chop($line);
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
48 @in = split(/$del/, $line);
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
49 foreach $field (@columns) {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
50 if (defined($in[$field-1])) {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
51 push(@out, $in[$field-1]);
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
52 } else {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
53 push(@out, ".");
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
54 }
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
55 }
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
56 print OUT join("\t",@out), "\n";
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
57 @out = ();
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
58 }
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
59 }
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
60
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
61 #while (<IN>) {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
62 # chop;
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
63 # @in = split /$del/;
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
64 # foreach $field (@columns) {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
65 # if (defined($in[$field-1])) {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
66 # push(@out, $in[$field-1]);
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
67 # } else {
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
68 # push(@out, ".");
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
69 # }
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
70 # }
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
71 # print OUT join("\t",@out), "\n";
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
72 # @out = ();
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
73 #}
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
74 close IN;
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
75
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
76 close OUT;
34c29e183ef7 Uploaded cut_columns tarball.
devteam
parents:
diff changeset
77