Skip to content

Commit 7c097ec

Browse files
committed
Build update. Update mixcr parser. Fixes #107
1 parent fe3d7ac commit 7c097ec

File tree

14 files changed

+106
-156
lines changed

14 files changed

+106
-156
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@ dependency-reduced-pom.xml
77
.RData
88

99
.Rproj.user
10+
11+
.gradle/
12+
build/
13+
out/

.travis.yml

+1-9
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,16 @@
11
language: java
22
sudo: required
33

4-
jdk: oraclejdk9
5-
6-
addons:
7-
apt:
8-
packages:
9-
- oracle-java9-installer
4+
jdk: openjdk10
105

116
install:
12-
- jdk_switcher use oraclejdk8
137
- curl -OL https://raw.githubusercontent.com/metacran/r-builder/master/pkg-build.sh
148
- chmod 755 pkg-build.sh
159
- ./pkg-build.sh bootstrap
1610
- export PATH="$PATH:`./pkg-build.sh r_path`"
1711

1812
script:
19-
- jdk_switcher use oraclejdk8
2013
- mvn clean install -Dmaven.javadoc.skip=true -q
21-
- jdk_switcher use oraclejdk9
2214
- java -jar target/vdjtools-*.jar RInstall
2315
- wget https://github.com/mikessh/vdjtools-examples/releases/download/1.1/aging_lite.zip
2416
- unzip aging_lite.zip

build.gradle

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
apply plugin: 'groovy'
2+
apply plugin: 'application'
3+
4+
sourceCompatibility = 10
5+
targetCompatibility = 10
6+
7+
group = 'com.antigenomics'
8+
version = '1.2.0'
9+
10+
mainClassName = 'com.antigenomics.vdjtools.VdjTools'
11+
12+
repositories {
13+
mavenCentral()
14+
maven { url 'https://jitpack.io' }
15+
}
16+
17+
jar {
18+
baseName = 'vdjtools'
19+
version = "$version"
20+
21+
manifest {
22+
attributes("Main-Class": "$mainClassName", "Implementation-Version": version)
23+
}
24+
25+
from {
26+
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
27+
}
28+
}
29+
30+
sourceSets {
31+
main {
32+
java { srcDirs = [] } // no source dirs for the java compiler
33+
groovy { srcDirs = ["src/main/java", "src/main/groovy"] } // compile everything in src/ with groovy
34+
}
35+
test {
36+
java { srcDirs = [] } // no source dirs for the java compiler
37+
groovy { srcDirs = ["src/test/java", "src/test/groovy"] } // compile everything in src/ with groovy
38+
}
39+
}
40+
41+
dependencies {
42+
compile 'org.codehaus.groovy:groovy-all:2.5.2'
43+
compile 'org.codehaus.gpars:gpars:1.2.1'
44+
compile 'junit:junit:4.12'
45+
compile 'com.milaboratory:milib:1.8.3'
46+
compile 'commons-io:commons-io:1.2'
47+
compile 'commons-cli:commons-cli:1.3.1'
48+
compile 'org.apache.commons:commons-lang3:3.4'
49+
}

jitpack.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
jdk:
2+
- openjdk10

pom.xml

-127
This file was deleted.

