diff --git a/scripts/pairend_distro.pl b/scripts/pairend_distro.pl index b07206d..fa5a36e 100755 --- a/scripts/pairend_distro.pl +++ b/scripts/pairend_distro.pl @@ -99,7 +99,12 @@ sub print_usage { open(FILE, "> $o_file"); for (my $i = 0; $i < ($end - $start); $i++) { + #print FILE "$i\t" . ($H[$i]/$sum) . "\n"; + if ($H[$i]/$sum == 0) { + last; + } else { print FILE "$i\t" . ($H[$i]/$sum) . "\n"; + } } close(FILE); diff --git a/src/lumpy/SV_SplitRead.cpp b/src/lumpy/SV_SplitRead.cpp index f26d79a..7fba1c0 100644 --- a/src/lumpy/SV_SplitRead.cpp +++ b/src/lumpy/SV_SplitRead.cpp @@ -366,7 +366,17 @@ get_bp() new_bp->interval_r.i.end = side_r.end + reader->back_distance; } else { - abort(); + cerr << "Cannot determine BP type:" << + "side_l.start:" << side_l.start << "\t" << + "side_l.end:" << side_l.end << "\t" << + "side_r.start:" << side_r.start << "\t" << + "side_r.end:" << side_r.end << "\t" << + "query_l.qs_pos:" << query_l.qs_pos << "\t" << + "query_r.qs_pos:" << query_r.qs_pos<< "\t" << + "side_l.strand:" << side_l.strand<< "\t" << + "side_r.strand:" << side_r.strand<< endl; + return NULL; + //abort(); } } else if (type == SV_BreakPoint::DELETION) { @@ -419,7 +429,17 @@ get_bp() new_bp->interval_r.i.end = side_r.end + reader->back_distance; } else { - abort(); + cerr << "Cannot determine BP type:" << + "side_l.start:" << side_l.start << "\t" << + "side_l.end:" << side_l.end << "\t" << + "side_r.start:" << side_r.start << "\t" << + "side_r.end:" << side_r.end << "\t" << + "query_l.qs_pos:" << query_l.qs_pos << "\t" << + "query_r.qs_pos:" << query_r.qs_pos<< "\t" << + "side_l.strand:" << side_l.strand<< "\t" << + "side_r.strand:" << side_r.strand<< endl; + return NULL; + //abort(); } if ( (new_bp->interval_l.i.chr.compare(side_r.chr) == 0 ) && @@ -628,9 +648,12 @@ process_split(const BamAlignment &curr, if (new_split_read->is_sane()) { new_bp = new_split_read->get_bp(); - vector::iterator it; - - new_bp->cluster(r_bin); + if (new_bp != NULL) { + new_bp->cluster(r_bin); + } else { + cerr << "Alignment name:" << curr.Name << endl; + free(new_split_read); + } } else free(new_split_read); @@ -683,9 +706,12 @@ process_intra_chrom_split(const BamAlignment &curr, if (new_split_read->is_sane()) { new_bp = new_split_read->get_bp(); - vector::iterator it; - - new_bp->cluster(r_bin); + if (new_bp != NULL) { + new_bp->cluster(r_bin); + } else { + cerr << "Alignment name:" << curr.Name << endl; + free(new_split_read); + } } else free(new_split_read);