File: fastaSample.pl

package info (click to toggle)
snpeff 5.2.f%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 701,384 kB
  • sloc: java: 62,547; perl: 2,279; sh: 1,185; python: 744; xml: 507; makefile: 50
file content (41 lines) | stat: -rwxr-xr-x 797 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/perl

#---
# Initialize parameters
#---
$sampleStart = $ARGV[0];
$sampleEnd = $ARGV[1];
if(( $ARGV[0] eq '' ) || ($ARGV[1] eq ''))	{ die "Usage: fastaSample sampleStart sampleEnd\n"; }

$sampleStart--;
$sampleEnd--;
$sampleLen = $sampleEnd - $sampleStart + 1;

#---
# Read fasta file
#---
for($lineNum=0 ; $l = <STDIN> ; $lineNum++ ) {
	if( $l =~/^>/ ) {
		# Sample if not empty
		if( $seq ne "" ) { 
			$s = substr( $seq, $sampleStart, $sampleLen);
			print "$s\n";
		}
		# New sequence
		$seq = "";
	} else {
		chomp($l);
		$seq .= $l;
	}
}

# Sample if not empty
if( $seq ne "" ) { 
	$s = substr( $seq, $sampleStart, $sampleLen);
	print "$s\n";
}

$len = length($seq);
print STDERR "Lines: $lineNum\n";
print STDERR "Sequence size: $len\n";
print STDERR "Sample size: $sampleLen\n";