Learn R Programming

rbamtools (version 2.16.17)

bamWriter-class: Class "bamWriter": Representation of a file connection to a BAM file for writing access.

Description

The bamWriter class represents the writing connection to a BAM-file. Usually, this class is used to create an empty BAM-file and to copy aligns from another BAM-file into the new file.

Arguments

Objects from the Class

Objects can be created by calls of the form writer<-bamWriter(reader,filename).

Slots

filename:

Object of class "character".

%
writer:

Object of class "externalptr". Points to samtools struct samtile_t.

Methods

bamClose

signature(object = "bamWriter"): Closes BAM file.

%
bamSave

signature(object = "bamWriter", value = "bamAlign" or "bamRange",refid = "numeric"): Saves bamAlign or bamRange object to BAM-file. refid will be overwritten in all written aligns.

%
filename

signature(object = "bamWriter"): Returns filename of opened BAM-file.

%
initialize

signature(.Object = "bamWriter"): Opens BAM file for writing.

%
isOpen

signature(object = "bamWriter"): Returns TRUE when file connection is open.

References

The SAM Format Specification (v1.4-r985). The SAM Format Specification Working Group. September 7, 2011.

Examples

Run this code
# NOT RUN {
# +++++++++++++++++++++++++++++++++++++++++++++++
# In this example, we copy some complex (i.e. interesting) aligns
# into a new BAM file
bam<-system.file("extdata", "accepted_hits.bam", package="rbamtools")
idx<-paste(bam,"bai",sep=".")

# +++++++++++++++++++++++++++++++++++++++++++++++
# Open BAM file and read complex aligns from chr1
reader<-bamReader(bam)
loadIndex(reader,idx)
coords<-as.integer(c(0,0,249250621))
range<-bamRange(reader,coords,complex=TRUE)
bamClose(reader)
# +++++++++++++++++++++++++++++++++++++++++++++++

# +++++++++++++++++++++++++++++++++++++++++++++++
#  Create bamHeader from scratch
bh<-new("bamHeaderText")
headl<-new("headerLine")
setVal(headl,"SO","coordinate")
dict<-new("refSeqDict")
addSeq(dict,SN="chr1",LN=249250621)
addSeq(dict,SN="chr10",LN=135534747)
dict
prog<-new("headerProgram")
setVal(prog,"ID","1")
setVal(prog,"PN","tophat")
setVal(prog,"CL","tophat -p8 --library-type fr-unstranded hs_ucsc test.fq")
setVal(prog,"VN","2.0.0")
bh<-bamHeaderText(head=headl,dict=dict,prog=prog)
#getHeaderText(bh)
header<-bamHeader(bh)
# +++++++++++++++++++++++++++++++++++++++++++++++

# +++++++++++++++++++++++++++++++++++++++++++++++
#  Copy aligns in range into new BAM file
# }
# NOT RUN {
writer<-bamWriter(header, "chr1_complex.bam")
bamSave(writer, range, refid=0)
bamClose(writer)
# }
# NOT RUN {
# +++++++++++++++++++++++++++++++++++++++++++++++
# }

Run the code above in your browser using DataLab