From d7ba1f1c287fb238e9cf5f67d07f4ebc316965de Mon Sep 17 00:00:00 2001 From: Karthik Gururaj Date: Thu, 16 Jan 2014 21:36:15 -0800 Subject: [PATCH] 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 --- PairHMM_JNI/JNI_README | 1 + PairHMM_JNI/libJNILoglessPairHMM.so | Bin 0 -> 66472 bytes PairHMM_JNI/run.sh | 16 ++++++++++++++++ 3 files changed, 17 insertions(+) create mode 100644 PairHMM_JNI/JNI_README create mode 100755 PairHMM_JNI/libJNILoglessPairHMM.so create mode 100755 PairHMM_JNI/run.sh diff --git a/PairHMM_JNI/JNI_README b/PairHMM_JNI/JNI_README new file mode 100644 index 000000000..2a02d41ce --- /dev/null +++ b/PairHMM_JNI/JNI_README @@ -0,0 +1 @@ +TEST diff --git a/PairHMM_JNI/libJNILoglessPairHMM.so b/PairHMM_JNI/libJNILoglessPairHMM.so new file mode 100755 index 0000000000000000000000000000000000000000..f7a3569bfa382d5e2f7267714e18d538eb9df1ee GIT binary patch literal 66472 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 z zFN4(IC@K!lNnBK3tW+YOrihjkbT^60BSX!Hdd*2#7dk6FY!54k=uj>lCbFiT5}Lk= z*qQ_F6QCctrrCk(gJu@lab8ole};t(ZZAK>_O zu^q}$i>yP69$_P(YDb~9#KMe)P?0*M*3SDWa3G*PkI44dD9rS@VvcVn3EBstt*`VZ zkwp@3J!z1bi^zDDFkGZ^qA!(aO)4e5sT>CnT7yYt1gTsDDmpI(q=Jtzz9SfXw;mJk4lfc5V zaonsB1UO1`ki=Ux=v#!aXE6bd%A*0iD;vHT!(%SXLd>tIx|6#+{L~wFeqmH6fKTIJS$KC;v-@sm}Nw)1iVCGpNZ0P&X+IO&%p) z*aFbxQQDtTh~_65YVvNXG*b-_smL%YJc(^FLCZlZefFZ&As2czOoJZv?}*Y)g$*jJ zOe!OcvL7n-P0$3a%Z%NojR!5dr;uTMhehvUi%w}Tnxr1Y3kwI+E-jTz z{}jbhfn4#amRzE;Av2d(yd*38Hrc#`Y(^%}!Sq^t;0ZA-V|-k8OS%o~-Wc*Qp3KJA zGiPBiL2nm976dD*<_G6iRTLDJlvjsJLN%e{Aj0zb!J1G>X?3u&prmR+Sy^yK zj;vJ7FD)MM0OHrTUOJY4|EH~bU16cE zG})YfOFLY7rR(yZ7`<&us$Ds=73Ff9t+>4Q+MA{qhXh_JE}tJ-Fse`Lt6Y;OyUJ_I z@`|fN(+aAKtI6j)s39psZCq3}DAtXxX%#i4MXvISkZXQ%$aS;qcg?G)a#a-<6isD5 z6!(4e-C9#n`hD}EKNMGmN-D~y-;&EBzfYM(#ihmnx4EkUkFvPdv)OMUgs@rgrxehB zSFy$x*WDz9AY2*<3q)d!B(`X+ADi8c*|OP9vzrjDKeYHzS_8zNr}Zg_*hkcBxitN; zm$ryd`e3d6SZiBvFCzBVUhkDE-m5;^tLDCE=FI+ly9?n*pF0ov&dixJXJ*cvIdf*d zZ-;czljvijFVYi?#TGVDjVDpAGuRzVq;BetXaV(M-X(f2zudag>WIc-mg)>nIw8dQ z!BlWjA{LJHG?4CzbYXi2`uxRts*L1|G?kaaL_AwSNQ$gZi%dsEhCeg8C~4;Y!^aw- zL>ygDS)tBg59wekbm^R)WGoUlXPeV~KGX{p=nAGT3rE^}Z?wX_UESVPe@Y}ex>G&g zXwph_N8**22ovoveP#!SJ3`-pWXVA_*9!Lb0}qoT70T*Lgsl`bG6c=4Os2w@U)~-} zMnhJ#Bbh>HyJl01rkOH_qE@OW7)>Q5dd?j4)6+~{n&xnOA`!bJ!(3-o>WG}@jaOL< z8k+*(l!sLTr3sczCu8el||*@yjYP4ey)wK``{*=_uenyqTMi?cpK7>j94frU2gu z901&k*Q-Xk5HWmNFdOUDEr4x+^qoTr@co|;568f_{1>1Hoc&AS@%2U%;6}jf0e1jy z+&et{5Z*~_1>6C+1CajH(x#_|ho|8!(Di_AfE)h+K4U-!_z>WfKcc;W(*TbG#sH^L z`vIE(j~+rA?c4X#@bKB=&=0_AfE!-{f57(vXS-3)G0@{^_!ht^NDlxW0-XKd!^7oR zb(;Y3a|>}j;C#RsU>I;K;6s2r0CxZ$0z3+M6!7fv==cAC9&i9~BjCRGhKFlV5B-PT z6dX6VED?@=&!`RGo??p0<)cgK5G^OaNfM0S&`SiG0xv)W+yHUkn&DwomktI>Uysxv z@IG1?2qD}ayx&1%MtN437*y2bbk|K8cVu{Yc+$8R@VvlNoLILDJ1vo-M9b1K?B5Mz+-%x z31s$JNTASc0QctGy&i+Sd2sUz<88za8chSwohaqz9=hFY8qja9u$f}Agrt)tGPw(YJoV;)wGgBv4}nc3 z>_E1Dk>2hA-qd*2A&-H%BHZ{dJUHKj{BAHYE=Go?kviz~tST`u1B7Q(NuMw-pqSg} zTY2PGPleI9=E$uEUa1RDxzTs*rCUAYjJ|hYy4Cn3guhRUaKC&Wkk5k#EDYXV(i57c zRIi*Wki2tw*eaQdG8n@E0b$^kJ*5`P6dtPoXzx;-HV+Yk1Ic9v@W+5ZLQ{(a$>n+A z*F4Vh(tT#R{Dt%Tk?+HB8=r#lkrTu187NVaiEEuIVy-h(q;kDW@$s!1r6P5!N6YTI zTZ~$C+g+!oliQ~{@2*rc&uyx?=bor$pWCxfaby*1Sv6|)=z)^8&UFT=xElj{MmPyU zV%>p;?Sj20y)hQU_}XLvw6uQ))`Lfx&Q3$}nu`4UkY5jerz$ImTDXTkXIyp~T^#yc zj9Ye7%-&W zS?iKBW!)%g%l47TVVy{z2Mm}+nzAxX#go?MiBIyleV_P|f@AGq9VWsWplIC|psOd7 zx}NADT+p489k&6LU^!6wU>X=AG2oPnu+}i}EhcO! zsen=hsRG3RUM`R7GVNggw{U(X_;*8zjD^JiIO8r=r*f6HU#mwMSEEX{R+Vh6PGF^c zt6Zx`DJv!Wk1CgbXLz_JyM6PJKo8mg+K|77@~K(JYug+&?)di6RJE#c+X}ub@n%rU zh3ZD2dHXBi`wQR?0pD%Ir$GNa@SVU9A#O~Du zSl3P@KRN7~wFzTO+T>nlJV>BZ>YKY;E~-FE4f5%cAKCh}OpiNOC$vtiDmS(O>@o0v zv|@nLo234KhC z&pM2c@y;m~6ExqaVrkuuea$$I04x*%(M@0V1brQ6aG`j|KZZbag&ls7GJMe4=jK=h6s$ zDJijfHMvgFm#WWhnNd#?KO>y}Fp!}`K_Y}#W zjr@Hy!;xPPP-M*^|2l8YA#&;e&~8ifCnUl&{LwD#U5u|u@ylRhGGnaxNjn5Pia>U* z2K29jp6s+i7q;rYKy|gFLwv6X-LsnS8*o03!!JD)Ug89(cM zWNQaYxmK!v-+%!x47OkAQuXUgOgq+Ud$UgO2iEKLAbUNPjez?^uW>Ub zQLn6QXD71Z@$f!?Z2;UREUjxx);Ym?FXTAjHY%xwG#(ovz`_5>wU49+KLP&T7qNdq zJT2Rc5oafIctfpY+D{!{+I^weHQKf1Lh(VV>-`JF{xNr#9h@ZYIQL&m0PdO$>-x@= z)uRwc!*3;C2*Vr79ix8Y{O(06iFAd-^>w!wCnRa2;SKn|!qWN0;+q_fdmL|;Rv#QA zJ{aS=tIYX$S=p0i;x}a!|Jyhh@EhE&AGn>rbC+(mrslso`4U9$nL?RQ;W@?m!4x9-#(5O~#d)qj zoag-ed4##+e2Rbnd=x6y5A^du*}1v-6CD%ILy?P`aSLoeBKJG+kYRX3hhy3F-<511 zBL5Z^Sa z_qj3RiP5gFm5C2VZ*d^8Z44FOKStL?V{)#;a}LrMyB3K$!0WQ}zUy$TcYF$%H4fL$ z&K83u10{be6Mr>aPfidY7_Q$>5Z`i9{4v*Cju$J$OQT(DCpaG|b?qMS92ny|R^fbZ zj0<>-(ZdtOma>V6|9hDWEdFUMnErU|6^K4uKJ8t%_)~cm;+x&BKfA>BI64}~4fA1~eywC)#kL0+ z=$4C*5a%=WGMvM(nc)o#;|yQecx~sT;hF*qq7&bG!fnl8CZ4B2j+{ADj!<`Hd zFg(ogb%q}@bXRlz4808JFl=Uc1H(AO+Ze86xQXF5hC3M^V0f6}>kL0+=&s@V8G0Gc zVc5*@28MBlw=rDDa1+CA40kd-!0<3bs!iJjif`U)5)iX`MSlhA-~6%EUtK+` z3V#LaH=q7E`d>XA^{2<56izK?4zaMI;c~NbVe>VYm^I!S?+mlb=dbcr`>V~$C6TbX zD40_COKUC>mxd!9!QNOZ7Hz*g+1C}b!qH^6nTkP2|DJC+jOD8AEKwct@Zz_a0(rI<{1iK>5XmmTl>Ipk2el*51$222r*F2EKgR2`hMnC^ z$Uv9V*p-On)W1dL=zRqpVPywhzs9Xbgvx9AujKL?{>s*VQx{~o4luj?{O_v_4L4F| zRuDLY3FBMJtX%OC98>1l#eX`ZZbUZWAf!$!-aR zsX+Rv^+zL~L?pX>xQ&*Sp;`t0dvK$~5@ezysX z5cMN0{{m=7;ZOH}(QXqdypQAZCM$-PyRKjN>t)bp*WbCvq~fA;j|5_o0_mqNui;;j zlU-i#SBJR#3tBOmgD$7x8@BRm*pFR9f<^G?j;Unc_|q3I#7mQHe%h3j_dP9vSVoP@ z3T9TEqGTU!B$7gx|A9+cnyM7pi}V1_t3>Iv~vo_WHB3@}f?(POqccnNC<6y*}pRo$2$9T)ZLldX|fK z3B69`;zy;=A#(AfgLnp z?QAaIEwug2#a9Sz7jy9*q3vBRemv}$nT?WhCl1B5oyyL1inCyM%xsj5J8@c6Ul4x| z?1U+4vL8-yF6MtB{3nE--?{V?g`T&$_)iKwA9L}OvXe4SdRYQb$}WGJUxs*d*j|9t z+9C4g^BIZHmrtF<=gTJmJk{%&j!0JcBH|8_X}_K~gQbx`L#Ao2O_r{$XJHF@3F^t%x$B)1PFpHGTcx&3-wp#L_& zfm2Pb&p%>D5yCq%`Z<&FbVDJ@VaUekC5g}IgSJy8Fmeu@HtKVV4(3CbV-UXdDN|xJ z{XE9&a|KOrF@BAW{_C1Q<2C&Qnm_N4HUD2~{*2f3FKPZZdisP^w%L!v)qqra2!uQFb@=hwiKzUg!S7UuID(L*1OvK*iWG8~ckaboksDt#N{|H}N| zXa2O0qu>}-SZ_6-7avn}G|wrd^_KBpQfM(Ae5hX&$-zU2Dj=2-9{M(DYv&54zk})N zMJ|N_#&2f)CWRJ%VtoBBh0x^Z{mN% z%*9^_`~}dHT^kgo_BR8JAG$ghe>d=2$5f7bK2ZdJSo62>xda1Ih|jzt_-l*czfuH$ zC-CE;=Yr)t%#Gb9>Bov^+5XFK+>tlAjM{_sg(r%Z!&iYP`K;_x3^aa|q-UmCU@y~~ ztbm&SE#Rp=+n+WiwU5h`j}<~;7{Oq25&UJq7n0lJBKRACr}iKFnqu6|{I^Q_vBI}T zA&$VFQh1K>M+Q}TnF8YFBK+Sjg7@G>+ys&DkDV*=%rp!5is0$<-$MQE2442-e#Jz~ zc}o%cpE3QBujJCd!}$7+T)c@FhlT2`DS}^E1RpGdzggnp58SEh-32>KVNVhI7lEh# z4t-tG>HdDgt?-*|a%cp;Q2Xgy9pWQcKTX9>exp-}es2*zuQ8uNTfLL8P!{520Z;WV zv$cPRq=)^vQZ+<=dx>Z%I!N>@ZTx2eUx@!bMevUm!P9STXug{*s$L{zD1~9CdY@%` zD8CIu&QghIqAZXCp7{7|eD+Ix79mHEGJXAB3PIn-QJ~-SAS*8{1fJTnxl3i$!#|*~ zMbb|c_p&`DgJ%c@pm6lsf(vKBKu2A?P zuIWLh_u2IA=SBFxQv~lhyKs9Nfv5KDV!fhoiz%#R{IgtdJ^TO)&r3dIMLmy~Zs&h8 zz2JTgDspl0Ifd)JQQ{$o#ftCJdz|5_3JS@@zy>fzOjKm8Vl!d&1BjmuY= zelxe9zOAS5RuTFNe2Cz|e(gTiA4QFI5O}KBvqfP%oKX#Yp?bei1V2;+UjoOw5T6T+ z;4dkHzoG~}Tm*kh5&TZzNeZC4t$|{Ym4C9fTw;P`--Yn zw|_n3TX=r0IBrJ>_M}9pCzVX~ zc64|{!m=9Lu3BO>HMX`{7E<$bQdcx&WrY*gjq*+aOTPJ&KSsujyl(tjJQDWSR@clF zlwn1~{YXvs3-vk?KX>lBN!Jr-o-eCeuw?F)0ZXT-8XeEnB40DgT2ALe0L!wLcXjt! zH%EFBAHnw!mJeN*}Uw z^3l(b6-$IL%00cIl%(Yq_{LiyDlPkwcfpLJbT70m;>eWaroGp)NP z(QXC%`ooRkK%3Q4r++}-((1E#Os(shTT`{_2mXz%sT#UIqOryAx4ztdQ%YSP(h>}` z1{+&ztU$nDlY13Hpn0Zc;p+e^)Zg!)VOepyUI6zbq;LTPW?*9rO10LaVAqnxh!(0d z-6*QV2h#ceKwlxkR_ny=BOX*;Q64AiV9|mnQTfRWsn%+(V zbC3ao8M@Bz%Um$gnruzBxATD7FQ@?N47v;>=K_f(tto#^?)?#sA>jO3H%Byv0)dP^ zYxW({o+NI+z#`-I`~1E-ug~kpyt1yFNfoyx8sn+fWLmfCwG{R_oUfvjDq4g28IY`Z%UzMxRg{d;wC>F9}YN%NjnR7@w8HeX&7Id2pjADb zOjw=4co<*r@Dk6dti`Tr7OqF4TZuY?(U?s=<%fS3yoaFG6OnVUz8>>!?z~3J@2zG5 z)X@Ds`Td8TNDopCjedb?aXe#E)Ffb-QjwU2M%R!73yDxe@`gMu4l=3axD;hLlETuo z!FPgbvdKubrXz@ztt--%jHG01$OvFbPTEv6-S%Xp8Y1ncBB5^Vdd|>73$>-e!nEp- zrfdx@(9IJ%l*KK2dZo%UkV&$St*KZN{$QR{Kx=umavl;GJls9i7;3WutSc!3?}kFA)2@27-r7c@fHauB-`=CpsdcE};$U||vJArU*2wA5U(#dp6!Y2# zY}e@<=*%^K1*el1&T$s%o@60EP%dy-g45#;8!E>gZU?3%8o#8qowhH~fj0Os`Qwz# zAHI&BNF-OiPkURPS)f$^^g& z?@ZUDt)b#Z3n1^x5`3#)q1h<6-nPao#~Jl6mwU4uj~O1zOy27y3Qq4pbtKVI(7KLT z9(wnhJMYrFiqqN)foJ}1*H+OFRC97i_mYv|@sGGDX|TaDN|T?GWL1=VVy4Vi5d zO&frmO*Af4?eEsT?(R)upWWL<+jHz7;p}GAhBvka9WUC&Es5H!kaWmKV!>wcMW}fy z1Z76cH=j7}P?`KY+ zKd0@5@qt9@cP0MOF?cN}*2M?iHQEp}0C*YR4gf+}_zY3Tj613oWJS zr1M$2F6(H=;Xu4#EwnP{szut+WB#kHseQ`O?vbT%uMMDD)+~^#+%10+AS^f(h(q%7X s8Wvi7j0zvoqbj=8Phpj{!Tk4Pp#yMj<#0mlR??&?32O&11(^3CIA2c literal 0 HcmV?d00001 diff --git a/PairHMM_JNI/run.sh b/PairHMM_JNI/run.sh new file mode 100755 index 000000000..8b8d44b54 --- /dev/null +++ b/PairHMM_JNI/run.sh @@ -0,0 +1,16 @@ +#!/bin/bash +rm -f *.txt +export GSA_ROOT_DIR=/home/karthikg/broad/gsa-unstable +#-Djava.library.path is needed if you are using JNI_LOGLESS_CACHING, else not needed +java -Djava.library.path=${GSA_ROOT_DIR}/PairHMM_JNI -jar ${GSA_ROOT_DIR}/dist/GenomeAnalysisTK.jar -T HaplotypeCaller \ +-R /data/broad/samples/joint_variant_calling/broad_reference/Homo_sapiens_assembly19.fasta \ +-I /data/simulated/sim1M_pairs_final.bam \ +--dbsnp /data/broad/samples/joint_variant_calling/dbSNP/00-All.vcf \ +-stand_call_conf 50.0 \ +-stand_emit_conf 10.0 \ +--pair_hmm_implementation JNI_LOGLESS_CACHING \ +-o output.raw.snps.indels.vcf + +#--pair_hmm_implementation JNI_LOGLESS_CACHING \ +#-I /data/simulated/sim1M_pairs_final.bam \ +#-I /data/broad/samples/joint_variant_calling/NA12878_low_coverage_alignment/NA12878.chrom11.ILLUMINA.bwa.CEU.low_coverage.20121211.bam \