File: revcomp_fasta.pl

package info (click to toggle)
trinityrnaseq 2.6.6%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 346,416 kB
  • sloc: perl: 47,542; cpp: 20,209; java: 12,484; python: 2,766; sh: 1,665; makefile: 895; ansic: 90; xml: 83
file content (21 lines) | stat: -rwxr-xr-x 571 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env perl

use strict;
use warnings;

local $/ = ">";
while(<>){
	chomp;
	my $lineSepPos = index($_, "\n");
	my $header = substr($_,0,$lineSepPos);
	if($header){
		print(">", $header, "\n");
		my $sequence = reverse(substr($_,$lineSepPos));
		# see http://shootout.alioth.debian.org/u32/performance.php?test=revcomp#about
		# for ambiguity codes and translation
		$sequence =~ tr/ACGTUMRWSYKVHDBNacgtumrwsykvhdbn\n/TGCAAKYWSRMBDHVNtgcaakywsrmbdhvn/d;
		for(my $pos = 0; $pos < length($sequence);$pos += 60){
			print(substr($sequence, $pos, 60),"\n");
		}
	}
}