annotate falco-filter-report @ 67:61c0e184e50d draft

Uploaded
author stef
date Fri, 27 Feb 2015 08:56:05 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
67
61c0e184e50d Uploaded
stef
parents:
diff changeset
1 #!/usr/bin/perl
61c0e184e50d Uploaded
stef
parents:
diff changeset
2 use strict;
61c0e184e50d Uploaded
stef
parents:
diff changeset
3 use Cwd 'abs_path';
61c0e184e50d Uploaded
stef
parents:
diff changeset
4 use Getopt::Long;
61c0e184e50d Uploaded
stef
parents:
diff changeset
5 use File::Basename;
61c0e184e50d Uploaded
stef
parents:
diff changeset
6
61c0e184e50d Uploaded
stef
parents:
diff changeset
7 my $absPath = abs_path($0);
61c0e184e50d Uploaded
stef
parents:
diff changeset
8 my $dir = dirname($absPath);
61c0e184e50d Uploaded
stef
parents:
diff changeset
9 my $lib = "$dir/../lib/";
61c0e184e50d Uploaded
stef
parents:
diff changeset
10
61c0e184e50d Uploaded
stef
parents:
diff changeset
11 my $vcf2tsv = "$lib/perl/vcf2tsv.pl";
61c0e184e50d Uploaded
stef
parents:
diff changeset
12 my $spliteff = "$lib/perl/splitEff.pl";
61c0e184e50d Uploaded
stef
parents:
diff changeset
13 my $filter = "$lib/perl/filter.pl";
61c0e184e50d Uploaded
stef
parents:
diff changeset
14 my $plotPng = "$lib/R/plotsPng.R";
61c0e184e50d Uploaded
stef
parents:
diff changeset
15 my $mkReport = "$lib/perl/mkHtmlReportGalaxy.pl";
61c0e184e50d Uploaded
stef
parents:
diff changeset
16
61c0e184e50d Uploaded
stef
parents:
diff changeset
17 my $locifilt = "$dir/../ref/filters/filter.tsv";
61c0e184e50d Uploaded
stef
parents:
diff changeset
18 my $manifest = "$dir/../ref/TSACP/TruSeq_Amplicon_Cancer_Panel_Manifest_AFP1_PN15032433.txt";
61c0e184e50d Uploaded
stef
parents:
diff changeset
19
61c0e184e50d Uploaded
stef
parents:
diff changeset
20 my $canonicals = "$dir/../ref/TSACP/canonicals.tsv";
61c0e184e50d Uploaded
stef
parents:
diff changeset
21 my $clinvar = "$dir/../ref/filters/clinvar_00-latest.f.vcf";
61c0e184e50d Uploaded
stef
parents:
diff changeset
22 my $cosmic = "$dir/../ref/filters/CosmicCodingMuts_v64_26032013_noLimit_wgs.f.vcf";
61c0e184e50d Uploaded
stef
parents:
diff changeset
23 my $cosmicNC = "$dir/../ref/filters/CosmicNonCodingVariants_v64_26032013_noLimit_wgs.f.vcf";
61c0e184e50d Uploaded
stef
parents:
diff changeset
24
61c0e184e50d Uploaded
stef
parents:
diff changeset
25 my $base = undef;
61c0e184e50d Uploaded
stef
parents:
diff changeset
26 my $vcf = undef;
61c0e184e50d Uploaded
stef
parents:
diff changeset
27 my $vcfOther = undef;
61c0e184e50d Uploaded
stef
parents:
diff changeset
28 my $noFilt = undef;
61c0e184e50d Uploaded
stef
parents:
diff changeset
29 my $noPlot = undef;
61c0e184e50d Uploaded
stef
parents:
diff changeset
30
61c0e184e50d Uploaded
stef
parents:
diff changeset
31 my $qc_ann_qual_txt = undef;
61c0e184e50d Uploaded
stef
parents:
diff changeset
32 my $qc2_ann_txt = undef
61c0e184e50d Uploaded
stef
parents:
diff changeset
33 my $qc_targets_txt = undef;
61c0e184e50d Uploaded
stef
parents:
diff changeset
34
61c0e184e50d Uploaded
stef
parents:
diff changeset
35 GetOptions (
61c0e184e50d Uploaded
stef
parents:
diff changeset
36 "vcf=s" => \$vcf,
61c0e184e50d Uploaded
stef
parents:
diff changeset
37 "vcfOther=s" => \$vcfOther,
61c0e184e50d Uploaded
stef
parents:
diff changeset
38 "output=s" => \$base,
61c0e184e50d Uploaded
stef
parents:
diff changeset
39 "canonicals=s" => \$canonicals,
61c0e184e50d Uploaded
stef
parents:
diff changeset
40 "clinvar=s" => \$clinvar,
61c0e184e50d Uploaded
stef
parents:
diff changeset
41 "cosmic=s" => \$cosmic,
61c0e184e50d Uploaded
stef
parents:
diff changeset
42 "cosmicNC=s" => \$cosmicNC,
61c0e184e50d Uploaded
stef
parents:
diff changeset
43 "noFilt" => \$noFilt,
61c0e184e50d Uploaded
stef
parents:
diff changeset
44 "noPlot" => \$noPlot,
61c0e184e50d Uploaded
stef
parents:
diff changeset
45 "qc_ann_qual_txt=s" => \$qc_ann_qual_txt,
61c0e184e50d Uploaded
stef
parents:
diff changeset
46 "qc2_ann_txt=s" => \$qc2_ann_txt,
61c0e184e50d Uploaded
stef
parents:
diff changeset
47 "qc_targets_txt=s" => \$qc_targets_txt,
61c0e184e50d Uploaded
stef
parents:
diff changeset
48 )
61c0e184e50d Uploaded
stef
parents:
diff changeset
49 or die("Error in command line arguments\n");
61c0e184e50d Uploaded
stef
parents:
diff changeset
50
61c0e184e50d Uploaded
stef
parents:
diff changeset
51 ## sanity checks
61c0e184e50d Uploaded
stef
parents:
diff changeset
52 die( "No base name provided [-output]\n" ) unless defined($base) and $base ne '';
61c0e184e50d Uploaded
stef
parents:
diff changeset
53 die( "No VCF file provided [-vcf]\n" ) unless defined($vcf) and -f $vcf;
61c0e184e50d Uploaded
stef
parents:
diff changeset
54 die( "Missing input [-qc_ann_qual_txt]\n" ) unless defined($qc_ann_qual_txt) and -f $qc_ann_qual_txt;
61c0e184e50d Uploaded
stef
parents:
diff changeset
55 die( "Missing input [-qc2_ann_txt]\n" ) unless defined($qc2_ann_txt) and -f $qc2_ann_txt;
61c0e184e50d Uploaded
stef
parents:
diff changeset
56 die( "Missing input [-qc_targets_txt]\n" ) unless defined($qc_targets_txt) and -f $qc_targets_txt;
61c0e184e50d Uploaded
stef
parents:
diff changeset
57 die( "Required file does not exists [$canonicals]\n" ) unless -f $canonicals;
61c0e184e50d Uploaded
stef
parents:
diff changeset
58 die( "Required file does not exists [$clinvar]\n" ) unless -f $clinvar;
61c0e184e50d Uploaded
stef
parents:
diff changeset
59 die( "Required file does not exists [$cosmic]\n" ) unless -f $cosmic;
61c0e184e50d Uploaded
stef
parents:
diff changeset
60 die( "Required file does not exists [$cosmicNC]\n" ) unless -f $cosmicNC;
61c0e184e50d Uploaded
stef
parents:
diff changeset
61
61c0e184e50d Uploaded
stef
parents:
diff changeset
62
61c0e184e50d Uploaded
stef
parents:
diff changeset
63 ## Rscript check
61c0e184e50d Uploaded
stef
parents:
diff changeset
64 my $rscript = `which Rscript`;
61c0e184e50d Uploaded
stef
parents:
diff changeset
65 chomp $rscript;
61c0e184e50d Uploaded
stef
parents:
diff changeset
66 if ($rscript !~ /Rscript$/) {
61c0e184e50d Uploaded
stef
parents:
diff changeset
67 print STDERR "No Rscript present in PATH\n";
61c0e184e50d Uploaded
stef
parents:
diff changeset
68 exit 1;
61c0e184e50d Uploaded
stef
parents:
diff changeset
69 }
61c0e184e50d Uploaded
stef
parents:
diff changeset
70
61c0e184e50d Uploaded
stef
parents:
diff changeset
71 ## FILTERING
61c0e184e50d Uploaded
stef
parents:
diff changeset
72 print STDOUT localtime() . " [$$] converting vcf to tsv\n";
61c0e184e50d Uploaded
stef
parents:
diff changeset
73 system( "$vcf2tsv $vcf > $base\.tsv" );
61c0e184e50d Uploaded
stef
parents:
diff changeset
74
61c0e184e50d Uploaded
stef
parents:
diff changeset
75 print STDOUT localtime() . " [$$] splitting vcf columns\n";
61c0e184e50d Uploaded
stef
parents:
diff changeset
76 system( "$spliteff $base\.tsv Falco >> $base\.res\.tsv" );
61c0e184e50d Uploaded
stef
parents:
diff changeset
77
61c0e184e50d Uploaded
stef
parents:
diff changeset
78 if ( defined($vcfOther) ){
61c0e184e50d Uploaded
stef
parents:
diff changeset
79 print STDOUT localtime() . " [$$] converting vcf to tsv\n";
61c0e184e50d Uploaded
stef
parents:
diff changeset
80 system( "$vcf2tsv $vcf > $base\.Other\.tsv" );
61c0e184e50d Uploaded
stef
parents:
diff changeset
81 print STDOUT localtime() . " [$$] splitting vcf columns\n";
61c0e184e50d Uploaded
stef
parents:
diff changeset
82 system( "$spliteff $base\.Other\.tsv Other >> $base\.res\.tsv" );
61c0e184e50d Uploaded
stef
parents:
diff changeset
83 }
61c0e184e50d Uploaded
stef
parents:
diff changeset
84
61c0e184e50d Uploaded
stef
parents:
diff changeset
85 print STDOUT localtime() . " [$$] filtering data\n";
61c0e184e50d Uploaded
stef
parents:
diff changeset
86 system( "$filter $base\.res\.tsv $canonicals $clinvar $cosmic $cosmicNC > $base\.res\.filtered\.tsv" );
61c0e184e50d Uploaded
stef
parents:
diff changeset
87
61c0e184e50d Uploaded
stef
parents:
diff changeset
88 ## PLOTTING
61c0e184e50d Uploaded
stef
parents:
diff changeset
89 print STDOUT localtime() . " [$$] Creating plots\n";
61c0e184e50d Uploaded
stef
parents:
diff changeset
90 system( "Rscript $plotPng $qc_ann_qual_txt $qc2_ann_txt $qc_targets_txt $base\.res\.filtered\.tsv $clinvar $locifilt $base" );
61c0e184e50d Uploaded
stef
parents:
diff changeset
91
61c0e184e50d Uploaded
stef
parents:
diff changeset
92 ## REPORTING
61c0e184e50d Uploaded
stef
parents:
diff changeset
93 print STDOUT localtime() . " [$$] Creating HTML report\n";
61c0e184e50d Uploaded
stef
parents:
diff changeset
94 system( "perl $mkReport $base" );