Assaf Gordon
and 1 contributors

NAME

Data::Random::Nucleotides - Generate random nucleotide strings.

VERSION

version 0.1

SYNOPSIS

    use Data::Random::Nucleotides qw/:all/;

    # Generate a string of 200 random A/C/G/T characters.
    $nucs = rand_nuc ( size => 200 );

    # Generate a string of random A/C/G/T between 20 and 500 characters.
    $nucs = rand_nuc ( min => 20, max => 500 );

    # Generate a string of 30 random A/C/G/T/N characters.
    $nucs = rand_nuc ( size => 30, N=>1 );

    # Generate a multi-lined string of 500 random A/C/G/T/N characters.
    # The 500 characters will be split into lines of 70 characters each.
    $nucs = rand_wrapped_nuc ( size => 500 );

    # Generate a string containing a single FASTA-like sequence text.
    $fasta = rand_fasta ( size => 200 ) ;

DESCRIPTION

This module is a thin wrapper around Data::Random, providing utility functions to generate nucleotide sequence strings and FASTA-looking strings.

nucleotide strings contain only A/C/G/T (and possibly N) characters. FASTA strings are multi-lined nucleotide strings, with the first line containing a sequence id (see http://en.wikipedia.org/wiki/FASTA_format) .

METHODS

rand_nuc()

Returns a string of random nucleotides.

See rand_set in Data::Random for possible parameters (e.g. size, min, max).

If N is set, N will be a possible nucleoide. Otherwise - only A/C/G/T will be returned.

rand_wrapped_nuc()

Returns a multi-lined string of random nucleotides.

See rand_nuc for all possible parameters.

The returned string will be broken into lines of 70 characeters each.

rand_fasta()

Returns a random FASTA string.

First line begins with a > prefix, and a random sequence ID (alphanumeric).

The rest of the lines are random nucleotide strings, wrapped at 70 characters.

AUTHOR

Assaf Gordon, <gordon at cshl.edu>

TODO

Finer control over nucleotide composition (currently: completely random)
Generate FASTQ files
Support lower-case nucleotides
generate amino-acid codes

BUGS

Please report any bugs or feature requests to https://github.com/agordon/Data-Random-Nucleotides/issues

SEE ALSO

BioPerl provides similar functionality http://www.bioperl.org/wiki/Random_sequence_generation, but requires installing the BioPerl module.

LICENSE AND COPYRIGHT

Copyright 2012 Assaf Gordon.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.