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