annotate countDiff.pl @ 1:4f6952e0af48 default tip

CREST - add crest.loc.sample
author Jim Johnson <jj@umn.edu>
date Wed, 08 Feb 2012 16:08:01 -0600
parents acc8d8bfeb9a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
1 #!/nfs_exports/apps/64-bit/gnu-apps/perl5.8.9/bin/perl -w
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
2 use strict;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
3 use Carp;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
4 use Getopt::Long;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
5 use English;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
6 use Pod::Usage;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
7 use Data::Dumper;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
8 use Bio::DB::Sam;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
9 use Bio::DB::Sam::Constants;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
10 use Bio::SearchIO;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
11 use Bio::SeqIO;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
12 use File::Temp qw/ tempfile tempdir /;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
13 use File::Spec;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
14 use File::Path;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
15 use File::Copy;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
16 use File::Basename;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
17 use Cwd;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
18
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
19 # bam related variables
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
20 # input/output
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
21 my($file_d, $file_g);
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
22
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
23 my ( $help, $man, $version, $usage );
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
24 my $optionOK = GetOptions(
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
25 'd|diagnostic=s' => \$file_d,
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
26 'g|germline=s' => \$file_g,
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
27 'h|help|?' => \$help,
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
28 'man' => \$man,
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
29 'usage' => \$usage,
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
30 'v|version' => \$version,
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
31 );
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
32
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
33 pod2usage(-verbose=>2) if($man or $usage);
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
34 pod2usage(1) if($help or $version );
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
35
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
36 my $start_dir = getcwd;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
37
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
38 # figure out input file
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
39 if(!$file_d or !$file_g ) {
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
40 croak "you need specify diagnostic and germline input file";
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
41 }
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
42 my ( @cover_D, @cover_diff);
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
43 for( my $i = 1; $i < 1000; $i++) {
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
44 $cover_D[$i] = 0;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
45 $cover_diff[$i] = 0;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
46 }
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
47 my($prefix, $path, $suffix) = fileparse($file_d);
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
48 my $diff_file = $prefix . ".somatic.cover";
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
49 $diff_file = File::Spec->catfile($path, $diff_file);
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
50 open my $SOMATIC, ">$diff_file" or croak "can't open $diff_file:$OS_ERROR";
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
51 open my $IN_D, "<$file_d" or croak "can't open $file_d:$OS_ERROR";
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
52 open my $IN_G, "<$file_g" or croak "can't open $file_g:$OS_ERROR";
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
53 my %g_sclip;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
54 while( my $line = <$IN_G> ) {
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
55 chomp $line;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
56 my ($chr, $pos, $ort, $cover) = split /\t/, $line;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
57 $g_sclip{$chr} = {} if(!exists($g_sclip{$chr}));
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
58 $g_sclip{$chr}->{$pos} = $ort;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
59 }
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
60 close($IN_G);
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
61 while( my $line = <$IN_D> ) {
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
62 chomp $line;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
63 my ($chr, $pos, $ort, $cover) = split /\t/, $line;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
64 $cover_D[$cover]++;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
65 next if(exists ($g_sclip{$chr}->{$pos}) && $g_sclip{$chr}->{$pos} eq $ort);
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
66 $cover_diff[$cover]++;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
67 print $SOMATIC $line, "\n";
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
68 }
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
69 close($IN_D);
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
70 close $SOMATIC;
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
71 for( my $i = 1; $i < 1000; $i++) {
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
72 print join("\t", $i, $cover_D[$i], $cover_diff[$i]), "\n";
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
73 }
acc8d8bfeb9a Uploaded
jjohnson
parents:
diff changeset
74