Mash
A module to read `mash info` output and transform it
use strict; use warnings; use Mash; # Sketch all fastq files into one mash file. # Mash sketching is not implemented in this module. system("mash sketch *.fastq.gz > all.msh"); die if $?; # Read the mash file. my $msh = Mash->new("all.msh"); # All-vs-all distances my $distHash = $msh->dist($msh); # Read a mash file, write it to a json-formatted file my $msh2 = Mash->new("all.msh"); $msh2->writeJson("all.json"); # Read the json file my $mashJson = Mash->new("all.json"); my $dist = $msh2->dist($mashJson); # yields a zero distance
This is a module to read mash files produced by the Mash executable. For more information on Mash, see mash.readthedocs.org. This module is capable of reading mash files. Future versions will read/write mash files.
Create a new instance of Mash. One object per set of files.
Arguments: Sketch filename (valid types/extensions are .msh, .json, .json.gz) Hash of options (none so far) Returns: Mash object
Changes which file is used in the object and updates internal object information. This method is ordinarily used internally only.
Arguments: One mash file Returns: self
Arguments: One JSON file describing a Mash sketch Returns: self
Writes contents to a file in JSON format
Arguments: One filename Returns: self
Returns a hash describing distances between sketches represented by this object and another object. If there are multiple sketches per object, then all sketches in this object will be compared against all sketches in the other object.
Arguments: One Mash object Returns: reference to a hash of hashes. Each value is a number.
Aliases: distance(), mashDist()
Returns the number of sketches in common and the total number of sketches between two lists. The return type is an array of two elements. This function is used internally with $msh->dist and assumes that the hashes are already sorted.
Arguments: A list of integers A list of integers Returns: (countOfInCommon, totalNumber) Example: my $R1 = [1,2,3]; my $R2 = [1,2,4]; my($common, $total) = Mash::raw_mash_distance($R1,$R2); # $common => 2 # $total => 3
Fixes a mash sketch if it is broken at all. For now this just sorts hashes but this subroutine could contain more fixes in the future.
Arguments: None Returns: $self
MIT license.
Author: Lee Katz <lkatz@cdc.gov>
For additional help, go to https://github.com/lskatz/perl-mash
CPAN module at http://search.cpan.org/~lskatz/perl-mash
To install Mash, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mash
CPAN shell
perl -MCPAN -e shell install Mash
For more information on module installation, please visit the detailed CPAN module installation guide.