/* * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) * Copyright (C) 2015 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.structure; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertTrue; import jalview.datamodel.AlignedCodonFrame; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.io.FormatAdapter; import java.util.HashSet; import java.util.Set; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import MCview.PDBfile; public class StructureSelectionManagerTest { private StructureSelectionManager ssm; @BeforeMethod(alwaysRun = true) public void setUp() { ssm = new StructureSelectionManager(); } @Test(groups = { "Functional" }) public void testRegisterMapping() { AlignedCodonFrame acf1 = new AlignedCodonFrame(); AlignedCodonFrame acf2 = new AlignedCodonFrame(); ssm.registerMapping(acf1); assertEquals(1, ssm.seqmappings.size()); assertTrue(ssm.seqmappings.contains(acf1)); ssm.registerMapping(acf2); assertEquals(2, ssm.seqmappings.size()); assertTrue(ssm.seqmappings.contains(acf1)); assertTrue(ssm.seqmappings.contains(acf2)); /* * Re-adding the first mapping does nothing */ ssm.registerMapping(acf1); assertEquals(2, ssm.seqmappings.size()); assertTrue(ssm.seqmappings.contains(acf1)); assertTrue(ssm.seqmappings.contains(acf2)); } @Test(groups = { "Functional" }) public void testRegisterMappings() { AlignedCodonFrame acf1 = new AlignedCodonFrame(); AlignedCodonFrame acf2 = new AlignedCodonFrame(); AlignedCodonFrame acf3 = new AlignedCodonFrame(); Set set1 = new HashSet(); set1.add(acf1); set1.add(acf2); Set set2 = new HashSet(); set2.add(acf2); set2.add(acf3); /* * Add both sets twice; each mapping should be added once only */ ssm.registerMappings(set1); ssm.registerMappings(set1); ssm.registerMappings(set2); ssm.registerMappings(set2); assertEquals(3, ssm.seqmappings.size()); assertTrue(ssm.seqmappings.contains(acf1)); assertTrue(ssm.seqmappings.contains(acf2)); assertTrue(ssm.seqmappings.contains(acf3)); } /** * Verify that RESNUM sequence features are present after creating a PDB * mapping */ @Test(groups = { "Functional" }) public void testSetMapping_seqFeatures() { SequenceI seq = new Sequence( "1GAQ|B", "ATYNVKLITPEGEVELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDVVIETHKEEELTGA"); StructureSelectionManager sm = new StructureSelectionManager(); sm.setProcessSecondaryStructure(true); sm.setAddTempFacAnnot(true); PDBfile pmap = sm.setMapping(true, new SequenceI[] { seq }, new String[] { null }, "examples/1gaq.txt", FormatAdapter.FILE); assertTrue(pmap != null); assertEquals(3, pmap.getSeqs().size()); assertEquals("1GAQ|A", pmap.getSeqs().get(0).getName()); assertEquals("1GAQ|B", pmap.getSeqs().get(1).getName()); assertEquals("1GAQ|C", pmap.getSeqs().get(2).getName()); /* * Verify a RESNUM sequence feature in the PDBfile sequence */ SequenceFeature sf = pmap.getSeqs().get(0).getSequenceFeatures()[0]; assertEquals("RESNUM", sf.getType()); assertEquals("1gaq", sf.getFeatureGroup()); assertEquals("GLU: 19 1gaqA", sf.getDescription()); /* * Verify a RESNUM sequence feature in the StructureSelectionManager mapped * sequence */ StructureMapping map = sm.getMapping("examples/1gaq.txt")[0]; sf = map.sequence.getSequenceFeatures()[0]; assertEquals("RESNUM", sf.getType()); assertEquals("1gaq", sf.getFeatureGroup()); assertEquals("ALA: 1 1gaqB", sf.getDescription()); } }