This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Problem using picard reordersam

Hi, I am working on variant calling with a fungal genome. When I am trying to reorder my .bam file (sorted) using picard ReorderSam (picard v2.9.0) to be used further in GATK realignment & BQSR, it throws this error:

Exception in thread "main" picard.PicardException: Discordant contig lengths: read scaffold1 LN=4751343, ref scaffold1 LN=4340956

Command I used,

java -jar /path/to/picard.jar ReorderSam I=myfile.bam O=reordered.bam R=myreference.fa

I checked my reference.fa file and found that the length of scaffold1 mention was incorrect (4751343), so I corrected it (LN=4340956) and created the .dict file again. But, I am still getting the same error.

picard reordersam

... ound that the length of scaffold1 mention was incorrect (4751343), so I corrected it (LN=4340956) and created the .dict file again.

you're using the wrong reference file. You must use the very same reference file that was used to map the reads.

I am using the same reference file that I used for mapping.

show me

samtools view -H myfile.bam

and

cat myreference.fa

any command other than cat myreference.fa to view the reference coz' the reference has 2600 scaffolds! and I can see only the last few in my terminal. Anyhow, I am sure this is the same file.

1 answer

Use option ALLOW_CONTIG_LENGTH_DISCORDANCE=true

If true, then permits mapping from a read contig to a new reference contig with the same name but a different length. Highly dangerous, only use if you know what you are doing

thanks for the option, it worked. But, can you explain why is it highly dangerous ( & any related article or post you can direct me to)?

it's dangerous because it's highly probable that the reference associated to the BAM is different from the fasta reference .

Log in to answer this question.