All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.biojava.bio.program.PdbToXMLConverter Maven / Gradle / Ivy

There is a newer version: 1.9.7
Show newest version
/*
 *                    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/
 *
 */
package org.biojava.bio.program;

import org.biojava.bio.program.sax.PdbSAXParser;
import org.biojava.bio.program.xml.SimpleXMLEmitter;
import org.xml.sax.ContentHandler;
import org.xml.sax.XMLReader;

/**
 * 

* A class that converts Protein Data Bank (PDB) to * XML that will validate against the biojava:MacromolecularStructure DTD. *

* Note this code is experimental and subject to change without notice. * *

* Copyright © 2000 Cambridge Antibody Technology. * *

* Primary author -

    *
  • Simon Brocklehurst (CAT) *
* Other authors -
    *
  • Tim Dilks (CAT) *
  • Colin Hardman (CAT) *
  • Stuart Johnston (CAT) *
* * This code was first released to the biojava.org project, July 2000. * * @author Cambridge Antibody Technology (CAT) * @version 0.1 * * @see org.biojava.bio.program.sax.BlastLikeSAXParser * @see SimpleXMLEmitter */ public class PdbToXMLConverter { private String oInput; private XMLReader oParser; /** * Creates a new BlastToXMLConverter instance. * */ public PdbToXMLConverter(String poInput) { oInput = poInput; } public void convert() throws java.io.IOException, org.xml.sax.SAXException { //Access functionality of biojava classes through //standard org.xml.sax interfaces... /** * Create a SAX Parser that takes the native output * from blast-like bioinformatics software. */ oParser = (XMLReader) new PdbSAXParser(); /** * Dynamically change configuration of the parser * in regard of Namespace support. Here, * the xml.org/features/namespaces feature is simply "reset" * to its default value for SAX2. * The xml.org/features/namespaces-prefixes feature is * also set to true. This is to ensure that xmlns attributes * are reported by the parser. These are required because we want * to configure the XMLEmitter to output qualified names (see below). */ try { oParser.setFeature("http://xml.org/sax/features/namespaces",true); oParser.setFeature("http://xml.org/sax/features/namespace-prefixes", true); } catch (Exception e) { //If an illegal conmbination of features is chosen, //roll back to default settings. Output a warning, //even though this might mess up the output... System.out.println("WARNING: ignoring attempt to set illegal " + "combination of parser features"); } /** * Create an XML ContentHandler. This * implementation of the DocumentHandler * interface simple outputs nicely formatted * XML. Passing a true value to the SimpleXMLEmitter * constructor instructs the ContentHandler * to take QNames from the SAXParser, rather * than LocalNames. */ ContentHandler oHandler = (ContentHandler) new SimpleXMLEmitter(true); /** * Give the parser a reference to the ContentHandler * so that it can send SAX2 mesagges. */ oParser.setContentHandler(oHandler); /** * Now make the Parser parse the output from the * blast-like software and emit XML as specificed * by the DocumentHandler. */ oParser.parse(oInput); System.out.println(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy