diff --git a/README_release.txt b/README_release.txt
index fc174890e..4fe1f91fb 100644
--- a/README_release.txt
+++ b/README_release.txt
@@ -9,13 +9,6 @@
wget http://www.antlr.org/download/antlr-4.5.1-complete.jar
mvn install:install-file -Dfile=antlr-4.5.1-complete.jar -DgroupId=org.antlr -DartifactId=antlr -Dversion=4.5.1 -Dpackaging=jar
- # BioJava
- wget http://biojava.org/download/maven/org/biojava/biojava3-core/3.0.7/biojava3-core-3.0.7.jar
- mvn install:install-file -Dfile=biojava3-core-3.0.7.jar -DgroupId=org.biojava -DartifactId=biojava3-core -Dversion=3.0.7 -Dpackaging=jar
-
- wget http://biojava.org/download/maven/org/biojava/biojava3-structure/3.0.7/biojava3-structure-3.0.7.jar
- mvn install:install-file -Dfile=biojava3-structure-3.0.7.jar -DgroupId=org.biojava -DartifactId=biojava3-structure -Dversion=3.0.7 -Dpackaging=jar
-
1) Change version numbers:
- Update SnpEff pom.xml
- Update SnpSift pom.xml
diff --git a/pom.xml b/pom.xml
index f22572b5c..c0219a64d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -105,14 +105,22 @@
- org.biojava
- biojava3-core
- 3.0.7
+ org.biojava
+ biojava-core
+ 4.2.2
+ compile
- org.biojava
- biojava3-structure
- 3.0.7
+ org.biojava
+ biojava-structure
+ 4.2.2
+
+
+ org.biojava.thirdparty
+ forester
+
+
+ compile
diff --git a/src/main/java/org/snpeff/pdb/DistanceResult.java b/src/main/java/org/snpeff/pdb/DistanceResult.java
index 2587d53a4..f569358bc 100644
--- a/src/main/java/org/snpeff/pdb/DistanceResult.java
+++ b/src/main/java/org/snpeff/pdb/DistanceResult.java
@@ -1,6 +1,6 @@
package org.snpeff.pdb;
-import org.biojava.bio.structure.AminoAcid;
+import org.biojava.nbio.structure.AminoAcid;
import org.snpeff.interval.Chromosome;
import org.snpeff.interval.Transcript;
import org.snpeff.util.Gpr;
@@ -184,14 +184,14 @@ public boolean hasValidCoords() {
}
public void setAa1(AminoAcid aa) {
- setPdbId(aa.getChain().getParent().getPDBCode());
+ setPdbId(aa.getChain().getStructure().getPDBCode());
pdbChainId1 = aa.getChainId();
aaPos1 = aa.getResidueNumber().getSeqNum() - 1;
aa1 = aa.getChemComp().getOne_letter_code().charAt(0);
}
public void setAa2(AminoAcid aa) {
- setPdbId(aa.getChain().getParent().getPDBCode());
+ setPdbId(aa.getChain().getStructure().getPDBCode());
pdbChainId2 = aa.getChainId();
aaPos2 = aa.getResidueNumber().getSeqNum() - 1;
aa2 = aa.getChemComp().getOne_letter_code().charAt(0);
diff --git a/src/main/java/org/snpeff/pdb/PdbFile.java b/src/main/java/org/snpeff/pdb/PdbFile.java
index 43e029897..08f293460 100644
--- a/src/main/java/org/snpeff/pdb/PdbFile.java
+++ b/src/main/java/org/snpeff/pdb/PdbFile.java
@@ -4,10 +4,10 @@
import java.io.IOException;
import java.io.InputStream;
-import org.biojava.bio.structure.Structure;
-import org.biojava.bio.structure.io.FileParsingParameters;
-import org.biojava.bio.structure.io.PDBFileParser;
-import org.biojava3.core.util.InputStreamProvider;
+import org.biojava.nbio.core.util.InputStreamProvider;
+import org.biojava.nbio.structure.Structure;
+import org.biojava.nbio.structure.io.FileParsingParameters;
+import org.biojava.nbio.structure.io.PDBFileParser;
/**
* A structure that reads PDB files
diff --git a/src/main/java/org/snpeff/snpEffect/commandLine/SnpEffCmdPdb.java b/src/main/java/org/snpeff/snpEffect/commandLine/SnpEffCmdPdb.java
index ecb0435ad..74e8db79b 100644
--- a/src/main/java/org/snpeff/snpEffect/commandLine/SnpEffCmdPdb.java
+++ b/src/main/java/org/snpeff/snpEffect/commandLine/SnpEffCmdPdb.java
@@ -15,16 +15,17 @@
import java.util.Set;
import java.util.zip.GZIPOutputStream;
-import org.biojava.bio.structure.AminoAcid;
-import org.biojava.bio.structure.Atom;
-import org.biojava.bio.structure.Calc;
-import org.biojava.bio.structure.Chain;
-import org.biojava.bio.structure.Compound;
-import org.biojava.bio.structure.DBRef;
-import org.biojava.bio.structure.Group;
-import org.biojava.bio.structure.Structure;
-import org.biojava.bio.structure.StructureException;
-import org.biojava.bio.structure.io.PDBFileReader;
+import org.biojava.nbio.structure.AminoAcid;
+import org.biojava.nbio.structure.Atom;
+import org.biojava.nbio.structure.Calc;
+import org.biojava.nbio.structure.Chain;
+import org.biojava.nbio.structure.Compound;
+import org.biojava.nbio.structure.DBRef;
+import org.biojava.nbio.structure.Group;
+import org.biojava.nbio.structure.GroupType;
+import org.biojava.nbio.structure.Structure;
+import org.biojava.nbio.structure.StructureException;
+import org.biojava.nbio.structure.io.PDBFileReader;
import org.snpeff.SnpEff;
import org.snpeff.interval.Gene;
import org.snpeff.interval.Transcript;
@@ -171,7 +172,7 @@ List checkSequencePdbGenome(Structure pdbStruct, Chain chain, Str
if (debug) Gpr.debug("\tMapping OK :\t" + trId + "\terror: " + err);
int trAaLen = tr.protein().length();
- int pdbAaLen = chain.getAtomGroups("amino").size();
+ int pdbAaLen = chain.getAtomGroups(GroupType.AMINOACID).size();
for (IdMapperEntry idm : idmapsOri) {
if (trId.equals(idm.trId) && pdbId.equals(idm.pdbId)) {
@@ -261,12 +262,8 @@ void deleteOuptut(String outputPdbFile) {
for (Atom atom1 : aa1.getAtoms())
for (Atom atom2 : aa2.getAtoms()) {
- try {
- double dist = Calc.getDistance(atom1, atom2);
- distMin = Math.min(distMin, dist);
- } catch (StructureException e) {
- throw new RuntimeException(e);
- }
+ double dist = Calc.getDistance(atom1, atom2);
+ distMin = Math.min(distMin, dist);
}
return distMin;
@@ -307,25 +304,15 @@ boolean filterPdb(Structure pdbStruct) {
* I.e.: Organism matches
*/
boolean filterPdbChain(Chain chain) {
- if (chain.getHeader() == null) return false;
-
- // Try 'ORGANISM_SCINETIFIC'
- String orgs = chain.getHeader().getOrganismScientific();
- if (orgs != null && orgs.indexOf(pdbOrganismScientific) >= 0) return true;
-
- // Try 'ORGANISM_COMMON'
- orgs = chain.getHeader().getOrganismCommon();
- if (orgs == null) return false;
-
- // Multiple organisms?
- if (orgs.indexOf(' ') > 0) {
- for (String org : orgs.split("\\s"))
- if (org.equals(pdbOrganismCommon)) return true;
-
- }
-
- return orgs.equals(pdbOrganismCommon);
- }
+ // note: Compound is replaced by EntityInfo in biojava 5.x
+ for (Compound compound : chain.getStructure().getCompounds()) {
+ if (contains(compound.getOrganismCommon(), pdbOrganismCommon) ||
+ contains(compound.getOrganismScientific(), pdbOrganismScientific)) {
+ return true;
+ }
+ }
+ return false;
+ }
/**
* Return true if the transcript passes the criteria
@@ -876,4 +863,15 @@ public void usage(String message) {
System.exit(-1);
}
+
+ /**
+ * Return true if s1
is not null and contains s2
.
+ *
+ * @param s1 string
+ * @param s2 string
+ * @return true if s1
is not null and contains s2
+ */
+ private static boolean contains(String s1, String s2) {
+ return s1 != null && s1.indexOf(s2) >= 0;
+ }
}