diff --git a/scripts/pairend_distro.pl b/scripts/pairend_distro.pl index fa5a36e..32b46f4 100755 --- a/scripts/pairend_distro.pl +++ b/scripts/pairend_distro.pl @@ -99,12 +99,7 @@ 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"; - } + print FILE "$i\t" . ($H[$i]/$sum) . "\n"; } close(FILE); diff --git a/src/lumpy/SV_Pair.cpp b/src/lumpy/SV_Pair.cpp index 7cc3feb..987e056 100644 --- a/src/lumpy/SV_Pair.cpp +++ b/src/lumpy/SV_Pair.cpp @@ -343,7 +343,7 @@ print_bedpe(int score) } //}}} -//{{{void set_sv_pair_distro() +//{{{ set_distro_from_histo (int back_distance, // We will assume that the distrobution to upsstream will follow the histogram // and downstream will be follow an exponetial decay distribution based on the // back_distance @@ -357,12 +357,14 @@ set_distro_from_histo (int back_distance, { // It is possible for the histo to contain 0 values at the ends, // to prevent further issues, we will trim them here + /* for (int i = 0; i < histo_end - histo_start + 1; ++i) { if (histo[i] == 0) { histo_end = i-1; break; } } + */ double lambda = log(0.0001)/(-1 * back_distance); // the bp distribution begins SV_Pair::back_distance base pairs back @@ -385,6 +387,27 @@ set_distro_from_histo (int back_distance, last = (*distro)[i + back_distance]; } + + int zero_i = -1; + for (int i = 0; i < distro_size; ++i) { + if ((*distro)[i] == 0) { + cerr << i << "\t" << (*distro)[i] << endl; + zero_i = i; + break; + } + } + + if (zero_i != -1) { + distro_size = zero_i; + double *new_distro = (double *) malloc(distro_size * sizeof(double)); + for (int i = 0; i < distro_size; ++i) { + new_distro[i] = (*distro)[i]; + } + free(*distro); + *distro = new_distro; + } + + return distro_size; } //}}} diff --git a/src/lumpy/lumpy.cpp b/src/lumpy/lumpy.cpp index e08182f..d0e5950 100644 --- a/src/lumpy/lumpy.cpp +++ b/src/lumpy/lumpy.cpp @@ -73,7 +73,7 @@ void ShowHelp(void); //{{{ void ShowHelp(void) void ShowHelp(void) { - cerr << endl << "Program: " << PROGRAM_NAME << " (v 0.2.2.2)" << + cerr << endl << "Program: " << PROGRAM_NAME << " (v 0.2.2.3)" << endl << "Author: Ryan Layer (rl6sf@virginia.edu)" << endl << "Summary: Find structural variations in various signals." << endl <<