MATLAB: How to open a BAM file

bamreadbioinformaticsBioinformatics Toolboxbiomap

Hi, I have a problem opening a BAM file (the one from here: http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM754388 the link is at the bottom of the page)
Usually I open BAM files like this:
bamFilename = 'GSM754388_P2_5_20110519_7.bam';
info = baminfo(bamFilename,'ScanDictionary',true);
bm = BioMap(bamFilename, 'SelectReference', info.ScannedDictionary{1});
but this time it doesn't work, and some error pops up…
I tried also to open it with bamread but with no success:
bamFilename = 'GSM754388_P2_5_20110519_7.bam';
info = baminfo(bamFilename);
RefSeq = info.SequenceDictionary;
data = bamread(bamFilename, RefSeq(1).SequenceName, [1, RefSeq(1).SequenceLength]);
Is there any other way to access this BAM file in MATLAB?
Thanks,
Razvan

Best Answer

  • It may be possible that the BAM file is not ordered. The Bioinfomatics Toolbox (12b) automatically indexes the BAM file, but for this it must be ordered. You can order the BAM file using SAMTOOLS or by using the following undocummented option in MATLAB:
    bioinfoprivate.bamaccessmex('bamsort', 'unorderedname.bam', 'orderedname')