SEQanswers

Go Back   SEQanswers > Bioinformatics > Bioinformatics



Similar Threads
Thread Thread Starter Forum Replies Last Post
sam to bam conversion error, no @SQ lines in the header, missing header? efoss Bioinformatics 17 12-03-2015 04:28 AM
Tophat segment junction error 1, invalid BAM binary header JChase Bioinformatics 16 09-24-2014 08:06 PM
where to copy samtools binary to some directories alittleboy Bioinformatics 1 02-27-2013 11:17 PM
BWA sampe fails - invalid BAM binary header ( Lilach Bioinformatics 4 07-31-2012 09:36 PM
Read BAM header with SAMtools code g_solid Bioinformatics 1 11-25-2009 07:17 PM

Reply
 
Thread Tools
Old 03-07-2013, 08:37 AM   #1
bob-loblaw
Member
 
Location: /home/bob

Join Date: Jun 2012
Posts: 59
Default samtools invalid BAM binary header

Hi all,

I've already done some googling on this and I haven't been able to find an answer to this incredibly infuriating problem!

So I have 12 sam files, which I need to convert to bam, then sort, index etc. All 12 were processed in the same way, but samtools is having difficulty with 3 of them, specifically it gives this error when I try to sort

-bash-3.2$ samtools sort x.bam x.sorted
[bam_header_read] invalid BAM binary header (this is not a BAM file).
[bam_sort_core] truncated file. Continue anyway.
Segmentation fault

Samtools was used to generate the bam files so it's strange that it can't recognize a file that it's generated itself. I've tried remaking the sam file using samtools view, same problem. I've tried regenerating the sam file (bowtie2) same problem again.

Anyone got any advice? this has been driving me a bit mad for the past 2 days.
bob-loblaw is offline   Reply With Quote
Old 03-07-2013, 09:31 AM   #2
dpryan
Devon Ryan
 
Location: Freiburg, Germany

Join Date: Jul 2011
Posts: 3,480
Default

Did you create the BAM file without a header? Presumably you did a "samtools view -Sbo x.bam x.sam" instead of "samtools view -hSbo x.bam x.sam" (or something like that). In that case, I would just reheader or recreate the BAM file. As a general rule, try "samtools view" on any file giving you errors like this.
dpryan is offline   Reply With Quote
Old 03-07-2013, 09:58 AM   #3
Richard Finney
Senior Member
 
Location: bethesda

Join Date: Feb 2009
Posts: 701
Default

Code in Heng Li's samtools source file bam.c is this ...

Code:
       magic_len = bam_read(fp, buf, 4);
        if (magic_len != 4 || strncmp(buf, "BAM\001", 4) != 0) {
                fprintf(stderr, "[bam_header_read] invalid BAM binary header (this is not a BAM file).\n");
                return 0;
        }
This comes after checking for EOF to see if it is truncated. So file is not a valid BAM file. Since 'B','A','M',0x1 is not in the first 4 bytes, it must be compressed.

Try this

ls *.bam | awk '{print "echo "$1";od -c -N4 "$1}' | bash

to see if the bams all have same first few bytes. You should see this ...

0000000 037 213 \b 004

Some other checking is find out what size the bam files are.

Also run this little command to see what "file" program says :

file *.bam

You should something like this example ...
[xxxx@biowulf]$ file *.bam
98017.bam: gzip compressed data, extra field
98018.bam: gzip compressed data, extra field
98029.bam: gzip compressed data, extra field
98031.bam: gzip compressed data, extra field
....
Richard Finney is offline   Reply With Quote
Old 04-08-2013, 12:35 PM   #4
meetelbeet
Junior Member
 
Location: Barcelona

Join Date: Jul 2012
Posts: 3
Default bam file with no header upon conversion from sam

Hi everyone
I have a similar problem. I ran bowtie2 and filtered the sam file to get alignments with only certain fragment lenghts, I did this with awk:
HTML Code:
awk '($9>=74 || $9 <=-74) {print}' ctrl-new.sam > noovctrl.sam
Then I converted the resulting sam file to bam:
HTML Code:
samtools view -bhS noovctrl.sam > ctrl-new.bam
But this file has no header. When I try to look at its 'head' with:
HTML Code:
samtools view ctrl-new.bam | head
I get the error:
HTML Code:
[bam_header_read] bgzf_check_EOF: Invalid argument
[bam_header_read] invalid BAM binary header (this is not a BAM file).
[main_samview] fail to read the header from "ctrl-new.bam"
I have tried to cat the header, reheader... and nothing. By the way, earlier I did some other unix manipulations of the same original sam file and was able to convert to bams with no problems, so I don't think the problem is in the alignment file.

I would appreciate any advice, thanks to all
meetelbeet is offline   Reply With Quote
Old 04-08-2013, 01:15 PM   #5
swbarnes2
Senior Member
 
Location: San Diego

Join Date: May 2008
Posts: 912
Default

I think the problem is that your awk statement is resulting in a .sam with no header, and I don't think .samtools view generates one, it just keeps the one that should already be there.

Start with your initial sam with its intact header. Make the header its own file with

Code:
samtools view -H original.sam > header.txt
Then cat that to the top of your awk-generated .sam, and now it should get converted.
swbarnes2 is offline   Reply With Quote
Reply

Tags
samtools

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT -8. The time now is 03:02 AM.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Single Sign On provided by vBSSO