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

org.biojava.nbio.structure.align.xml.MultipleAlignmentXMLConverter Maven / Gradle / Ivy

There is a newer version: 7.2.2
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.nbio.structure.align.xml;

import java.io.IOException;
import java.util.List;

import javax.vecmath.Matrix4d;

import org.biojava.nbio.core.util.PrettyXMLWriter;
import org.biojava.nbio.structure.StructureIdentifier;
import org.biojava.nbio.structure.align.multiple.Block;
import org.biojava.nbio.structure.align.multiple.BlockSet;
import org.biojava.nbio.structure.align.multiple.MultipleAlignment;
import org.biojava.nbio.structure.align.multiple.MultipleAlignmentEnsemble;
import org.biojava.nbio.structure.align.multiple.ScoresCache;
import org.biojava.nbio.structure.align.multiple.util.MultipleAlignmentWriter;

/**
 * Helper methods to convert all the hierarchy levels of a MultipleAlignment
 * into an XML format.
 * 

* To convert a MultipleAlignment to an XML String use the * {@link MultipleAlignmentWriter#toXML(MultipleAlignmentEnsemble)} method. * * @author Aleix Lafita * @since 4.1.1 * */ public class MultipleAlignmentXMLConverter { public synchronized static void printXMLensemble(PrettyXMLWriter xml, MultipleAlignmentEnsemble ensemble) throws IOException { xml.openTag("MultipleAlignmentEnsemble"); printXMLheader(xml,ensemble); for (MultipleAlignment msa:ensemble.getMultipleAlignments()){ printXMLalignment(xml,msa); } printXMLscoresCache(xml,ensemble); xml.closeTag("MultipleAlignmentEnsemble"); } public synchronized static void printXMLalignment(PrettyXMLWriter xml, MultipleAlignment msa) throws IOException { xml.openTag("MultipleAlignment"); for(BlockSet bs:msa.getBlockSets()) { printXMLblockSet(xml, bs); } printXMLscoresCache(xml,msa); xml.closeTag("MultipleAlignment"); } public synchronized static void printXMLblockSet(PrettyXMLWriter xml, BlockSet bs) throws IOException { xml.openTag("BlockSet"); for(Block b:bs.getBlocks()) { printXMLblock(xml, b); } if (bs.getTransformations() != null){ for(Matrix4d t:bs.getTransformations()){ printXMLmatrix4d(xml, t); } } printXMLscoresCache(xml,bs); xml.closeTag("BlockSet"); } public synchronized static void printXMLblock(PrettyXMLWriter xml, Block b) throws IOException { xml.openTag("Block"); List> alignment = b.getAlignRes(); for (int pos=0;pos





© 2015 - 2025 Weber Informatics LLC | Privacy Policy