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; + } }