From: Jim Procter Date: Tue, 4 Nov 2014 08:19:19 +0000 (+0000) Subject: JAL-1213 normalise sequence extracted from Jmol in same way as MCview X-Git-Tag: Release_2_8_2b1^2~36^2~8 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=91ead9523ffe122db1a9386b3c9cffabcf3f6ba3;p=jalview.git JAL-1213 normalise sequence extracted from Jmol in same way as MCview --- diff --git a/src/jalview/ext/jmol/PDBFileWithJmol.java b/src/jalview/ext/jmol/PDBFileWithJmol.java index 159955a..9fa6bf4 100644 --- a/src/jalview/ext/jmol/PDBFileWithJmol.java +++ b/src/jalview/ext/jmol/PDBFileWithJmol.java @@ -27,6 +27,7 @@ import jalview.datamodel.Sequence; import jalview.datamodel.SequenceI; import jalview.io.AlignFile; import jalview.io.FileParse; +import jalview.schemes.ResidueProperties; import jalview.util.MessageManager; import java.io.IOException; @@ -153,11 +154,17 @@ public class PDBFileWithJmol extends AlignFile implements { if (len > 0) { + boolean isNa = (biopoly.isDna() || biopoly.isRna()); + // normalise sequence from Jmol to jalview + int[] cinds = isNa ? ResidueProperties.nucleotideIndex : ResidueProperties.aaIndex; + int nonGap = isNa ? ResidueProperties.maxNucleotideIndex + : ResidueProperties.maxProteinIndex; + char ngc = 'X'; char newseq[] = new char[len]; - System.arraycopy(seq, 0, newseq, 0, len); Annotation asecstr[] = new Annotation[len+firstrnum-1]; for (int p = 0; p < len; p++) { + newseq[p] = cinds[seq[p]] == nonGap ? ngc : seq[p]; if (secstr[p] >= 'A' && secstr[p] <= 'z') { asecstr[p] = new Annotation("" + secstr[p], null, @@ -177,7 +184,7 @@ public class PDBFileWithJmol extends AlignFile implements // Need to put the number of models for this polymer somewhere for Chimera/others to grab // pdbe.getProperty().put("PDBMODELS", biopoly.) seqs.add(sq); - if (!(biopoly.isDna() || biopoly.isRna())) + if (!isNa) { AlignmentAnnotation ann = new AlignmentAnnotation( "Secondary Structure",