cstrittmatter@0: #!/usr/bin/env perl cstrittmatter@0: use strict; cstrittmatter@0: use warnings; cstrittmatter@0: use English; cstrittmatter@0: cstrittmatter@0: # Parse arguments cstrittmatter@0: my ($inputs, $output) = @ARGV; cstrittmatter@0: # Run program cstrittmatter@0: unlink $output; cstrittmatter@0: my @infiles = split( /,/, $inputs ); cstrittmatter@0: foreach(@infiles) { cstrittmatter@0: transformFileContent($_, $output); cstrittmatter@0: } cstrittmatter@0: cstrittmatter@0: # read input file and write multifasta with sequence (forward or reverse complement) cstrittmatter@0: sub transformFileContent { cstrittmatter@0: my ($infile, $outfile) = @_; cstrittmatter@0: open my $if, '<', $infile or die "Cannot open : $infile!"; cstrittmatter@0: open my $of, '>>', $outfile or die "Cannot open : $outfile!"; cstrittmatter@0: my @lines = <$if>; cstrittmatter@0: close $if; cstrittmatter@0: foreach(@lines) { cstrittmatter@0: my @elems = split( /\t/, $_ ); cstrittmatter@0: print $of ">$elems[0]\n"; cstrittmatter@0: chomp $elems[2]; cstrittmatter@0: if ($elems[1] == 1) { cstrittmatter@0: print $of "$elems[2]\n"; cstrittmatter@0: } cstrittmatter@0: else { cstrittmatter@0: my $revcomp = reverseComplement($elems[2]); cstrittmatter@0: print $of "$revcomp\n"; cstrittmatter@0: } cstrittmatter@0: } cstrittmatter@0: close $of; cstrittmatter@0: return 0; cstrittmatter@0: } cstrittmatter@0: cstrittmatter@0: # calculate reverse complement cstrittmatter@0: sub reverseComplement { cstrittmatter@0: my ($DNA) = @_; cstrittmatter@0: my $revcom = reverse $DNA; cstrittmatter@0: $revcom =~ tr/ACGTacgt/TGCAtgca/; cstrittmatter@0: return $revcom; cstrittmatter@0: }