File: ConvertDatFasta.pl

package info (click to toggle)
ampliconnoise 1.29-10
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 6,040 kB
  • sloc: ansic: 18,080; sh: 2,899; perl: 2,089; makefile: 235
file content (39 lines) | stat: -rwxr-xr-x 751 bytes parent folder | download | duplicates (9)
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
#!/usr/bin/perl
use POSIX;
my $flowSeq = "TACG";

@datFiles = @ARGV;

foreach $datFile (@datFiles){
	open (DATFILE, $datFile) or die "Can't open $datFile\n";
	$line = <DATFILE>;
	while($line = <DATFILE>){
		@tokens = split(/ /,$line);

		$id = shift(@tokens);
#		print "@tokens\n";
		my $length = shift(@tokens);
		my $seq = &flowToSeq($length, @tokens);
		$seq =~ s/^TCAG//;
		print ">$id\n$seq\n";
	}
	close(DATFILE);
}

sub flowToSeq()
{
    my ($length, @flowgram) = @_;
    my $retSeq = "";

    for(my $i = 0; $i < $length; $i++){
        my $signal = floor($flowgram[$i] + 0.5);
        my $base   = substr($flowSeq, $i % 4, 1);

        for(my $j = 0; $j < $signal; $j++){
            $retSeq .= $base;
        }
    }

    return $retSeq;
}