Skip to content
Snippets Groups Projects
Commit 62802ecc authored by Aaron Quinlan's avatar Aaron Quinlan
Browse files

Merge pull request #132 from ryan-williams/fastq

Fix a bug in bamToFastq and add a test for it
parents 479a2fc1 41f96cf0
No related branches found
No related tags found
No related merge requests found
......@@ -7,3 +7,4 @@ docs/_build/
src/utils/version/version_git.h
.project
.cproject
nbproject
......@@ -79,20 +79,26 @@ void BamToFastq::PairedFastq() {
reader.Open(_bamFile);
// rip through the BAM file and convert each mapped entry to BEDPE
BamAlignment bam1, bam2;
while (reader.GetNextAlignment(bam1)) {
bool shouldConsumeReads = true;
while (true) {
reader.GetNextAlignment(bam2);
if (shouldConsumeReads) {
if (!reader.GetNextAlignment(bam1) || !reader.GetNextAlignment(bam2)) break;
} else {
shouldConsumeReads = true;
}
if (bam1.Name != bam2.Name) {
while (bam1.Name != bam2.Name)
{
if (bam1.IsPaired())
{
cerr << "*****WARNING: Query " << bam1.Name
<< " is marked as paired, but it's mate does not occur"
<< " is marked as paired, but its mate does not occur"
<< " next to it in your BAM file. Skipping. " << endl;
}
bam1 = bam2;
reader.GetNextAlignment(bam2);
if (!reader.GetNextAlignment(bam2)) break;
shouldConsumeReads = false;
}
}
else if (bam1.IsPaired() && bam2.IsPaired()) {
......
@paired-1/1
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
@paired-2/1
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
+
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
@paired-1/2
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
@paired-2/2
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
BT=${BT-../../bin/bedtools}
check()
{
if diff $1 $2; then
echo ok
else
echo fail
fi
}
samtools view -Sb test.sam > test.bam 2> /dev/null
$BT bamtofastq -i test.bam -fq test.fq -fq2 test.fq2 2> /dev/null
check test.fq golden.fq
check test.fq2 golden.fq2
rm test.bam test.fq test.fq2
@HD VN:1.0 GO:none SO:coordinate
@SQ SN:chr1 LN:249250621
paired-1 1 chr1 1 40 30M * 0 0 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD MD:Z:50
paired-1 1 chr1 1 100 30M * 0 0 GGGGGGGGGGGGGGGGGGGGGGGGGGGGGG EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE MD:Z:50
unpaired 1 chr1 1 100 30M * 0 0 GAAGGCCACCGCCGCGGTTATTTTCCTTCA CCCDDB?=FJIIJIGFJIJHIJJJJJJJJI MD:Z:50
paired-2 1 chr1 1 40 30M * 0 0 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MD:Z:50
paired-2 1 chr1 1 100 30M * 0 0 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH MD:Z:50
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment