annotate scripts/MultifastaFromBlast.pl @ 1:5224b4d51065 tip

"planemo upload commit cb65588391944306ff3cb32a23e1c28f65122014-dirty"
author cstrittmatter
date Fri, 11 Mar 2022 15:52:43 -0500
parents 8be2feb96994
children
rev   line source
cstrittmatter@0 1 #!/usr/bin/env perl
cstrittmatter@0 2 use strict;
cstrittmatter@0 3 use warnings;
cstrittmatter@0 4 use English;
cstrittmatter@0 5
cstrittmatter@0 6 # Parse arguments
cstrittmatter@0 7 my ($inputs, $output) = @ARGV;
cstrittmatter@0 8 # Run program
cstrittmatter@0 9 unlink $output;
cstrittmatter@0 10 my @infiles = split( /,/, $inputs );
cstrittmatter@0 11 foreach(@infiles) {
cstrittmatter@0 12 transformFileContent($_, $output);
cstrittmatter@0 13 }
cstrittmatter@0 14
cstrittmatter@0 15 # read input file and write multifasta with sequence (forward or reverse complement)
cstrittmatter@0 16 sub transformFileContent {
cstrittmatter@0 17 my ($infile, $outfile) = @_;
cstrittmatter@0 18 open my $if, '<', $infile or die "Cannot open : $infile!";
cstrittmatter@0 19 open my $of, '>>', $outfile or die "Cannot open : $outfile!";
cstrittmatter@0 20 my @lines = <$if>;
cstrittmatter@0 21 close $if;
cstrittmatter@0 22 foreach(@lines) {
cstrittmatter@0 23 my @elems = split( /\t/, $_ );
cstrittmatter@0 24 print $of ">$elems[0]\n";
cstrittmatter@0 25 chomp $elems[2];
cstrittmatter@0 26 if ($elems[1] == 1) {
cstrittmatter@0 27 print $of "$elems[2]\n";
cstrittmatter@0 28 }
cstrittmatter@0 29 else {
cstrittmatter@0 30 my $revcomp = reverseComplement($elems[2]);
cstrittmatter@0 31 print $of "$revcomp\n";
cstrittmatter@0 32 }
cstrittmatter@0 33 }
cstrittmatter@0 34 close $of;
cstrittmatter@0 35 return 0;
cstrittmatter@0 36 }
cstrittmatter@0 37
cstrittmatter@0 38 # calculate reverse complement
cstrittmatter@0 39 sub reverseComplement {
cstrittmatter@0 40 my ($DNA) = @_;
cstrittmatter@0 41 my $revcom = reverse $DNA;
cstrittmatter@0 42 $revcom =~ tr/ACGTacgt/TGCAtgca/;
cstrittmatter@0 43 return $revcom;
cstrittmatter@0 44 }