Moved JNI_README
This commit is contained in:
parent
c645725fc3
commit
2d0ce45bb0
|
|
@ -9,9 +9,9 @@ function implementation that is supported on the machine on which the program is
|
|||
run. The two pointers are for float and double respectively. This initialization is done
|
||||
only once for the whole program.
|
||||
3. initialize(): To initialized the region for PairHMM. Pass haplotype bases to native
|
||||
code through the JNIHaplotypeDataHolders class. Since the haplotype list is common across
|
||||
multiple samples in computeReadLikelihoods(), we can store the haplotype bases to the
|
||||
native code once and re-use across multiple samples.
|
||||
code through the JNIHaplotypeDataHolders class. Since the haplotype list is common across multiple
|
||||
samples in computeReadLikelihoods(), we can store the haplotype bases to the native code once and
|
||||
re-use across multiple samples.
|
||||
4. computeLikelihoods(): Copies array references for readBases/quals etc to array of
|
||||
JNIReadDataHolder objects. Invokes the JNI function to perform the computation and
|
||||
updates the likelihoodMap.
|
||||
|
|
@ -33,9 +33,16 @@ support all AVX intrinsics.
|
|||
Type 'make'. This should create a library called libVectorLoglessPairHMM.so
|
||||
|
||||
Running:
|
||||
If libVectorLoglessPairHMM.so is compiled using icc, make sure that the Intel Composer XE
|
||||
libraries are in your LD_LIBRARY_PATH :
|
||||
source <COMPOSER_XE_DIR>/bin/compilervars.sh intel64
|
||||
See run.sh in this directory on how to invoke HaplotypeCaller with the native library. The
|
||||
argument -Djava.library.path is needed if the native implementation is selected, else
|
||||
unnecessary.
|
||||
The default implementation of PairHMM is still LOGLESS_CACHING in HaplotypeCaller.java. To use the
|
||||
native version, use the command line argument "--pair_hmm_implementation VECTOR_LOGLESS_CACHING"
|
||||
(see run.sh in src/main/c++).
|
||||
The native library is bundled with the StingUtils jar file. When HaplotypeCaller is invoked with the
|
||||
VectorLoglessPairHMM implementation (see run.sh in the directory src/main/c++), then the library is
|
||||
unpacked from the jar file, copied to the /tmp directory (with a unique id) and loaded by the Java class
|
||||
VectorLoglessPairHMM in the constructor (if it has not been loaded already).
|
||||
The default library can be overridden by using the -Djava.library.path argument for the JVM to pass
|
||||
the path to the library. If the library libVectorLoglessPairHMM.so can be found in
|
||||
java.library.path, then it is loaded and the 'packed' library is not used.
|
||||
See run.sh in this directory on how to invoke HaplotypeCaller with the vector implementation of
|
||||
PairHMM. The argument -Djava.library.path is needed if you wish to override the default packed
|
||||
library, else unnecessary.
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
<packaging>pom</packaging>
|
||||
<name>Vectorized PairHMM native libraries</name>
|
||||
|
||||
<description>Builds a GNU/Linux x86_64 version of VectorPairHMM. During install, copies it into sting-utils.</description>
|
||||
<description>Builds a GNU/Linux x86_64 library of VectorPairHMM using icc (Intel C++ compiler). During install, copies it into sting-utils. Neither tested nor expected to work on any other platform.</description>
|
||||
|
||||
<properties>
|
||||
<sourceEncoding>UTF-8</sourceEncoding>
|
||||
|
|
@ -23,20 +23,12 @@
|
|||
<sting-utils.basedir>${sting.basedir}/public/sting-utils</sting-utils.basedir>
|
||||
<!-- Where to place the library in sting-utils -->
|
||||
<pairhmm.resources.directory>${sting-utils.basedir}/src/main/resources/org/broadinstitute/sting/utils/pairhmm</pairhmm.resources.directory>
|
||||
|
||||
<!-- Per architecture properties, overriden in profiles below -->
|
||||
<!--
|
||||
NOTE: cxxflags is for currently only for -fPIC on linux.
|
||||
For other architectures still have to pass something, until possibly
|
||||
switching to command line arguments with exec-maven-plugin 1.3
|
||||
http://jira.codehaus.org/browse/MEXEC-104
|
||||
-->
|
||||
<pairhmm.build.architecture>x86_64</pairhmm.build.architecture>
|
||||
<pairhmm.build.extension>so</pairhmm.build.extension>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<!-- Print out the current architecture, to know which profile is being activated. -->
|
||||
<!-- Print out the architecture - works only on GNU/Linux x86_64 systems -->
|
||||
<!-- Neither tested nor expected to work on any other platform. -->
|
||||
<!-- Requires icc (Intel C++ compiler) to be in your PATH. -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
|
|
@ -64,7 +56,6 @@
|
|||
<executable>make</executable>
|
||||
<workingDirectory>src/main/c++</workingDirectory>
|
||||
<environmentVariables>
|
||||
<ARCHITECTURE>${pairhmm.build.architecture}</ARCHITECTURE>
|
||||
<JRE_HOME>${java.home}</JRE_HOME>
|
||||
<OUTPUT_DIR>${project.build.directory}</OUTPUT_DIR>
|
||||
</environmentVariables>
|
||||
|
|
@ -125,21 +116,4 @@
|
|||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
|
||||
<profile>
|
||||
<id>linux_x86_64</id>
|
||||
<activation>
|
||||
<os>
|
||||
<name>linux</name>
|
||||
<arch>amd64</arch>
|
||||
</os>
|
||||
</activation>
|
||||
<properties>
|
||||
<pairhmm.build.architecture>linux_x86_64</pairhmm.build.architecture>
|
||||
</properties>
|
||||
</profile>
|
||||
|
||||
</profiles>
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ then
|
|||
pair_hmm_implementation=$1;
|
||||
fi
|
||||
|
||||
#-Djava.library.path is needed if you are using JNI_LOGLESS_CACHING, else not needed
|
||||
#java -Djava.library.path=${GSA_ROOT_DIR}/public/c++/VectorPairHMM -jar $GSA_ROOT_DIR/target/GenomeAnalysisTK.jar -T HaplotypeCaller \
|
||||
#-Djava.library.path is needed if you wish to override the default 'packed' library
|
||||
#java -Djava.library.path=${GSA_ROOT_DIR}/public/VectorPairHMM/src/main/c++ -jar $GSA_ROOT_DIR/target/GenomeAnalysisTK.jar -T HaplotypeCaller \
|
||||
java -jar $GSA_ROOT_DIR/target/GenomeAnalysisTK.jar -T HaplotypeCaller \
|
||||
--dbsnp /data/broad/samples/joint_variant_calling/dbSNP/00-All.vcf \
|
||||
-R /opt/Genomics/ohsu/dnapipeline/humanrefgenome/human_g1k_v37.fasta \
|
||||
|
|
|
|||
Loading…
Reference in New Issue