\name{kmer.freq} \alias{kmer.freq} \title{Measuring positional kmer frequencies} \description{ Given a sample of sequences and corresponding read counts, produce a table giving the position kmer frequencies relative to read starts } \usage{kmer.freq(seqs, counts, L = 50, R = 50, k = 1)} \arguments{ \item{seqs}{a list of DNAString objects.} \item{counts}{a list of numeric vectors.} \item{L}{how many positions to the left of the read start to consider} \item{R}{how many positions to the right of the read start to consider} \item{k}{the size of each kmer} } \details{ Sequences and read counts are used to produce a table of aggregate kmer frequencies for each position relative to the read start. The position on which the read starts is numbered 0, positions to the left of the read are negative, and those to the right are positive. The sequences and counts can be generated with the provided functions \code{scanFa} and \code{\link{count.reads}}, respectively. The reverse complement of sequences on the negative strand obtained from \code{scanFa} should be used. To properly visualize bias a relatively large random sample of intervals should be generated. } \value{ A data frame is returned with columns \code{pos}, \code{seq}, and \code{freq}. Where \code{pos} gives the position relative to te read start, \code{seq} gives the kmer, and \code{freq} gives the frequency of that kmer. } \author{ Daniel Jones \email{dcjones@cs.washington.edu} } \seealso{ \code{\link{count.reads}} } \examples{ library(Rsamtools) reads_fn <- system.file( "extra/example.bam", package = "seqbias" ) ref_fn <- system.file( "extra/example.fa", package = "seqbias" ) I <- GRanges( c('seq1'), IRanges( c(1), c(5000) ), strand = c('-') ) ref_f <- FaFile( ref_fn ) open.FaFile( ref_f ) seqs <- scanFa( ref_f, I ) neg_idx <- as.logical( I@strand == '-' ) seqs[neg_idx] <- reverseComplement( seqs[neg_idx] ) counts <- count.reads( reads_fn, I ) freqs <- kmer.freq(seqs, counts, L = 30, R = 30, k = 2) }