mergeBamByFactor.Rd
Merges BAM files based on sample groupings provided by a factor using internally
the mergeBam
function from the Rsamtools
package. The function
also returns an updated SYSargs
or SYSargs2
object containing
the paths to the merged BAM files as well as to the unmerged BAM files if there
are any. All rows of merged parent samples are removed. When a named
character vector
is provided as input, a data.frame
with a target
containing the paths to the merged BAM files as output.
The functionality provided by mergeBamByFactor
is useful for experiments
where pooling of replicates is advantageous to maximize the depth of read
coverage, such as prior to peak calling in ChIP-Seq or miRNA gene prediction
experiments.
mergeBamByFactor(args, targetsDF = NULL, mergefactor = "Factor",
out_dir = file.path("results", "merge_bam"),
overwrite = FALSE, silent = FALSE, ...)
An instance of SYSargs
or SYSargs2
constructed from a
targets
file where the first column (targetsin(args)
or
targets.as.df(targets(args))
) contains the paths to the BAM files
along with the column title FileName
. Another possibily is
named character vector
with BAM files PATH and the elements names
should be the sampleID.
This argument is required when named character vector
is provided as
input. Default is NULL
.
Object of class DFrame
, and it can be obtained with
targetsWF(<SYSargsList>)
.
factor
containing the grouping information required for merging the
BAM files referenced in the first column of targetsin(args)
or
targets.as.df(targets(args))
. The default uses Factor
column
from the targets
files as factor. The latter merges BAM files for
which replicates are specified in the Factor
column.
The directory path to store merged bam files. Default uses "merge_bam"
directory inside the results directory. directory not existing before
running the function is alllowed. It will be created while running.
If overwrite=FALSE
existing BAM files of the same name will not be
overwritten.
If silent=TRUE
print statements will be suppressed.
To pass on additional arguments to the internally used mergeBam
function from Rsamtools
.
The merged BAM files will be written to output files with the following naming
convention: <first_BAM_file_name>_<grouping_label_of_factor>.<bam>. In
addition, the function returns an updated SYSargs
or SYSargs2
object where all output file paths contain the paths to the merged BAM files.
When a named character vector
is provided as input, a data.frame
with a target containing the paths to the merged BAM files as output. The rows of the merged parent samples are removed and the rows of the unmerged samples remain unchanged.
writeTargetsout
, writeTargetsRef
## Construct initial SYSargs object
targetspath <- system.file("extdata", "targets_chip.txt", package="systemPipeR")
parampath <- system.file("extdata", "bowtieSE.param", package="systemPipeR")
args <- systemArgs(sysma=parampath, mytargets=targetspath)
#> Warning: path[1]="./data/SRR446027_1.fastq.gz": No such file or directory
#> Warning: path[2]="./data/SRR446028_1.fastq.gz": No such file or directory
#> Warning: path[3]="./data/SRR446029_1.fastq.gz": No such file or directory
#> Warning: path[4]="./data/SRR446030_1.fastq.gz": No such file or directory
#> Warning: path[5]="./data/SRR446031_1.fastq.gz": No such file or directory
#> Warning: path[6]="./data/SRR446032_1.fastq.gz": No such file or directory
#> Warning: path[7]="./data/SRR446033_1.fastq.gz": No such file or directory
#> Warning: path[8]="./data/SRR446034_1.fastq.gz": No such file or directory
#> Warning: path[9]="./data/SRR446035_1.fastq.gz": No such file or directory
#> Warning: path[10]="./data/SRR446036_1.fastq.gz": No such file or directory
#> Warning: path[11]="./data/SRR446037_1.fastq.gz": No such file or directory
#> Warning: path[12]="./data/SRR446038_1.fastq.gz": No such file or directory
#> Warning: path[13]="./data/SRR446039_1.fastq.gz": No such file or directory
#> Warning: path[14]="./data/SRR446040_1.fastq.gz": No such file or directory
#> Warning: path[15]="./data/SRR446041_1.fastq.gz": No such file or directory
#> Warning: path[16]="./data/SRR446042_1.fastq.gz": No such file or directory
#> Warning: path[17]="./data/SRR446043_1.fastq.gz": No such file or directory
#> Warning: path[18]="./data/SRR446044_1.fastq.gz": No such file or directory
if (FALSE) {
## After running alignmets (e.g. with Bowtie2) generate targets file
## for the corresponding BAM files. The alignment step is skipped here.
writeTargetsout(x=args, file="targets_bam.txt", overwrite=TRUE)
args <- systemArgs(sysma=NULL, mytargets="targets_bam.txt")
## Merge BAM files and return updated SYSargs object
args_merge <- mergeBamByFactor(args, overwrite=TRUE, silent=FALSE)
## Export modified targets file
writeTargetsout(x=args_merge, file="targets_mergeBamByFactor.txt", overwrite=TRUE)
}