
org.biojava.nbio.structure.align.pairwise.AlignmentResult Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of biojava-structure Show documentation
Show all versions of biojava-structure Show documentation
The protein structure modules of BioJava.
/*
* PDB web 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.
*
*
* Created on May 24, 2009
* Created by Andreas Prlic
*
*/
package org.biojava.nbio.structure.align.pairwise;
import java.io.*;
/** A class to track the alignment results in a flat file
*
* @author andreas
*
*/
public class AlignmentResult implements Serializable
{
/**
*
*/
private static final long serialVersionUID = -4132105905712445473L;
AlternativeAlignment[] alignments;
String pdb1;
String pdb2;
String chain1;
String chain2;
int length1;
int length2;
long calculationTime;
long ioTime;
@Override
public String toString(){
StringBuffer buf = new StringBuffer();
buf.append(pdb1);
buf.append("_");
buf.append(chain1);
buf.append(" vs. ");
buf.append(pdb2);
buf.append("_");
buf.append(chain2);
buf.append(" : ");
buf.append(" l1: ");
buf.append(length1);
buf.append(" l2: ");
buf.append(length2);
buf.append(" ");
if ( alignments != null)
if ( alignments.length > 0) {
AlternativeAlignment a = alignments[0];
buf.append(a.toString());
int eqr = a.getEqr();
buf.append(" %res1: ");
buf.append(Math.round((eqr/(float)length2)*100));
buf.append(" %res2: ");
buf.append(Math.round((eqr/(float)length1)*100));
buf.append(" ");
}
buf.append(" ioTime: ");
buf.append(ioTime);
buf.append(" compTime: ");
buf.append(calculationTime);
return buf.toString();
}
public AlternativeAlignment[] getAlignments()
{
return alignments;
}
/** we only keep the first alternative...
*
* @param alignments
*/
public void setAlignments(AlternativeAlignment[] alignments)
{
if ( alignments.length > 0){
this.alignments = new AlternativeAlignment[1];
this.alignments[0]=alignments[0];
}
}
public String getPdb1()
{
return pdb1;
}
public void setPdb1(String pdb1)
{
this.pdb1 = pdb1;
}
public String getPdb2()
{
return pdb2;
}
public void setPdb2(String pdb2)
{
this.pdb2 = pdb2;
}
public String getChain1()
{
return chain1;
}
public void setChain1(String chain1)
{
this.chain1 = chain1;
}
public String getChain2()
{
return chain2;
}
public void setChain2(String chain2)
{
this.chain2 = chain2;
}
public int getLength1()
{
return length1;
}
public void setLength1(int length1)
{
this.length1 = length1;
}
public int getLength2()
{
return length2;
}
public void setLength2(int length2)
{
this.length2 = length2;
}
public long getCalculationTime()
{
return calculationTime;
}
public void setCalculationTime(long calculationTime)
{
this.calculationTime = calculationTime;
}
public long getIoTime()
{
return ioTime;
}
public void setIoTime(long ioTime)
{
this.ioTime = ioTime;
}
public void serialize (File output)
throws FileNotFoundException, IOException{
// save alignment result:
FileOutputStream outStream = new FileOutputStream(output);
ObjectOutputStream objStream = new ObjectOutputStream(outStream);
objStream.writeObject(this);
objStream.close();
}
public static AlignmentResult deserialize(File output)
throws FileNotFoundException, IOException, ClassNotFoundException{
FileInputStream fin = new FileInputStream(output);
ObjectInputStream objIn = new ObjectInputStream(fin);
AlignmentResult result = (AlignmentResult) objIn.readObject();
objIn.close();
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy