Mercurial > repos > fubar > microsatbed
diff seqrequester/src/tests/summarizeTest.pl @ 1:1085e094cf5f draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/microsatbed commit 7ceb6658309a7ababe622b5d92e729e5470e22f0-dirty
author | fubar |
---|---|
date | Sat, 13 Jul 2024 12:39:06 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seqrequester/src/tests/summarizeTest.pl Sat Jul 13 12:39:06 2024 +0000 @@ -0,0 +1,61 @@ +#!/usr/bin/env perl +# +# Generates a FASTA with sequence of a known length, to test +# `seqrequester summarize`. +# + +use strict; + +my $prefix = shift @ARGV; +my @lengths; +my $tLength = 0; + +die "usage: $0 output-prefix\n" if ($prefix eq ""); + +my $seqidx = "aaaa"; +my $seqnum = "000000"; + +open(F, "> $prefix.fasta"); +for (my $n=0; $n < 100000; $n++) { + my $small = rand(1); + my $lseed = rand(1); + my $length; + + if ($small < 0.0000) { + $length = int($lseed * 128 * 1048576) + 128 * 1048576; + } + elsif ($small < 0.9) { + $length = int($lseed * 30) + 1; + } + else { + $length = int($lseed * 1024) + 1024; + } + + push @lengths, $length; + $tLength += $length; + + my $rem = $length % 10; + + my $seq = "$seqidx$seqnum"; $seqidx++; + + print F ">", $n+1, "\n"; + while ($length > 0) { + print F $seq; + $seq++; + $length -= 5; + } + print F "z" x $rem; + print F "\n"; + +} +close(F); + +open(F, "> $prefix.lengths"); +foreach my $l (@lengths) { + print F "$l\n"; +} +close(F); + +print STDERR "Wrote ", scalar(@lengths), " sequences with total length $tLength.\n"; + +exit(0);