@@ -20,6 +20,7 @@ my $help = 0;
2020my $version = 0;
2121my $gauchian_tsv ;
2222my $annotated_tsv ;
23+ my $sample_count_tsv ;
2324
2425GetOptions (" i|input=s" => \$gauchian_tsv ,
2526 " o|output=s" => \$annotated_tsv ,
@@ -44,12 +45,15 @@ if (!defined($gauchian_tsv) || $gauchian_tsv eq "") {
4445 exit ;
4546}
4647
48+ my $input_filename = basename($gauchian_tsv );
49+ $input_filename =~ s /\. [^.]+$// ;
4750if (!defined ($annotated_tsv ) || $annotated_tsv eq " " ) {
48- my $input_filename = basename($gauchian_tsv );
49- $input_filename =~ s /\. [^.]+$// ;
5051 $annotated_tsv = $input_filename . " .annotated.tsv" ;
5152}
5253
54+ $sample_count_tsv = $annotated_tsv ;
55+ $sample_count_tsv =~ s /\. tsv$/ .counts.tsv/ ;
56+
5357my $transvar_path = ` which transvar` ;
5458chomp ($transvar_path );
5559
@@ -92,9 +96,9 @@ while(my $rec=<TSV>){
9296}
9397$pm -> wait_all_children;
9498
95- my $absolute_path = abs_path($annotated_tsv );
96-
97- print " Output written to $absolute_path \n " ;
99+ my $absolute_path_tsv = abs_path($annotated_tsv );
100+ print_count( $absolute_path_tsv , $sample_count_tsv );
101+ print " Output written to\n $absolute_path_tsv \n $sample_count_tsv \n " ;
98102
99103sub rev_annotate {
100104 my ($var ,$rec ) = (@_ );
@@ -117,4 +121,36 @@ sub print_help {
117121 print (" gauchian_enrich --input or -i <gauchian_tsv> [--output or -o <output_file_with_path>]\n\n " );
118122 print (" Example:\n " );
119123 print (" gauchian_enrich --input example/gauchian.output.tsv --output example/gauchian.enriched.output.tsv\n " );
124+ }
125+
126+ sub print_count {
127+ my ($ann ,$countfile ) = (@_ );
128+ my %variant_map ;
129+ open (ANN," $ann " ) or die " can't open the annotation table\n " ;
130+ my $ann_header =<ANN>; chomp $ann_header ;
131+ while (my $rec =<ANN>){
132+ my @tmp = split (" \t " ,$rec );
133+ my @coordinates ;
134+ if ($tmp [12]){
135+ @coordinates = split (" /" ,$tmp [12]);
136+ }
137+ if ($coordinates [-1]){
138+ push @{$variant_map {$coordinates [-1]}},$tmp [0];
139+ }
140+ if ($tmp [5]=~ m / RecNciI/ ){
141+ push @{$variant_map {$tmp [5]}},$tmp [0];
142+ }
143+ if ( $tmp [3] =~ / ^\d +$ / && $tmp [3] != 4 ) {
144+ my $cn_key = " CN(GBA+GBAP1) = " .$tmp [3];
145+ push @{$variant_map {$cn_key }},$tmp [0];
146+ }
147+ }
148+ open (CN," >$countfile " ) or die " can't write to $countfile " ;
149+ print CN " Variant\t Sample_count\t Sample\n " ;
150+ foreach my $var (sort keys %variant_map ){
151+ my @ids = @{$variant_map {$var }};
152+ my %seen ;
153+ my @uniq_vars = grep { $_ ne ' None' && !$seen {$_ }++ } @ids ;
154+ print CN " $var \t " .scalar (@uniq_vars )." \t " .join (" ," ,sort @uniq_vars )." \n " ;
155+ }
120156}
0 commit comments