org.biojava.nbio.protmod.structure.StructureGroup Maven / Gradle / Ivy
/*
* 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 Aug 2, 2010
* Author: Jianjiong Gao
*
*/
package org.biojava.nbio.protmod.structure;
import org.biojava.nbio.structure.ResidueNumber;
/**
* Information of a group (residue or ligand) involved in a modification.
* @author Jianjiong Gao
* @since 3.0
*/
public class StructureGroup
implements Comparable {
private ResidueNumber resNum;
private String pdbName;
private Boolean isAminoAcid;
public StructureGroup(){
resNum = new ResidueNumber();
}
public StructureGroup( ResidueNumber resNum,
String pdbName, boolean isAminoAcid) {
this.resNum = resNum;
this.pdbName = pdbName;
this.isAminoAcid = isAminoAcid;
}
// public StructureGroup( ResidueNumber resNum,
// String pdbName) {
// this(resNum, pdbName, true);
// }
public ResidueNumber getPDBResidueNumber() {
return resNum;
}
public void setPDBResidueNumber(ResidueNumber resNum) {
this.resNum = resNum;
}
public String getChainId() {
return resNum.getChainName();
}
public void setChainId(String chainId){
if ( resNum == null)
resNum = new ResidueNumber();
resNum.setChainName(chainId);
}
public int getResidueNumber() {
return resNum.getSeqNum();
}
public void setResidueNumber(int seqNr){
if ( resNum == null)
resNum = new ResidueNumber();
resNum.setSeqNum(seqNr);
}
public Character getInsCode() {
return resNum.getInsCode();
}
public void setInsCode(Character c){
if ( resNum == null)
resNum = new ResidueNumber();
resNum.setInsCode(c);
}
public String getPDBName() {
return pdbName;
}
public void setPDBName(String pdbName){
this.pdbName = pdbName;
}
public void setIsAminoAcid(boolean isAminoAcid) {
this.isAminoAcid = isAminoAcid;
}
public boolean isAminoAcid() {
return isAminoAcid;
}
@Override
public boolean equals(Object obj) {
if (obj == this)
return true;
if (!(obj instanceof StructureGroup))
return false;
StructureGroup aGroup = (StructureGroup) obj;
if (!resNum.equals(aGroup.resNum))
return false;
return true;
}
@Override
public int hashCode() {
int result = 17;
if ( resNum != null)
result = result * 31 + resNum.hashCode();
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(pdbName);
sb.append('\t');
sb.append(resNum.getChainName());
sb.append('\t');
sb.append(resNum.getSeqNum());
if (resNum.getInsCode() != null)
sb.append(resNum.getInsCode());
sb.append('\t');
return sb.toString();
}
@Override
public int compareTo(StructureGroup aGroup) {
int result = getChainId().compareTo(aGroup.getChainId());
if (result != 0)
return result;
result = getResidueNumber()-aGroup.getResidueNumber();
if (result != 0)
return result;
if (getInsCode()==null) {
if (aGroup.getInsCode()!=null)
return -1;
} else {
if (aGroup.getInsCode()==null)
return 1;
else {
result = getInsCode().compareTo(aGroup.getInsCode());
if (result != 0)
return result;
}
}
return 0;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy