Commit Graph

13147 Commits (ac1cefce298765f782cdfa2cd4e1eb79fccc4daf)

Author SHA1 Message Date
Khalid Shakir faaef236ea Moved gsalib, R and other resources, Queue GATK extensions generator, Queue version java files. 2014-02-03 13:49:21 -05:00
Khalid Shakir eb52dc6a9b Moved build.xml, ivy.xml, ivysettings.xml, ivy properties, public/packages/*.xml into private/archive/ant 2014-02-03 13:49:20 -05:00
Karthik Gururaj 6d4d776633 Includes code for all debug code for obtaining profiling info 2014-01-30 12:08:06 -08:00
Eric Banks 83d07280ef Merge pull request #482 from broadinstitute/vrr_reference_model_alt_allele
gVCF <NON_REF> in all vcf lines including variant ones when –ERC gVCF is...
2014-01-30 08:25:43 -08:00
Valentin Ruano-Rubio 89c4e57478 gVCF <NON_REF> in all vcf lines including variant ones when –ERC gVCF is requested.
Changes:
-------

  <NON_REF> likelihood in variant sites is calculated as the maximum possible likelihood for an unseen alternative allele: for reach read is calculated as the second best likelihood amongst the reported alleles.

  When –ERC gVCF, stand_conf_emit and stand_conf_call are forcefully set to 0. Also dontGenotype is set to false for consistency sake.

  Integration test MD5 have been changed accordingly.

Additional fix:
--------------

  Specially after adding the <NON_REF> allele, but also happened without that, QUAL values tend to go to 0 (very large integer number in log 10) due to underflow when combining GLs (GenotypingEngine.combineGLs). To fix that combineGLs has been substituted by combineGLsPrecise that uses the log-sum-exp trick.

  In just a few cases this change results in genotype changes in integration tests but after double-checking using unit-test and difference between combineGLs and combineGLsPrecise in the affected integration test, the previous GT calls were either border-line cases and or due to the underflow.
2014-01-30 11:23:33 -05:00
Karthik Gururaj 5c7427e48c Temporary commit containing debug profiling code - commented out 2014-01-29 12:10:29 -08:00
Karthik Gururaj 0c63d6264f 1. Added synchronization block around loadLibrary in
VectorLoglessPairHMM
2. Edited Makefile to use static libraries where possible
2014-01-27 15:34:58 -08:00
Karthik Gururaj a15137a667 Modified run.sh 2014-01-27 14:56:46 -08:00
Karthik Gururaj 2c0d70c863 Moved vector JNI code to public/c++/VectorPairHMM 2014-01-27 14:52:59 -08:00
Karthik Gururaj 85a748860e 1. Added more profiling code
2. Modified JNI_README
2014-01-27 14:32:44 -08:00
Valentin Ruano Rubio 383a4f4a70 Merge pull request #481 from broadinstitute/vrr_pairhmm_log_probability_fix
Fix for the PairHMM transition probability miscalculation.
2014-01-27 10:59:08 -08:00
Valentin Ruano-Rubio 748d2fdf92 Added Integration test to verify the bugs are not there anymore as reported in pivotracker 2014-01-26 23:29:31 -05:00
Karthik Gururaj a14a11c0cf Pulled Mohammad's changes for creating variable sized arrays
Merge branch 'master' of /home/mghodrat/PairHMM/shared-repository into intel_pairhmm

Conflicts:
	PairHMM_JNI/org_broadinstitute_sting_utils_pairhmm_VectorLoglessPairHMM.cc
2014-01-26 19:40:43 -08:00
Karthik Gururaj 018e9e2c5f 1. Cleaned up code
2. Split into DebugJNILoglessPairHMM and VectorLoglessPairHMM with base
class JNILoglessPairHMM. DebugJNILoglessPairHMM can, in principle,
invoke any other child class of JNILoglessPairHMM.
3. Added more profiling code for Java parts of LoglessPairHMM
2014-01-26 19:18:12 -08:00
Valentin Ruano-Rubio 9e7bf75e89 Fix for the PairHMM transition probability miscalculation.
Problem:

matchToMatch transition calculation was wrong resulting in transition probabilites coming out of the Match state that added more than 1.

Reports:

https://www.pivotaltracker.com/s/projects/793457/stories/62471780
https://www.pivotaltracker.com/s/projects/793457/stories/61082450

Changes:

The transition matrix update code has been moved to a common place in PairHMMModel to dry out its multiple copies.

MatchToMatch transtion calculation has been fixed and implemented in PairHMMModel.

Affected integration test md5 have been updated, there were no differences in GT fields and example differences always implied
small changes in likelihoods that is what is expected.
2014-01-26 16:30:36 -05:00
mghodrat e7598dde8b Clean up 2014-01-26 11:36:06 -08:00
Karthik Gururaj 81bdfbd00d Temporary commit before moving to new native library 2014-01-24 16:29:35 -08:00
Intel Repocontact f7fa79e561 Merge branch 'intel_pairhmm' of /home/karthikg/broad/gsa-unstable into intel_pairhmm
Committing into central_repo
2014-01-22 23:08:32 -08:00
Karthik Gururaj 936e9e175e 1. Converted q,i,d,c in C++ from int* to char*
2. Use clock_gettime to measure performance
3. Disabled OpenMP
4. Moved LoadTimeInitializer to different file
2014-01-22 22:57:32 -08:00
Karthik Gururaj 733a84e4f9 Added support to transfer haplotypes once per region to the JNI
Re-use transferred haplotypes (stored in GlobalRef) across calls to
computeLikelihoods
2014-01-22 10:52:41 -08:00
Karthik Gururaj 868a8394f7 Deleted libJNILoglessPairHMM.so from git tracking 2014-01-21 15:01:09 -08:00
Karthik Gururaj 217f6948f1 Merge branch 'master' of /home/mozdal/git/hmm into intel_pairhmm
Conflicts:
	PairHMM_JNI/pairhmm-1-base.cc
	PairHMM_JNI/pairhmm-template-kernel.cc
	PairHMM_JNI/utils.cc
2014-01-21 12:43:16 -08:00
mozdal 1b1c0c8e76 Split the inner loop to avoid the overhead incurred when -fPIC flag is enabled. 2014-01-21 11:47:30 -08:00
Karthik Gururaj 88c08e78e7 1. Inserted #define in sandbox pairhmm-template-main.cc
2. Wrapped _mm_empty() with ifdef SIMD_TYPE_SSE
3. OpenMP disabled
4. Added code for initializing PairHMM's data inside initializePairHMM -
not used yet
2014-01-21 09:57:14 -08:00
mozdal 0170d4f3d5 Got rid of the MMX instructions in the SSE version of the code. Handling the mask operations in a class, which is defined for each version of SSE and AVX implementations separately. 2014-01-21 09:30:15 -08:00
Ryan Poplin bdd06ebfc2 Merge pull request #478 from broadinstitute/eb_generalize_hc_values_as_args
Pulled out some hard-coded values from the read-threading and isActive c...
2014-01-21 09:01:54 -08:00
Eric Banks 8812278c2c Merge pull request #479 from broadinstitute/eb_move_test_up_one_level
Moving this test up one level to where it actually belongs.
2014-01-21 06:45:55 -08:00
Karthik Gururaj 28891117e2 Fixed bug in JNI interface release_array
Disabled OpenMP
2014-01-20 11:07:44 -08:00
Karthik Gururaj f614d7b0d8 1. Enabled OpenMP
2. Enabled AVX - earlier commit had disabled AVX
2014-01-20 08:51:53 -08:00
Karthik Gururaj 7180c392af 1. Integrated Mohammad's SSE4.2 code, Mustafa's bug fix and code to fix the
SSE compilation warning.
2. Added code to dynamically select between AVX, SSE4.2 and normal C++ (in
that order)
3. Created multiple files to compile with different compilation flags:
avx_function_prototypes.cc is compiled with -xAVX while
sse_function_instantiations.cc is compiled with -xSSE4.2 flag.
4. Added jniClose() and support in Java (HaplotypeCaller,
PairHMMLikelihoodCalculationEngine) to call this function at the end of
the program.
5. Removed debug code, kept assertions and profiling in C++
6. Disabled OpenMP for now.
2014-01-20 08:03:42 -08:00
Eric Banks 9e858270d7 Moving this test up one level to where it actually belongs. 2014-01-19 02:33:11 -05:00
Eric Banks 64d5bf650e Pulled out some hard-coded values from the read-threading and isActive code of the HC, and made them into a single argument.
In unifying the arguments it was clear that the values were inconsistent throughout the code, so now there's a
single value that is intended to be more liberal in what it allows in (in an attempt to increase sensitivity).

Very little code actually changes here, but just about every md5 in the HC integration tests are different (as
expected).  Added another integration test for the new argument.

To be used by David R to test his per-branch QC framework: does this commit make the HC look better against the KB?
2014-01-19 01:15:13 -05:00
Karthik Gururaj 25aecb96e0 Added support for dynamic selection between AVX and un-vectorized C++,
still to include SSE code from Mohammad.
Debug flags turned on in this commit.
2014-01-18 11:07:23 -08:00
Eric Banks abd4f552ba Merge pull request #476 from broadinstitute/yf_logging_all_input_SAMFiles
Added an info log containing the SAM/BAM files that were eventually found.
2014-01-17 08:54:33 -08:00
Yossi Farjoun c79e8ca53e Added an info log containing the SAM/BAM files that were eventually found from the commandline (useful for when there are files hiding inside bam.lists which may or may not have been constructed correctly...)
Added a @hidden option controling the appearance of the full BamList in the log
2014-01-17 11:25:21 -05:00
Intel Repocontact d53e2fbe66 Uncommenting download option in build.xml 2014-01-16 21:55:04 -08:00
Karthik Gururaj f1c772ceea Same log message as before - forgot -a option
1. Moved computeLikelihoods from PairHMM to native implementation
2. Disabled debug - debug code still left (hopefully, not part of
    bytecode)
3. Added directory PairHMM_JNI in the root which holds the C++
library that contains the PairHMM AVX implementation. See
PairHMM_JNI/JNI_README first
2014-01-16 21:40:04 -08:00
Karthik Gururaj d7ba1f1c28 1. Moved computeLikelihoods from PairHMM to native implementation
2. Disabled debug - debug code still left (hopefully, not part of
bytecode)
3. Added directory PairHMM_JNI in the root which holds the C++ library
that contains the PairHMM AVX implementation. See PairHMM_JNI/JNI_README
first
2014-01-16 21:36:15 -08:00
Karthik Gururaj b57de8eec1 Merge branch 'master' of /home/karthikg/broad/archive/hmm_intra into intel_pairhmm 2014-01-16 20:29:51 -08:00
Karthik Gururaj e6c6f8e313 Renamed directory 2014-01-16 20:28:50 -08:00
Karthik Gururaj 532485ca59 Removed unnecessary files 2014-01-16 20:26:41 -08:00
Karthik Gururaj 90938b8610 Minor typo in comments fixed 2014-01-16 19:58:04 -08:00
Karthik Gururaj e90405cd1f 1. Nested loops over reads and haplotypes moved to C++ through JNI
2. OpenMP support added
3. Using direct access to Java primitive arrays
4. Debug messages disabled
2014-01-16 19:53:50 -08:00
Eric Banks 3b6b7626aa Merge pull request #472 from broadinstitute/eb_extend_private_simulate_reads_tool
Fixed up and refactored what seems to be a useful private tool to create...
2014-01-15 17:51:07 -08:00
Karthik Gururaj e8a5022777 1. Added support for JNI integration for LoglessCaching PairHMM AVX
implementation.
2. Contains lots of debug code
3. Only invokes JNI for subComputeReadLikelihoodGivenHaplotypeLog10
2014-01-15 11:07:09 -08:00
Eric Banks de56134579 Fixed up and refactored what seems to be a useful private tool to create simulated reads around a VCF.
It didn't completely work before (it was hard-coded for a particular long-lost data set) but it should work now.
Since I thought that it might prove useful to others, I moved it to protected and added integration tests.

GERALDINE: NEW TOOL ALERT!
2014-01-15 13:49:31 -05:00
Karthik Gururaj 8240ea826e Changes:
1. Added TRISTATE_CORRECTION in pairhmm-template-kernel.cc (function
stripINITIALIZATION)
2. Added VEC_DIV macros to define-double.h and define-float.h
3. Edited initializeVectors to match Java
C++ original:
*(ptr_p_MY+r-1) = (r == ROWS - 1) ? ctx._(1.0) : ctx.ph2pr[_d];
*(ptr_p_YY+r-1) = (r == ROWS - 1) ? ctx._(1.0) : ctx.ph2pr[_c];
Modified:
*(ptr_p_MY+r-1) = ctx.ph2pr[_d];
*(ptr_p_YY+r-1) = ctx.ph2pr[_c];
2014-01-15 10:48:58 -08:00
Eric Banks e2c2aa7b05 Merge pull request #475 from broadinstitute/eb_fix_null_alleles_bug_PT63551060
Added in a check for what would be an empty allele after trimming.
2014-01-15 08:05:21 -08:00
Eric Banks 9f1ab0087a Added in a check for what would be an empty allele after trimming. 2014-01-15 11:04:19 -05:00
Karthik Gururaj 5fab96b7ee First import of AVX-JNI to git 2014-01-14 17:26:55 -08:00