X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fdbsources%2FUniprot.java;h=11fff9df709e5d533d97ba21d4e55f9645ef5c6c;hb=ceaa7e68d47ff6a236c7445bd99c9e8d8bd7558e;hp=6b09eb6ebc6f5700528243dd850ae872202a9770;hpb=35f830ac7246ab8560f0da4bd4c3060774253ecf;p=jalview.git diff --git a/src/jalview/ws/dbsources/Uniprot.java b/src/jalview/ws/dbsources/Uniprot.java index 6b09eb6..11fff9d 100644 --- a/src/jalview/ws/dbsources/Uniprot.java +++ b/src/jalview/ws/dbsources/Uniprot.java @@ -32,6 +32,8 @@ import jalview.datamodel.SequenceI; import jalview.datamodel.xdb.uniprot.UniprotEntry; import jalview.datamodel.xdb.uniprot.UniprotFeature; import jalview.datamodel.xdb.uniprot.UniprotFile; +import jalview.schemes.ResidueProperties; +import jalview.util.StringUtils; import jalview.ws.seqfetcher.DbSourceProxyImpl; import java.io.InputStream; @@ -278,7 +280,7 @@ public class Uniprot extends DbSourceProxyImpl for (UniprotFeature uf : entry.getFeature()) { SequenceFeature copy = new SequenceFeature(uf.getType(), - uf.getDescription(), uf.getBegin(), uf.getEnd(), "Uniprot"); + getDescription(uf), uf.getBegin(), uf.getEnd(), "Uniprot"); copy.setStatus(uf.getStatus()); sequence.addSequenceFeature(copy); } @@ -291,6 +293,43 @@ public class Uniprot extends DbSourceProxyImpl } /** + * Constructs a feature description from the description and (optionally) + * original and variant fields of the Uniprot XML feature + * + * @param uf + * @return + */ + protected static String getDescription(UniprotFeature uf) + { + String orig = uf.getOriginal(); + String var = uf.getVariation(); + StringBuilder sb = new StringBuilder(); + + /* + * append variant in standard format if present + * e.g. p.Arg59Lys + */ + if (orig != null && !orig.isEmpty() && var != null && !var.isEmpty()) + { + sb.append("p."); + String orig3 = ResidueProperties.aa2Triplet.get(orig); + sb.append(orig3 == null ? orig : StringUtils.toSentenceCase(orig3)); + sb.append(Integer.toString(uf.getPosition())); + String var3 = ResidueProperties.aa2Triplet.get(var); + sb.append(var3 == null ? var : StringUtils.toSentenceCase(var3)); + sb.append(" "); + } + + String description = uf.getDescription(); + if (description != null) + { + sb.append(description); + } + + return sb.toString(); + } + + /** * * @param entry * UniportEntry