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
|
run. The two pointers are for float and double respectively. This initialization is done
|
||||||
only once for the whole program.
|
only once for the whole program.
|
||||||
3. initialize(): To initialized the region for PairHMM. Pass haplotype bases to native
|
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
|
code through the JNIHaplotypeDataHolders class. Since the haplotype list is common across multiple
|
||||||
multiple samples in computeReadLikelihoods(), we can store the haplotype bases to the
|
samples in computeReadLikelihoods(), we can store the haplotype bases to the native code once and
|
||||||
native code once and re-use across multiple samples.
|
re-use across multiple samples.
|
||||||
4. computeLikelihoods(): Copies array references for readBases/quals etc to array of
|
4. computeLikelihoods(): Copies array references for readBases/quals etc to array of
|
||||||
JNIReadDataHolder objects. Invokes the JNI function to perform the computation and
|
JNIReadDataHolder objects. Invokes the JNI function to perform the computation and
|
||||||
updates the likelihoodMap.
|
updates the likelihoodMap.
|
||||||
|
|
@ -33,9 +33,16 @@ support all AVX intrinsics.
|
||||||
Type 'make'. This should create a library called libVectorLoglessPairHMM.so
|
Type 'make'. This should create a library called libVectorLoglessPairHMM.so
|
||||||
|
|
||||||
Running:
|
Running:
|
||||||
If libVectorLoglessPairHMM.so is compiled using icc, make sure that the Intel Composer XE
|
The default implementation of PairHMM is still LOGLESS_CACHING in HaplotypeCaller.java. To use the
|
||||||
libraries are in your LD_LIBRARY_PATH :
|
native version, use the command line argument "--pair_hmm_implementation VECTOR_LOGLESS_CACHING"
|
||||||
source <COMPOSER_XE_DIR>/bin/compilervars.sh intel64
|
(see run.sh in src/main/c++).
|
||||||
See run.sh in this directory on how to invoke HaplotypeCaller with the native library. The
|
The native library is bundled with the StingUtils jar file. When HaplotypeCaller is invoked with the
|
||||||
argument -Djava.library.path is needed if the native implementation is selected, else
|
VectorLoglessPairHMM implementation (see run.sh in the directory src/main/c++), then the library is
|
||||||
unnecessary.
|
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>
|
<packaging>pom</packaging>
|
||||||
<name>Vectorized PairHMM native libraries</name>
|
<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>
|
<properties>
|
||||||
<sourceEncoding>UTF-8</sourceEncoding>
|
<sourceEncoding>UTF-8</sourceEncoding>
|
||||||
|
|
@ -23,20 +23,12 @@
|
||||||
<sting-utils.basedir>${sting.basedir}/public/sting-utils</sting-utils.basedir>
|
<sting-utils.basedir>${sting.basedir}/public/sting-utils</sting-utils.basedir>
|
||||||
<!-- Where to place the library in sting-utils -->
|
<!-- 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>
|
<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>
|
</properties>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<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>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-enforcer-plugin</artifactId>
|
<artifactId>maven-enforcer-plugin</artifactId>
|
||||||
|
|
@ -64,7 +56,6 @@
|
||||||
<executable>make</executable>
|
<executable>make</executable>
|
||||||
<workingDirectory>src/main/c++</workingDirectory>
|
<workingDirectory>src/main/c++</workingDirectory>
|
||||||
<environmentVariables>
|
<environmentVariables>
|
||||||
<ARCHITECTURE>${pairhmm.build.architecture}</ARCHITECTURE>
|
|
||||||
<JRE_HOME>${java.home}</JRE_HOME>
|
<JRE_HOME>${java.home}</JRE_HOME>
|
||||||
<OUTPUT_DIR>${project.build.directory}</OUTPUT_DIR>
|
<OUTPUT_DIR>${project.build.directory}</OUTPUT_DIR>
|
||||||
</environmentVariables>
|
</environmentVariables>
|
||||||
|
|
@ -125,21 +116,4 @@
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</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>
|
</project>
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ then
|
||||||
pair_hmm_implementation=$1;
|
pair_hmm_implementation=$1;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#-Djava.library.path is needed if you are using JNI_LOGLESS_CACHING, else not needed
|
#-Djava.library.path is needed if you wish to override the default 'packed' library
|
||||||
#java -Djava.library.path=${GSA_ROOT_DIR}/public/c++/VectorPairHMM -jar $GSA_ROOT_DIR/target/GenomeAnalysisTK.jar -T HaplotypeCaller \
|
#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 \
|
java -jar $GSA_ROOT_DIR/target/GenomeAnalysisTK.jar -T HaplotypeCaller \
|
||||||
--dbsnp /data/broad/samples/joint_variant_calling/dbSNP/00-All.vcf \
|
--dbsnp /data/broad/samples/joint_variant_calling/dbSNP/00-All.vcf \
|
||||||
-R /opt/Genomics/ohsu/dnapipeline/humanrefgenome/human_g1k_v37.fasta \
|
-R /opt/Genomics/ohsu/dnapipeline/humanrefgenome/human_g1k_v37.fasta \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue