\name{gsnap-methods}
\docType{methods}
\alias{gsnap-methods}
\alias{gsnap,character,character_OR_NULL,GsnapParam-method}
\alias{gsnap}

\title{Align a Set of Reads Using the GSNAP Aligner}

\description{
Given a set of alignments, align them to a genome using the GSNAP
algorithm. The GSNAP algorithm contains a number of features making it
a very high quality algorithm for dealing with short reads and those
from RNA-seq data in particular. Via the \code{GsnapParam} class
and the \code{gsnap} function, R users are given complete control over GSNAP.
}

\usage{
\S4method{gsnap}{character,character_OR_NULL,GsnapParam}(input_a, input_b, params,
output = file.path(getwd(),
file_path_sans_ext(basename(input_a),
TRUE)),
consolidate = TRUE, ...)
}

\arguments{
\item{input_a}{A path to the FASTA file containing reads to align against a
\code{GmapGenome} object. If the sequencing data is single-end, this
is the only FASTA file used as input.}
\item{input_b}{If provided, a path to the FASTA file containing the
second set of reads from paired-end sequencing data.}
\item{params}{A \code{GsnapParam} object to configure the behavior of
GSNAP.}
\item{output}{The output path for the GSNAP alignments. The results
will be saved in \code{dirname(output)}. If \code{split_output} in
\code{params} is \code{TRUE}, \code{basename(output)} is used as the
common stem for the multiple output files. Otherwise, the results
are saved to a single SAM file, its path formed by adding the
\dQuote{sam} extention to \code{output}.
}
\item{consolidate}{If GSNAP is run with multiple worker threads, each
thread will output its own set of files. If consolidate is set to
TRUE, these files will be merged. The default is TRUE.}
\item{...}{Additional arguments to pass to GSNAP not specifically
supported by the \code{gmapR} package.}
}

\value{
A \code{GsnapOutput} class.
}

\author{Michael Lawrence}