src/main/groovy/com/antigenomics/vdjtools/basic/SegmentUsage.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ public class SegmentUsage {
199199
* @return
200200
*/
201201
public double[][] vjUsageMatrix(int sampleIndex) {
202-
double sampleTotal = (double) jSegmentUsage.values().collect { it[sampleIndex] }.sum() ?: 0.0
202+
double sampleTotal = (double) (jSegmentUsage.values().collect { it[sampleIndex] }.sum() ?: 0.0)
203203

204204
def matrix = new double[jSegmentUsage.size()][vSegmentUsage.size()]
205205

src/main/groovy/com/antigenomics/vdjtools/diversity/ChaoEstimator.groovy

+1-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import com.antigenomics.vdjtools.misc.AtomicDouble
3333
import com.antigenomics.vdjtools.misc.ExecUtil
3434
import com.antigenomics.vdjtools.misc.MathUtil
3535
import groovyx.gpars.GParsPool
36-
import sun.reflect.generics.reflectiveObjects.NotImplementedException
3736

3837
import static com.antigenomics.vdjtools.diversity.RichnessEstimateType.*
3938

@@ -113,7 +112,7 @@ class ChaoEstimator {
113112
*/
114113
SpeciesRichness chaoI(long interpolateTo) {
115114
if (n > Integer.MAX_VALUE)
116-
throw new NotImplementedException()
115+
throw new UnsupportedOperationException()
117116

118117
if (interpolateTo < 0 || interpolateTo > n)
119118
throw new IllegalArgumentException("Should interpolate within the size of sample")

src/main/groovy/com/antigenomics/vdjtools/diversity/ResamplingEstimator.groovy

+3-4
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import com.antigenomics.vdjtools.overlap.OverlapType
3333
import com.antigenomics.vdjtools.preprocess.DownSampler
3434
import com.antigenomics.vdjtools.sample.Sample
3535
import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics
36-
import sun.reflect.generics.reflectiveObjects.NotImplementedException
3736

3837
/**
3938
* Class that computes richness estimates and diversity indices.
@@ -148,7 +147,7 @@ class ResamplingEstimator extends DiversityEstimator {
148147
*/
149148
@Override
150149
DiversityIndex getDxxIndex(double fraction) {
151-
throw new NotImplementedException()
150+
throw new UnsupportedOperationException()
152151
}
153152

154153
/**
@@ -196,7 +195,7 @@ class ResamplingEstimator extends DiversityEstimator {
196195
*/
197196
@Override
198197
SpeciesRichness getEfronThisted(int maxDepth, double cvThreshold) {
199-
throw new NotImplementedException()
198+
throw new UnsupportedOperationException()
200199
}
201200

202201
/**
@@ -225,6 +224,6 @@ class ResamplingEstimator extends DiversityEstimator {
225224

226225
@Override
227226
FrequencyTable getFrequencyTable() {
228-
throw new NotImplementedException()
227+
throw new UnsupportedOperationException()
229228
}
230229
}

src/main/groovy/com/antigenomics/vdjtools/io/parser/MiXcrParser.groovy

+23-9
Original file line numberDiff line numberDiff line change
@@ -74,21 +74,35 @@ public class MiXcrParser extends ClonotypeStreamParser {
7474
it.equalsIgnoreCase("Clone fraction") || it.equalsIgnoreCase("cloneFraction")
7575
}
7676
cdr3ntColumn = splitHeaderLine.findIndexOf {
77-
it.equalsIgnoreCase("N. Seq. CDR3") || it.equalsIgnoreCase("nSeqCDR3")
77+
it.equalsIgnoreCase("N. Seq. CDR3") || it.equalsIgnoreCase("nSeqCDR3") || it.equalsIgnoreCase("nSeqImputedCDR3")
7878
}
7979
cdr3aaColumn = splitHeaderLine.findIndexOf {
80-
it.equalsIgnoreCase("AA. Seq. CDR3") || it.equalsIgnoreCase("aaSeqCDR3")
80+
it.equalsIgnoreCase("AA. Seq. CDR3") || it.equalsIgnoreCase("aaSeqCDR3") || it.equalsIgnoreCase("aaSeqImputedCDR3")
81+
}
82+
vAlignmentsColumn = splitHeaderLine.findIndexOf {
83+
it =~ /(?i)V alignment/ || it =~ /(?i)VAlignment/ || it =~ /(?i)allVAlignments/
84+
}
85+
dAlignmentsColumn = splitHeaderLine.findIndexOf {
86+
it =~ /(?i)D alignment/ || it =~ /(?i)DAlignment/ || it =~ /(?i)allDAlignments/
87+
}
88+
jAlignmentsColumn = splitHeaderLine.findIndexOf {
89+
it =~ /(?i)J alignment/ || it =~ /(?i)JAlignment/ || it =~ /(?i)allJAlignments/
90+
}
91+
vHitsColumn = splitHeaderLine.findIndexOf {
92+
it =~ /(?i)V hits/ || it =~ /(?i)VHits/ || it =~ /(?i)allVHitsWithScore/
93+
}
94+
dHitsColumn = splitHeaderLine.findIndexOf {
95+
it =~ /(?i)D hits/ || it =~ /(?i)DHits/ || it =~ /(?i)allDHitsWithScore/
96+
}
97+
jHitsColumn = splitHeaderLine.findIndexOf {
98+
it =~ /(?i)J hits/ || it =~ /(?i)JHits/ || it =~ /(?i)allJHitsWithScore/
8199
}
82-
vAlignmentsColumn = splitHeaderLine.findIndexOf { it =~ /(?i)V alignment/ || it =~ /(?i)VAlignment/ }
83-
dAlignmentsColumn = splitHeaderLine.findIndexOf { it =~ /(?i)D alignment/ || it =~ /(?i)DAlignment/ }
84-
jAlignmentsColumn = splitHeaderLine.findIndexOf { it =~ /(?i)J alignment/ || it =~ /(?i)JAlignment/ }
85-
vHitsColumn = splitHeaderLine.findIndexOf { it =~ /(?i)V hits/ || it =~ /(?i)VHits/ }
86-
dHitsColumn = splitHeaderLine.findIndexOf { it =~ /(?i)D hits/ || it =~ /(?i)DHits/ }
87-
jHitsColumn = splitHeaderLine.findIndexOf { it =~ /(?i)J hits/ || it =~ /(?i)JHits/ }
88100
if (countColumn == -1 || freqColumn == -1 || cdr3ntColumn == -1 || cdr3aaColumn == -1 ||
89101
vAlignmentsColumn == -1 || dAlignmentsColumn == -1 || jAlignmentsColumn == -1)
90102
throw new RuntimeException("Some mandatory columns are absent in the input file.")
91103

104+
//println([countColumn, freqColumn,cdr3ntColumn,cdr3aaColumn,vAlignmentsColumn,dAlignmentsColumn,jAlignmentsColumn])
105+
92106
numberOfColumns = splitHeaderLine.size()
93107

94108
// Initialized
@@ -104,7 +118,7 @@ public class MiXcrParser extends ClonotypeStreamParser {
104118

105119
def splitString = clonotypeString.split(software.delimiter, numberOfColumns)
106120

107-
def count = splitString[countColumn].toInteger()
121+
def count = (int) (splitString[countColumn].toDouble())
108122
def freq = splitString[freqColumn].toDouble()
109123

110124
def cdr3nt = splitString[cdr3ntColumn]

src/main/groovy/com/antigenomics/vdjtools/overlap/OverlapEvaluator.groovy

+1-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import com.antigenomics.vdjtools.misc.ExecUtil
3737
import com.antigenomics.vdjtools.misc.MathUtil
3838
import org.apache.commons.math3.stat.correlation.PearsonsCorrelation
3939
import org.apache.commons.math3.stat.correlation.SpearmansCorrelation
40-
import sun.reflect.generics.reflectiveObjects.NotImplementedException
4140

4241
import static com.antigenomics.vdjtools.overlap.OverlapMetric.*
4342

@@ -228,7 +227,7 @@ class OverlapEvaluator {
228227
getSpectratype(j).histogram)
229228

230229
default:
231-
throw new NotImplementedException()
230+
throw new UnsupportedOperationException()
232231
}
233232
}
234233

src/main/java/com/antigenomics/vdjtools/join/ClonotypeKeyGen.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import com.antigenomics.vdjtools.join.key.*;
3535
import com.antigenomics.vdjtools.overlap.OverlapType;
3636
import com.antigenomics.vdjtools.sample.Clonotype;
37-
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
3837

3938
import java.util.HashSet;
4039
import java.util.Set;
@@ -118,7 +117,7 @@ public ClonotypeKey generateKey(Clonotype clonotype) {
118117
return new StrictKey(clonotype);
119118

120119
default:
121-
throw new NotImplementedException();
120+
throw new UnsupportedOperationException();
122121
}
123122
}
124123

0 commit comments

Comments
 (0)