/* * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) * Copyright (C) 2014 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.junit.Assert.*; import java.util.Vector; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentI; import jalview.datamodel.SequenceI; import jalview.gui.AlignFrame; import jalview.io.AppletFormatAdapter; import jalview.io.FileLoader; import org.junit.Test; /** * @author jimp * */ public class PDBFileWithJmolTest { String[] testFile = new String[] { "./examples/1GAQ.txt" }; // , "./examples/DNMT1_MOUSE.pdb" }; @Test public void testAlignmentLoader() throws Exception { for (String f:testFile) { FileLoader fl = new jalview.io.FileLoader(false); AlignFrame af = fl.LoadFileWaitTillLoaded(f, AppletFormatAdapter.FILE); validateSecStrRows(af.getViewport().getAlignment()); } } @Test public void testFileParser() throws Exception { for (String pdbStr : testFile) { PDBFileWithJmol jtest = new PDBFileWithJmol(pdbStr, jalview.io.AppletFormatAdapter.FILE); Vector seqs = jtest.getSeqs(); assertTrue( "No sequences extracted from testfile\n" + (jtest.hasWarningMessage() ? jtest.getWarningMessage() : "(No warnings raised)"), seqs != null && seqs.size() > 0); for (SequenceI sq : seqs) { 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; while (sq.getDatasetSequence()!=null && sq.getAnnotation()==null) { sq = asq.getDatasetSequence(); } assertTrue( "No secondary structure assigned for protein sequence.", 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); } } } }