X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fjmol%2FPDBFileWithJmol.java;fp=src%2Fjalview%2Fext%2Fjmol%2FPDBFileWithJmol.java;h=9fa6bf4f3b1abd157952f5b3796f9865774b1c5a;hb=f9cf34a5681f00ec37e1254f92c3be9cb6c37ee8;hp=159955a8e3327e24c6a682a5725082ba04c33338;hpb=68c26e8852772be21fdb5b091fa9083d8cdb6eec;p=jalview.git 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",