X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fext%2Fjmol%2FJmolParserTest.java;fp=test%2Fjalview%2Fext%2Fjmol%2FJmolParserTest.java;h=0000000000000000000000000000000000000000;hb=4f77328104498504339216829abf5ea87e2791ec;hp=0977669cf62501104800e02c93c2c61f77486362;hpb=2b8c0785318a3528e1876e8e2dd48b7d831eae69;p=jalview.git
diff --git a/test/jalview/ext/jmol/JmolParserTest.java b/test/jalview/ext/jmol/JmolParserTest.java
deleted file mode 100644
index 0977669..0000000
--- a/test/jalview/ext/jmol/JmolParserTest.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see .
- * The Jalview Authors are detailed in the 'AUTHORS' file.
- */
-package jalview.ext.jmol;
-
-import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertNotNull;
-import static org.testng.AssertJUnit.assertTrue;
-
-import jalview.bin.Cache;
-import jalview.datamodel.Alignment;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.SequenceI;
-import jalview.gui.AlignFrame;
-import jalview.gui.JvOptionPane;
-import jalview.io.DataSourceType;
-import jalview.io.FileLoader;
-import jalview.structure.StructureImportSettings;
-import jalview.structure.StructureImportSettings.StructureParser;
-
-import java.util.Vector;
-
-import org.jmol.c.STR;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import mc_view.PDBfile;
-
-/**
- * @author jimp
- *
- */
-public class JmolParserTest
-{
-
- @BeforeClass(alwaysRun = true)
- public void setUpJvOptionPane()
- {
- JvOptionPane.setInteractiveMode(false);
- JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
- }
-
- /*
- * 1GAQ has been reduced to alpha carbons only
- * 1QCF is the full PDB file including headers, HETATM etc
- */
- String[] testFile = new String[] { "./examples/1gaq.txt",
- "./test/jalview/ext/jmol/1xyz.pdb",
- "./test/jalview/ext/jmol/1QCF.pdb" };
-
- //@formatter:off
- // a modified and very cut-down extract of 4UJ4
- String pastePDBDataWithChainBreak =
- "HEADER TRANSPORT PROTEIN 08-APR-15 4UJ4\n" +
- // chain B has missing residues; these should all go in the same sequence:
- "ATOM 1909 CA VAL B 358 21.329 -19.739 -67.740 1.00201.05 C\n" +
- "ATOM 1916 CA GLY B 359 21.694 -23.563 -67.661 1.00198.09 C\n" +
- "ATOM 1920 CA LYS B 367 32.471 -12.135 -77.100 1.00257.97 C\n" +
- "ATOM 1925 CA ALA B 368 31.032 -9.324 -74.946 1.00276.01 C\n" +
- // switch to chain C; should be a separate sequence
- "ATOM 1930 CA SER C 369 32.589 -7.517 -71.978 1.00265.44 C\n" +
- "ATOM 1936 CA ALA C 370 31.650 -6.849 -68.346 1.00249.48 C\n";
- //@formatter:on
-
- //@formatter:off
- // a very cut-down extract of 1ejg
- String pdbWithAltLoc =
- "HEADER TRANSPORT PROTEIN 08-APR-15 1EJG\n" +
- "ATOM 448 CA ALA A 24 6.619 16.195 1.970 1.00 1.65 C\n" +
- "ATOM 458 CA ALEU A 25 3.048 14.822 1.781 0.57 1.48 C\n" +
- // alternative residue 25 entries (with ILE instead of LEU) should be ignored:
- "ATOM 478 CA BILE A 25 3.048 14.822 1.781 0.21 1.48 C\n" +
- // including the next altloc causes the unit test to fail but it works with the full file
- // not sure why!
- // "ATOM 479 CA CILE A 25 3.048 14.822 1.781 0.22 1.48 C\n" +
- "ATOM 512 CA CYS A 26 4.137 11.461 3.154 1.00 1.52 C\n";
- //@formatter:on
-
- @BeforeMethod(alwaysRun = true)
- public void setUp()
- {
- Cache.loadProperties("test/jalview/io/testProps.jvprops");
- Cache.setPropertyNoSave("STRUCT_FROM_PDB",
- Boolean.TRUE.toString());
- Cache.setPropertyNoSave("ADD_TEMPFACT_ANN",
- Boolean.FALSE.toString());
- Cache.setPropertyNoSave("ADD_SS_ANN",
- Boolean.TRUE.toString());
- StructureImportSettings.setDefaultStructureFileFormat("PDB");
- StructureImportSettings
- .setDefaultPDBFileParser(StructureParser.JALVIEW_PARSER);
- }
-
- @Test(groups = { "Functional" })
- public void testAlignmentLoader() throws Exception
- {
- for (String f : testFile)
- {
- FileLoader fl = new jalview.io.FileLoader(false);
- AlignFrame af = fl.LoadFileWaitTillLoaded(f, DataSourceType.FILE);
- validateSecStrRows(af.getViewport().getAlignment());
- }
- }
-
- @Test(groups = { "Functional" })
- public void testFileParser() throws Exception
- {
- for (String pdbStr : testFile)
- {
- PDBfile mctest = new PDBfile(false, false, false, pdbStr,
- DataSourceType.FILE);
- JmolParser jtest = new JmolParser(pdbStr, DataSourceType.FILE);
- Vector seqs = jtest.getSeqs(), mcseqs = mctest.getSeqs();
-
- assertTrue("No sequences extracted from testfile\n"
- + (jtest.hasWarningMessage() ? jtest.getWarningMessage()
- : "(No warnings raised)"),
- seqs != null && seqs.size() > 0);
- for (SequenceI sq : seqs)
- {
- assertEquals(
- "JMol didn't process " + pdbStr
- + " to the same sequence as MCView",
- sq.getSequenceAsString(),
- mcseqs.remove(0).getSequenceAsString());
- AlignmentI al = new Alignment(new SequenceI[] { sq });
- validateSecStrRows(al);
- }
- }
-
- }
-
- private void validateSecStrRows(AlignmentI al)
- {
- if (!al.isNucleotide())
- {
- for (SequenceI asq : al.getSequences())
- {
- SequenceI sq = asq;
- boolean hasDs = false;
- while (sq.getDatasetSequence() != null
- && sq.getAnnotation() == null)
- {
- sq = sq.getDatasetSequence();
- hasDs = true;
- }
- checkFirstAAIsAssoc(sq);
- if (hasDs)
- {
- // also verify if alignment sequence has annotation on it
- // that is correctly mapped
- checkFirstAAIsAssoc(asq);
- }
- }
- }
- }
-
- private void checkFirstAAIsAssoc(SequenceI sq)
- {
- assertTrue(
- "No secondary structure assigned for protein sequence for "
- + sq.getName(),
- sq.getAnnotation() != null && sq.getAnnotation().length >= 1
- && sq.getAnnotation()[0].hasIcons);
- assertTrue(
- "Secondary structure not associated for sequence "
- + sq.getName(),
- sq.getAnnotation()[0].sequenceRef == sq);
- }
-
- /**
- * Test parsing a chain with missing residues
- *
- * @throws Exception
- */
- @Test(groups = { "Functional" })
- public void testParse_missingResidues() throws Exception
- {
- PDBfile mctest = new PDBfile(false, false, false,
- pastePDBDataWithChainBreak, DataSourceType.PASTE);
- JmolParser jtest = new JmolParser(pastePDBDataWithChainBreak,
- DataSourceType.PASTE);
- Vector seqs = jtest.getSeqs();
- Vector mcseqs = mctest.getSeqs();
-
- assertEquals("Failed to find 2 sequences\n", 2, seqs.size());
- assertEquals("Failed to find 2 sequences\n", 2, mcseqs.size());
- assertEquals("VGKA", seqs.get(0).getSequenceAsString());
- assertEquals("VGKA", mcseqs.get(0).getSequenceAsString());
- assertEquals("SA", seqs.get(1).getSequenceAsString());
- assertEquals("SA", mcseqs.get(1).getSequenceAsString());
- }
-
- /**
- * Test parsing a chain with 'altloc' residues
- *
- * @throws Exception
- */
- @Test(groups = { "Functional" })
- public void testParse_alternativeResidues() throws Exception
- {
- PDBfile mctest = new PDBfile(false, false, false, pdbWithAltLoc,
- DataSourceType.PASTE);
- JmolParser jtest = new JmolParser(pdbWithAltLoc, DataSourceType.PASTE);
- Vector seqs = jtest.getSeqs();
- Vector mcseqs = mctest.getSeqs();
-
- assertEquals("Failed to find 1 sequence\n", 1, seqs.size());
- assertEquals("Failed to find 1 sequence\n", 1, mcseqs.size());
- assertEquals("ALC", seqs.get(0).getSequenceAsString());
- assertEquals("ALC", mcseqs.get(0).getSequenceAsString());
- }
-
- @Test(groups = "Functional")
- public void testSetSecondaryStructure()
- {
- JmolParser testee = new JmolParser();
- char[] struct = new char[10];
- char[] structCode = new char[10];
- struct[0] = '1';
- structCode[0] = '1';
-
- testee.setSecondaryStructure(STR.NONE, 0, struct, structCode);
- testee.setSecondaryStructure(STR.HELIX, 1, struct, structCode);
- testee.setSecondaryStructure(STR.HELIX310, 2, struct, structCode);
- testee.setSecondaryStructure(STR.HELIXALPHA, 3, struct, structCode);
- testee.setSecondaryStructure(STR.HELIXPI, 4, struct, structCode);
- testee.setSecondaryStructure(STR.SHEET, 5, struct, structCode);
-
- assertEquals(0, struct[0]);
- assertEquals('H', struct[1]);
- assertEquals('3', struct[2]);
- assertEquals('H', struct[3]);
- assertEquals('P', struct[4]);
- assertEquals('E', struct[5]);
-
- assertEquals(0, structCode[0]);
- assertEquals('H', structCode[1]);
- assertEquals('H', structCode[2]);
- assertEquals('H', structCode[3]);
- assertEquals('H', structCode[4]);
- assertEquals('E', structCode[5]);
- }
-
- @Test(groups = "Functional")
- public void testLocalPDBId() throws Exception
- {
- JmolParser structureData;
- /*
- * reads a local structure
- */
- structureData = new JmolParser("examples/testdata/localstruct.pdb",
- DataSourceType.FILE);
- assertNotNull(structureData);
- /*
- * local structure files should yield a false ID based on the filename
- */
- assertNotNull(structureData.getId());
- assertEquals(structureData.getId(), "localstruct");
- assertNotNull(structureData.getSeqs());
- /*
- * the ID is also the group for features derived from structure data
- */
- String featureGroup = structureData.getSeqs().get(0)
- .getSequenceFeatures().get(0).featureGroup;
- assertNotNull(featureGroup);
- assertEquals(featureGroup, "localstruct");
- }
-}