annotate mutspecSplit.pl @ 3:14fe7238c6d7 draft

Uploaded
author iarc
date Thu, 28 Apr 2016 03:59:27 -0400
parents 8c682b3a7c5b
children 46a10309dfe2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
1 # !/usr/bin/perl
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
2
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
3 #-----------------------------------#
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
4 # Author: Vincent #
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
5 # Script: mutspecSplit.pl #
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
6 # Last update: 01/07/14 #
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
7 #-----------------------------------#
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
8
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
9
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
10 use strict;
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
11 use warnings;
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
12 use Getopt::Long;
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
13
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
14 our $file="";
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
15 our $column="";
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
16 our $path="";
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
17 our $key="";
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
18
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
19
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
20 GetOptions('file|f=s' =>\$file,
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
21 'key|k=s' =>\$key,
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
22 'column|i=s' =>\$column,
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
23 'path|p=s' =>\$path);
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
24
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
25
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
26 mkdir ("outputFiles") or die ("Erreur creation repertoire\n");
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
27 # print $file,"\n", $key,"\n", $column,"\n", $path,"\n"; exit;
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
28
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
29 my %tab;
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
30 if ($column==0) {$column++;}
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
31 $column--;
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
32
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
33 open(FILE, "$file") or die "cannot open $file\n";
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
34
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
35 $_=<FILE>; #skip headers
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
36 chomp;
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
37 my @line = split(/\t/,$_);
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
38 my $headers = join("\t", @line[0..($column-1),($column+1)..$#line]);
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
39
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
40 while(<FILE>){
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
41 chomp;
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
42 my @line = split(/\t/,$_);
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
43 #if (!exists($tab{$line[$column]})) { $tab{$line[$column]}=[]; }
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
44 #push( @{ $tab{$line[$column]} }, join("\t", @line[0..($column-1),($column+1)..$#line]) );
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
45 my $tmp = join("\t", @line[0..($column-1),($column+1)..$#line]) ;
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
46 my $id = $line[$column];
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
47 push( @{ $tab{$id} }, $tmp);
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
48 }
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
49
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
50
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
51 while( my ($name,$lines) = each(%tab) ) {
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
52 my $output="outputFiles/$name";
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
53 #my $output="primary_$key" . "_$name" . "_visible_tabular";
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
54 # my $output=$name;
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
55 open(FILE, ">$output") or die "cannot create file $output \n";
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
56 print FILE $headers."\n";
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
57 foreach my $line (@{$lines}){
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
58 print FILE "$line\n";
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
59 }
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
60 close FILE;
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
61 }
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
62
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
63 my $list=`ls outputFiles/*`;
8c682b3a7c5b Uploaded
iarc
parents:
diff changeset
64 print ($list);