Mercurial > repos > cstrittmatter > test_galtrakr_eurl_vtec_wgs_pt_23
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 } |