X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FSequenceAnnotationReportTest.java;h=772ed2bb7570050645da2caaa3a1eaf236430d0c;hb=69e8792b5f1ed2c02cff0a1ee328793ab5c0f423;hp=7e00caac8566cb3658feb09bdafbb91994050679;hpb=de96de2488774840f2f6298d757369f9e43acaee;p=jalview.git diff --git a/test/jalview/io/SequenceAnnotationReportTest.java b/test/jalview/io/SequenceAnnotationReportTest.java index 7e00caa..772ed2b 100644 --- a/test/jalview/io/SequenceAnnotationReportTest.java +++ b/test/jalview/io/SequenceAnnotationReportTest.java @@ -33,6 +33,8 @@ import org.testng.annotations.Test; import jalview.api.FeatureColourI; import jalview.datamodel.DBRefEntry; +import jalview.datamodel.MappedFeatures; +import jalview.datamodel.Mapping; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; @@ -40,6 +42,7 @@ import jalview.gui.JvOptionPane; import jalview.io.gff.GffConstants; import jalview.renderer.seqfeatures.FeatureRenderer; import jalview.schemes.FeatureColour; +import jalview.util.MapList; import jalview.viewmodel.seqfeatures.FeatureRendererModel; import junit.extensions.PA; @@ -423,4 +426,63 @@ public class SequenceAnnotationReportTest .endsWith( "
PDB7 3iu1
PDB8,...
(Output Sequence Details to list all database references)")); } + + /** + * Test adding a linked feature to the tooltip + */ + @Test(groups = "Functional") + public void testAppendFeature_virtualFeature() + { + /* + * map CDS to peptide sequence + */ + SequenceI cds = new Sequence("Cds/101-121", "CCTttgAGAtttCAAatgGAT"); + SequenceI peptide = new Sequence("Peptide/8-14", "PLRFQMD"); + MapList map = new MapList(new int[] { 101, 118 }, new int[] { 8, 13 }, + 3, 1); + Mapping mapping = new Mapping(peptide, map); + + /* + * assume variant feature found at CDS position 106 G>C + */ + List features = new ArrayList<>(); + // vary ttg (Leu) to ttc (Phe) + SequenceFeature sf = new SequenceFeature("variant", "G,C", 106, 106, + Float.NaN, null); + features.add(sf); + MappedFeatures mf = new MappedFeatures(mapping, cds, 9, 'L', features); + + StringBuilder sb = new StringBuilder(); + SequenceAnnotationReport sar = new SequenceAnnotationReport(false); + sar.appendFeature(sb, 1, null, sf, mf, 0); + + /* + * linked feature shown in tooltip in protein coordinates + */ + assertEquals("variant 9; G,C", sb.toString()); + + /* + * adding "alleles" attribute to variant allows peptide consequence + * to be calculated and added to the tooltip + */ + sf.setValue("alleles", "G,C"); + sb = new StringBuilder(); + sar.appendFeature(sb, 1, null, sf, mf, 0); + assertEquals("variant 9; G,C p.Leu9Phe", sb.toString()); + + /* + * now a virtual peptide feature on CDS + * feature at 11-12 on peptide maps to 110-115 on CDS + * here we test for tooltip at 113 (t) + */ + SequenceFeature sf2 = new SequenceFeature("metal", "Fe", 11, 12, + 2.3f, "Uniprot"); + features.clear(); + features.add(sf2); + mapping = new Mapping(peptide, map); + mf = new MappedFeatures(mapping, peptide, 113, 't', features); + sb = new StringBuilder(); + sar.appendFeature(sb, 1, null, sf2, mf, 0); + assertEquals("metal 110 115; Fe Score=2.3", sb.toString()); + } }