#!/usr/bin/perl use warnings; use strict; chomp(my $input = ); open(INPUT, "$input") or die "Cannot open file: $!"; chomp(my $number_positions = ); chomp(my $patient_number = ); chomp(my $output = ); open(OUTPUT, ">$output.txt") or die "Cannot open file: $!"; my @prettybase = ; close(INPUT); for my $k (0 .. $number_positions - 1) { my (%base1, %base2); for my $i (0 .. $patient_number) { my ($position, $patient, $letter1, $letter2) = split (/\t/, $prettybase[$i]); $base1{uc $letter1}++; $base2{uc $letter2}++; } my $total1 = $base1{A} + $base1{C} + $base1{T} + $base1{G} + $base1{N}; my %percent1 = map { $_ => ( $base1{$_} * 100) / $total1 } qw(A C T G N); my $total2 = $base2{A} + $base2{C} + $base2{T} + $base2{G} + $base2{N}; my %percent2 = map { $_ => ( $base2{$_} * 100) / $total2 } qw(A C T G N); print OUTPUT "Position\#\: $patient\n"; print OUTPUT "\tAllele 1 Allele 1 percentage\n"; for(qw(A C T G N)) { print OUTPUT "$_:\t$base1{$_}\t$percent1{$_}\%\n\n"; } print OUTPUT "\tAllele 2 Allele 2 percentage\n"; for(qw(A C T G N)) { print OUTPUT "$_:\t$base2{$_}\t$percent2{$_}\%\n\n"; } } close(OUTPUT);