From c2a4ad592b78ea67d2bc2ba7720e6b24579bbf6d Mon Sep 17 00:00:00 2001 From: emckee2006 Date: Mon, 10 Feb 2014 01:51:08 -0500 Subject: [PATCH] ProteinSequence was using parentSequence as a DNA Sequence. However, the field was parameterized to have the same CompoundSet for both the sequence and its parent. Attempt to make this more explicit versus the mostly silent compile warning which is hiding our breaking the type system here. --- .../org/biojava3/core/sequence/ProteinSequence.java | 5 ++++- .../core/sequence/template/AbstractSequence.java | 12 +++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/biojava3-core/src/main/java/org/biojava3/core/sequence/ProteinSequence.java b/biojava3-core/src/main/java/org/biojava3/core/sequence/ProteinSequence.java index 637228f1ef..de59607684 100644 --- a/biojava3-core/src/main/java/org/biojava3/core/sequence/ProteinSequence.java +++ b/biojava3-core/src/main/java/org/biojava3/core/sequence/ProteinSequence.java @@ -24,6 +24,7 @@ import org.biojava3.core.sequence.compound.AminoAcidCompound; import org.biojava3.core.sequence.compound.AminoAcidCompoundSet; +import org.biojava3.core.sequence.compound.NucleotideCompound; import org.biojava3.core.sequence.loader.StringProxySequenceReader; import org.biojava3.core.sequence.template.AbstractSequence; import org.biojava3.core.sequence.template.CompoundSet; @@ -83,7 +84,9 @@ public ProteinSequence(ProxySequenceReader proxyLoader, Compo * @param begin * @param end */ - public void setParentDNASequence(AbstractSequence parentDNASequence, Integer begin, Integer end) { + //TODO - Someone needs to check if this is a bug. Shouldn't a parentDNASequence be something other then AminoAcid? + //However, due to the derivation of this class, this is the only possible type argument for this parameter... + public void setParentDNASequence(AbstractSequence parentDNASequence, Integer begin, Integer end) { this.setParentSequence(parentDNASequence); setBioBegin(begin); setBioEnd(end); diff --git a/biojava3-core/src/main/java/org/biojava3/core/sequence/template/AbstractSequence.java b/biojava3-core/src/main/java/org/biojava3/core/sequence/template/AbstractSequence.java index 5c446e5cec..7ccf7cdaae 100644 --- a/biojava3-core/src/main/java/org/biojava3/core/sequence/template/AbstractSequence.java +++ b/biojava3-core/src/main/java/org/biojava3/core/sequence/template/AbstractSequence.java @@ -62,7 +62,7 @@ public abstract class AbstractSequence implements Sequence userCollection; private Integer bioBegin = null; private Integer bioEnd = null; - private AbstractSequence parentSequence = null; + private AbstractSequence parentSequence = null; private String source = null; private ArrayList notesList = new ArrayList(); private Double sequenceScore = null; @@ -226,14 +226,14 @@ public void setOriginalHeader(String originalHeader) { /** * @return the parentSequence */ - public AbstractSequence getParentSequence() { + public AbstractSequence getParentSequence() { return parentSequence; } /** * @param parentSequence the parentSequence to set */ - public void setParentSequence(AbstractSequence parentSequence) { + public void setParentSequence(AbstractSequence parentSequence) { this.parentSequence = parentSequence; } @@ -474,9 +474,13 @@ public CompoundSet getCompoundSet() { if (compoundSet != null) { return compoundSet; } + // This is invalid since the parentSequence isn't guaranteed to have the same compound set as this sequence, + // e.g., the case where the parent sequence for a protein is a CDS. + /* if (parentSequence != null) { return parentSequence.getCompoundSet(); } + */ return null; @@ -495,9 +499,11 @@ private SequenceReader getSequenceStorage() { if (sequenceStorage != null) { return sequenceStorage; } + /* if (parentSequence != null) { return parentSequence.getSequenceStorage(); } + */ return null; }