/* * BioJava development code * * This code may be freely distributed and modified under the * terms of the GNU Lesser General Public Licence. This should * be distributed with the code. If you do not have a copy, * see: * * http://www.gnu.org/copyleft/lesser.html * * Copyright for this code is held jointly by the individual * authors. These should be listed in @author doc comments. * * For more information on the BioJava project and its aims, * or to join the biojava-l mailing list, visit the home page * at: * * http://www.biojava.org/ * * Created on Sep 5, 2013 * Author: andreas * */ package org.biojava.nbio.structure.io; import junit.framework.TestCase; import org.biojava.nbio.structure.io.sifts.*; import java.io.InputStream; import java.util.List; import java.util.zip.GZIPInputStream; public class TestSiftsParsing extends TestCase { public void test4DIA(){ try { List<SiftsEntity> entities = SiftsMappingProvider.getSiftsMapping("4DIA"); assertNotNull(entities); assertTrue(entities.size() == 1); for (SiftsEntity e : entities){ //System.out.println(e.getEntityId() + " " +e.getType()); assertTrue(e.getSegments().size() > 0 ); for ( SiftsSegment seg: e.getSegments()) { assertTrue(seg.getResidues().size() > 0); for ( SiftsResidue res: seg.getResidues() ) { if ( res.getUniProtResName() != null ) { assertNotNull(res.getUniProtAccessionId() ); assertNotNull(res.getUniProtResName()); // test for github ticket #280 if ( res.getUniProtPos() == 129) { assertTrue(res.getNotObserved()); } } } } } } catch (Exception e){ e.printStackTrace(); fail(e.getMessage()); } } public void test4jn3(){ try { List<SiftsEntity> entities = SiftsMappingProvider.getSiftsMapping("4jn3"); assertNotNull(entities); assertTrue(entities.size() == 2); for (SiftsEntity e : entities){ //System.out.println(e.getEntityId() + " " +e.getType()); assertTrue(e.getSegments().size() > 0 ); for ( SiftsSegment seg: e.getSegments()) { assertTrue(seg.getResidues().size() > 0); //System.out.println(seg.getResidues().size()); //System.out.println(" Segment: " + seg.getSegId() + " " + seg.getStart() + " " + seg.getEnd()) ; // for ( SiftsResidue res: seg.getResidues() ) { //System.out.println(" " + res); if ( res.getUniProtResName() != null ) { assertNotNull(res.getUniProtAccessionId() ); assertNotNull(res.getUniProtResName()); } } } } } catch (Exception e){ e.printStackTrace(); fail(e.getMessage()); } } public void test4DOU(){ // get file from test resource folder, since the file from EBI seems to have issues (on 20170405). try { InputStream inStream = new GZIPInputStream(this.getClass().getResourceAsStream("/org/biojava/nbio/structure/io/4dou.sifts.xml.gz")); SiftsXMLParser parser = new SiftsXMLParser(); parser.parseXmlFile(inStream); List<SiftsEntity> entities = parser.getEntities(); assertNotNull(entities); assertTrue(entities.size() == 1); for (SiftsEntity e : entities){ //System.out.println(e.getEntityId() + " " +e.getType()); // 4DOU has 3 segments assertTrue("SiftsEntity does not have 3 segments, but " + e.getSegments().size(),e.getSegments().size() == 3); // test segment 1: //SiftsSegment seg1 = e.getSegments().get(0); //System.out.println(" Segment: " + seg1.getSegId() + " " + seg1.getStart() + " " + seg1.getEnd() + " res. size: " + seg1.getResidues().size()); //assertTrue(seg1.getResidues().size() == 17); for ( SiftsSegment seg: e.getSegments()) { assertTrue(seg.getResidues().size() > 0); //System.out.println(" Segment: " + seg.getSegId() + " " + seg.getStart() + " " + seg.getEnd() + " res. size: " + seg.getResidues().size()) ; for ( SiftsResidue res: seg.getResidues() ) { if ( res.getUniProtResName() != null ) { //System.out.println(" " + res); assertNotNull(res.getUniProtAccessionId() ); assertNotNull(res.getUniProtResName()); } } //break; } } } catch (Exception e){ e.printStackTrace(); fail(e.getMessage()); } } public void test4O6W(){ try { List<SiftsEntity> entities = SiftsMappingProvider.getSiftsMapping("4O6W"); assertNotNull(entities); assertTrue(entities.size() == 2); int ecount = 0; for (SiftsEntity e : entities){ ecount++; // we only test the 2nd segment in entity #1 if ( ecount != 1) continue; assertTrue(e.getEntityId().equals("A")); assertTrue(e.getType().equals("protein")); // 4O6W A has 2 segments assertTrue(e.getSegments().size() == 2); // test segment 2: SiftsSegment seg = e.getSegments().get(1); //SiftsSegment seg1 = e.getSegments().get(0); //System.out.println(" Segment: " + seg1.getSegId() + " " + seg1.getStart() + " " + seg1.getEnd() + " res. size: " + seg1.getResidues().size()); //assertTrue(seg1.getResidues().size() == 17); assertTrue(seg.getResidues().size() > 0); for ( SiftsResidue res: seg.getResidues() ) { if ( res.getUniProtResName() != null ) { //System.out.println(" " + res); assertNotNull(res.getUniProtAccessionId() ); assertNotNull(res.getUniProtResName()); } if (res.getPdbResNum().equals("502")){ assertTrue(res.getNotObserved()); } } //break; } } catch (Exception e){ e.printStackTrace(); fail(e.getMessage()); } } }