A utility function to read ms output
Usage
read.ms.output(
msout,
is.file = TRUE,
xpose = TRUE,
verbose = TRUE,
outfile = NULL,
outfileonly = FALSE
)Arguments
- msout
an ms output.
- is.file
a flag indicating ms output as a system file or an R object.
- xpose
a flag to obtain the tranposed format as it is (when TRUE).
- verbose
when TRUE, display on screen every 1000 for large nsam.
- outfile
to save the haplotypes in a tab-delimited ASCII file.
- outfileonly
to reset gametes to NA when nsam/nreps is very large and is useful with outfile.
Value
The returned value is a list storing the results:
call system call to ms.
seed random number seed to ms.
nsam number of copies of the locus in each sample.
nreps the number of independent samples to generate.
segsites a vector of the numbers of segregating sites.
times vectors of time to most recent ancester (TMRCA) and total tree lengths.
positions positions of polymorphic sites on a scale of (0,1).
gametes a list of haplotype arrays.
probs the probability of the specified number of segregating sites given the genealogical history of the sample and the value to -t option.
Details
This function reads in the output of the program ms, a program to generate samples under a variety of neutral models.
The argument indicates either a file name or a vector of character strings, one string for each line of the output of ms. As with the second case, it is appropriate with system(,intern=TRUE), see example below.
References
Hudson RR (2002). “Generating samples under a Wright-Fisher neutral model of genetic variation.” Bioinformatics, 18(2), 337-8. doi:10.1093/bioinformatics/18.2.337 .
Press WH, SA Teukolsky, WT Vetterling, BP Flannery (1992). Numerical Recipes in C. Cambridge University Press, Cambridge.
Examples
if (FALSE) { # \dontrun{
# Assuming ms is on the path
system("ms 5 4 -s 5 > ms.out")
msout1 <- read.ms.output("ms.out")
system("ms 50 4 -s 5 > ms.out")
msout2 <- read.ms.output("ms.out",outfile="out",outfileonly=TRUE)
msout <- system("ms 5 4 -s 5 -L", intern=TRUE)
msout3 <- read.ms.output(msout,FALSE)
} # }