Followed Khalid's suggestion for packing libVectorLoglessCaching into
the jar file with Maven
This commit is contained in:
parent
15fe244e4b
commit
0fe843bfd9
|
|
@ -3,6 +3,7 @@
|
||||||
/*.bed
|
/*.bed
|
||||||
*~
|
*~
|
||||||
/*.vcf
|
/*.vcf
|
||||||
|
/*.vcf.idx
|
||||||
/*.txt
|
/*.txt
|
||||||
/*.csh
|
/*.csh
|
||||||
/.*
|
/.*
|
||||||
|
|
@ -40,3 +41,38 @@ perf
|
||||||
verify
|
verify
|
||||||
maven-metadata-local.xml
|
maven-metadata-local.xml
|
||||||
dependency-reduced-pom.xml
|
dependency-reduced-pom.xml
|
||||||
|
private/gatk-private/private/
|
||||||
|
private/gatk-private/public/
|
||||||
|
private/gatk-private/target/
|
||||||
|
private/na12878kb-utils/public/
|
||||||
|
private/na12878kb-utils/target/
|
||||||
|
private/queue-private/private/
|
||||||
|
private/queue-private/public/
|
||||||
|
private/queue-private/target/
|
||||||
|
private/scala/
|
||||||
|
private/testdata
|
||||||
|
protected/gatk-protected/private/
|
||||||
|
protected/gatk-protected/public/
|
||||||
|
protected/gatk-protected/target/
|
||||||
|
public/external-example/target/
|
||||||
|
public/gatk-framework/private/
|
||||||
|
public/gatk-framework/public/
|
||||||
|
public/gatk-framework/target/
|
||||||
|
public/gatk-package/private/
|
||||||
|
public/gatk-package/public/
|
||||||
|
public/gatk-package/target/
|
||||||
|
public/gatk-queue-extgen/public/
|
||||||
|
public/gatk-queue-extgen/target/
|
||||||
|
public/gsalib/public/
|
||||||
|
public/gsalib/target/
|
||||||
|
public/queue-framework/private/
|
||||||
|
public/queue-framework/public/
|
||||||
|
public/queue-framework/target/
|
||||||
|
public/queue-package/private/
|
||||||
|
public/queue-package/public/
|
||||||
|
public/queue-package/target/
|
||||||
|
public/scala/
|
||||||
|
public/sting-utils/public/
|
||||||
|
public/sting-utils/target/
|
||||||
|
public/testdata
|
||||||
|
target/
|
||||||
|
|
|
||||||
|
|
@ -155,4 +155,8 @@ public class GraphBasedLikelihoodCalculationEngine implements LikelihoodCalculat
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close() {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -170,9 +170,10 @@ public class PairHMMLikelihoodCalculationEngine implements LikelihoodCalculation
|
||||||
@Override
|
@Override
|
||||||
public void close() {
|
public void close() {
|
||||||
if ( likelihoodsStream != null ) likelihoodsStream.close();
|
if ( likelihoodsStream != null ) likelihoodsStream.close();
|
||||||
pairHMMThreadLocal.get().close();
|
pairHMMThreadLocal.get().close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void writeDebugLikelihoods(final GATKSAMRecord processedRead, final Haplotype haplotype, final double log10l){
|
private void writeDebugLikelihoods(final GATKSAMRecord processedRead, final Haplotype haplotype, final double log10l){
|
||||||
if ( WRITE_LIKELIHOODS_TO_FILE ) {
|
if ( WRITE_LIKELIHOODS_TO_FILE ) {
|
||||||
likelihoodsStream.printf("%s %s %s %s %s %s %f%n",
|
likelihoodsStream.printf("%s %s %s %s %s %s %f%n",
|
||||||
|
|
|
||||||
|
|
@ -79,4 +79,9 @@ public class RandomLikelihoodCalculationEngine implements LikelihoodCalculationE
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close() {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ import org.broadinstitute.sting.utils.haplotype.Haplotype;
|
||||||
import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
|
import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
|
||||||
import org.broadinstitute.variant.variantcontext.Allele;
|
import org.broadinstitute.variant.variantcontext.Allele;
|
||||||
import org.broadinstitute.sting.utils.exceptions.UserException;
|
import org.broadinstitute.sting.utils.exceptions.UserException;
|
||||||
|
import static org.broadinstitute.sting.utils.pairhmm.PairHMMModel.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -258,7 +258,7 @@ public class DebugJNILoglessPairHMM extends LoglessPairHMM {
|
||||||
relative_error = 0;
|
relative_error = 0;
|
||||||
else
|
else
|
||||||
relative_error = Math.abs(abs_error/mLikelihoodArray[i]);
|
relative_error = Math.abs(abs_error/mLikelihoodArray[i]);
|
||||||
if(abs_error > 1e-6 && relative_error > 1e-6)
|
if(abs_error > 1e-5 && relative_error > 1e-5)
|
||||||
{
|
{
|
||||||
toDump = true;
|
toDump = true;
|
||||||
break;
|
break;
|
||||||
|
|
@ -67,8 +67,6 @@ import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created with IntelliJ IDEA.
|
* Created with IntelliJ IDEA.
|
||||||
* User: rpoplin, carneiro
|
* User: rpoplin, carneiro
|
||||||
|
|
@ -58,7 +58,7 @@ $(AVX_OBJECTS): CXXFLAGS=$(COMMON_COMPILATION_FLAGS) -xAVX
|
||||||
$(SSE_OBJECTS): CXXFLAGS=$(COMMON_COMPILATION_FLAGS) -xSSE4.2
|
$(SSE_OBJECTS): CXXFLAGS=$(COMMON_COMPILATION_FLAGS) -xSSE4.2
|
||||||
OBJECTS=$(NO_VECTOR_OBJECTS) $(AVX_OBJECTS) $(SSE_OBJECTS)
|
OBJECTS=$(NO_VECTOR_OBJECTS) $(AVX_OBJECTS) $(SSE_OBJECTS)
|
||||||
|
|
||||||
all: $(BIN) Sandbox.class
|
all: $(BIN) Sandbox.class copied_lib
|
||||||
|
|
||||||
-include $(addprefix $(DEPDIR)/,$(SOURCES:.cc=.d))
|
-include $(addprefix $(DEPDIR)/,$(SOURCES:.cc=.d))
|
||||||
|
|
||||||
|
|
@ -79,5 +79,11 @@ $(OBJECTS): %.o: %.cc
|
||||||
Sandbox.class: Sandbox.java
|
Sandbox.class: Sandbox.java
|
||||||
javac Sandbox.java
|
javac Sandbox.java
|
||||||
|
|
||||||
|
copied_lib: libVectorLoglessPairHMM.so
|
||||||
|
ifdef OUTPUT_DIR
|
||||||
|
mkdir -p $(OUTPUT_DIR)
|
||||||
|
rsync -a libVectorLoglessPairHMM.so $(OUTPUT_DIR)/
|
||||||
|
endif
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(BIN) *.o $(DEPDIR) *.class
|
rm -rf $(BIN) *.o $(DEPDIR) *.class
|
||||||
|
|
|
||||||
|
|
@ -191,8 +191,6 @@ inline JNIEXPORT void JNICALL Java_org_broadinstitute_sting_utils_pairhmm_Vector
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//#define DO_WARMUP
|
|
||||||
//#define DO_REPEAT_PROFILING
|
|
||||||
//Do compute over vector of testcase structs
|
//Do compute over vector of testcase structs
|
||||||
inline void compute_testcases(vector<testcase>& tc_array, unsigned numTestCases, double* likelihoodDoubleArray,
|
inline void compute_testcases(vector<testcase>& tc_array, unsigned numTestCases, double* likelihoodDoubleArray,
|
||||||
unsigned maxNumThreadsToUse)
|
unsigned maxNumThreadsToUse)
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,8 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#-Djava.library.path is needed if you are using JNI_LOGLESS_CACHING, else not needed
|
#-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/dist/GenomeAnalysisTK.jar -T HaplotypeCaller \
|
#java -Djava.library.path=${GSA_ROOT_DIR}/public/c++/VectorPairHMM -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 \
|
||||||
-I /data/simulated/sim1M_pairs_final.bam \
|
-I /data/simulated/sim1M_pairs_final.bam \
|
||||||
|
|
|
||||||
|
|
@ -306,15 +306,12 @@ uint64_t diff_time(struct timespec& prev_time)
|
||||||
return (uint64_t)((curr_time.tv_sec-prev_time.tv_sec)*1000000000+(curr_time.tv_nsec-prev_time.tv_nsec));
|
return (uint64_t)((curr_time.tv_sec-prev_time.tv_sec)*1000000000+(curr_time.tv_nsec-prev_time.tv_nsec));
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DUMP_COMPUTE_VALUES 1
|
|
||||||
//#define DO_REPEATS
|
|
||||||
#ifdef USE_PAPI
|
#ifdef USE_PAPI
|
||||||
#include "papi.h"
|
#include "papi.h"
|
||||||
#define NUM_PAPI_COUNTERS 4
|
#define NUM_PAPI_COUNTERS 4
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BATCH_SIZE 10000
|
|
||||||
#define RUN_HYBRID
|
|
||||||
void do_compute(char* filename, bool use_old_read_testcase, unsigned chunk_size, bool do_check)
|
void do_compute(char* filename, bool use_old_read_testcase, unsigned chunk_size, bool do_check)
|
||||||
{
|
{
|
||||||
FILE* fptr = 0;
|
FILE* fptr = 0;
|
||||||
|
|
@ -370,7 +367,7 @@ void do_compute(char* filename, bool use_old_read_testcase, unsigned chunk_size,
|
||||||
#endif
|
#endif
|
||||||
get_time(&start_time);
|
get_time(&start_time);
|
||||||
#pragma omp parallel for schedule(dynamic,chunk_size) num_threads(12)
|
#pragma omp parallel for schedule(dynamic,chunk_size) num_threads(12)
|
||||||
#ifdef DO_REPEATS
|
#ifdef DO_REPEAT_PROFILING
|
||||||
for(unsigned z=0;z<10;++z)
|
for(unsigned z=0;z<10;++z)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -40,4 +40,11 @@ enum ProcessorCapabilitiesEnum
|
||||||
uint64_t get_machine_capabilities();
|
uint64_t get_machine_capabilities();
|
||||||
void initialize_function_pointers(uint64_t mask=ENABLE_ALL_HARDWARE_FEATURES);
|
void initialize_function_pointers(uint64_t mask=ENABLE_ALL_HARDWARE_FEATURES);
|
||||||
void do_compute(char* filename, bool use_old_read_testcase=true, unsigned chunk_size=10000, bool do_check=true);
|
void do_compute(char* filename, bool use_old_read_testcase=true, unsigned chunk_size=10000, bool do_check=true);
|
||||||
|
|
||||||
|
//#define DO_WARMUP
|
||||||
|
//#define DO_REPEAT_PROFILING
|
||||||
|
//#define DUMP_COMPUTE_VALUES 1
|
||||||
|
#define BATCH_SIZE 10000
|
||||||
|
#define RUN_HYBRID
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,167 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.broadinstitute.sting</groupId>
|
||||||
|
<artifactId>sting-root</artifactId>
|
||||||
|
<version>2.8-SNAPSHOT</version>
|
||||||
|
<relativePath>../../public/sting-root</relativePath>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>pairhmm-native</artifactId>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
<name>PairHMM Native Libraries</name>
|
||||||
|
|
||||||
|
<description>Builds a platform dependent version of pairhmm. During install, copies it into sting-utils.</description>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<sourceEncoding>UTF-8</sourceEncoding>
|
||||||
|
<project.build.sourceEncoding>${sourceEncoding}</project.build.sourceEncoding>
|
||||||
|
<project.reporting.outputEncoding>${sourceEncoding}</project.reporting.outputEncoding>
|
||||||
|
<sting.basedir>${project.basedir}/../..</sting.basedir>
|
||||||
|
<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>
|
||||||
|
<pairhmm.build.cxxflags>-Wall</pairhmm.build.cxxflags>
|
||||||
|
<pairhmm.build.ldflags>-dynamiclib</pairhmm.build.ldflags>
|
||||||
|
</properties>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<!-- Print out the current architecture, to know which profile is being activated. -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-enforcer-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>display-info</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>validate</phase>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<!-- Run make -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>exec-maven-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>exec</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>compile</phase>
|
||||||
|
<configuration>
|
||||||
|
<executable>make</executable>
|
||||||
|
<workingDirectory>VectorPairHMM</workingDirectory>
|
||||||
|
<environmentVariables>
|
||||||
|
<ARCHITECTURE>${pairhmm.build.architecture}</ARCHITECTURE>
|
||||||
|
<LIB_EXT>${pairhmm.build.extension}</LIB_EXT>
|
||||||
|
<CXXFLAGS>${pairhmm.build.cxxflags}</CXXFLAGS>
|
||||||
|
<LDFLAGS>${pairhmm.build.ldflags}</LDFLAGS>
|
||||||
|
<OUTPUT_DIR>${project.build.directory}</OUTPUT_DIR>
|
||||||
|
</environmentVariables>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<!-- Don't actually install this artifact into the user's repo -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-install-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<skip>true</skip>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<!-- Copy the built library into sting-utils -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>default-install</id>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>install</phase>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>${pairhmm.resources.directory}</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>${project.build.directory}</directory>
|
||||||
|
<includes>
|
||||||
|
<include>**/*</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<!-- pom.xml cleanup, always sort according to the definitions in sting-root -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.google.code.sortpom</groupId>
|
||||||
|
<artifactId>maven-sortpom-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<createBackupFile>false</createBackupFile>
|
||||||
|
<predefinedSortOrder>custom_1</predefinedSortOrder>
|
||||||
|
<lineSeparator>\n</lineSeparator>
|
||||||
|
<encoding>${sourceEncoding}</encoding>
|
||||||
|
<keepBlankLines>true</keepBlankLines>
|
||||||
|
<sortDependencies>scope</sortDependencies>
|
||||||
|
<nrOfIndentSpace>4</nrOfIndentSpace>
|
||||||
|
<expandEmptyElements>false</expandEmptyElements>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
|
||||||
|
<profile>
|
||||||
|
<id>mac_x86_64</id>
|
||||||
|
<activation>
|
||||||
|
<os>
|
||||||
|
<family>mac</family>
|
||||||
|
<arch>x86_64</arch>
|
||||||
|
</os>
|
||||||
|
</activation>
|
||||||
|
<properties>
|
||||||
|
<pairhmm.build.architecture>mac_x86_64</pairhmm.build.architecture>
|
||||||
|
<pairhmm.build.extension>jnilib</pairhmm.build.extension>
|
||||||
|
<pairhmm.build.ldflags>-dynamiclib</pairhmm.build.ldflags>
|
||||||
|
</properties>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
<pairhmm.build.extension>jnilib</pairhmm.build.extension>
|
||||||
|
<pairhmm.build.cxxflags>-fPIC</pairhmm.build.cxxflags>
|
||||||
|
<pairhmm.build.ldflags>-shared</pairhmm.build.ldflags>
|
||||||
|
</properties>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
</profiles>
|
||||||
|
</project>
|
||||||
|
|
@ -332,7 +332,11 @@
|
||||||
<artifactId>maven-assembly-plugin</artifactId>
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
<version>2.4</version>
|
<version>2.4</version>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-enforcer-plugin</artifactId>
|
||||||
|
<version>1.3.1</version>
|
||||||
|
</plugin>
|
||||||
<!--
|
<!--
|
||||||
surefire/failsafe configurations are global, even across poms
|
surefire/failsafe configurations are global, even across poms
|
||||||
not directly aggregated, for example package-tests/pom.xml
|
not directly aggregated, for example package-tests/pom.xml
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue