NASA: Pluto Matters!


    0.2.1 • Public • Published


    BAMReader is a reader to parse .bam files. Uses samtools If exists, otherwise uses a native parser.


    $ npm install -g bamreader


    var BAMReader = require("bamreader");
    var reader = BAMReader.create("/path/to/bamfile.bam");
    reader.on("bam", function(bam) {
      // bam: object. see "bam object" section
      console.log(bam.seq, bam.qual);
      console.log(bam.pair); // pair bam object of the bam. To do this, indexing is needed.
    reader.on("end", function() {
      console.log("all bam alignments have been read.");

    bam object

    • pair : information of the mate pair. see "bam.pair"
    • discordant : discordant or not. see "bam.discordant"
    • qname : name of the read
    • flag : bitwise flag
    • rname : reference sequence rname
    • pos : 1-based leftmost mapping position
    • mapq : mapping quality
    • cigar : CIGAR string
    • rnext : reference sequence name of the primary alignment of the next read
    • next_rname : the actual reference name of the next read.
    • pnext : position of the primary alignment of the next read
    • tlen : template length
    • seq : segment jsequence
    • qual : ASCII of base quality plus 33
    • start : 0-based leftmost mapping position
    • flags : information of flags
    • tagstr : optional fields as string
    • tags : optional fields as structured data described in "bamdata.tags" section
    • multiple : information from flag: template have multiple segment or not.
    • unmapped : information from flag: unmapped or not.
    • allmatches : information from flag: each segment properly aligned or not
    • next_unmapped : information from flag: next segment is unmapped or not.
    • reversed : information from flag: reversely mapped or not.
    • next_reversed : information from flag: next segment is reversely mapped or not.
    • first : information from flag: first segment or not.
    • last : information from flag: last segment or not.
    • secondary : information from flag: secondary alignment or not.
    • lowquality : information from flag: not passing quality control or not.
    • duplicate : information from flag: PCR or optic duplicate or not.
    • supplementary : information from flag: supplementary alignment or not.
    • clipped : clipped or not.
    • soft_clipped : soft-clipped or not.
    • hard_clipped : hard-clipped or not.
    • left_break : the left position of the breakpoint if clipped.
    • right_break : the right position of the breakpoint if clipped.
    • match_len : length of the matched portion of the read.
    • fully_matched : if the whole base of the read is matched or not
    • mismatch : the number of mismatch bases
    • unique : if the read is mapped uniquely or not
    • indel : the mapping result contains insertion/deletion or not.
    • different_ref : if both mapped and rname is not rnext or not
    • same_strand : if both mapped and mapped to the same strand or not
    • has_n : the read contains "N" or not
    • sam : SAM formatted string of the bam


    bamreader can fetch one mate pair of the read using index.

    $ bamreader -c <bamfile>     # creates an index of the bamfile. 

    then you can access bam.pair

    bam.pair is also a bam object.




    • (key): tag name (two string character)
    • (value): type: data type, value: data

    if data type is "B", value[0] is subtype, value.slice(1) is the array of data.


    npm i bamreader

    DownloadsWeekly Downloads






    Last publish


    • shinout