import static jalview.io.gff.SequenceOntologyI.SEQUENCE_VARIANT;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertSame;
+import static org.testng.Assert.assertTrue;
import jalview.bin.Cache;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.datamodel.features.FeatureAttributes;
-import jalview.datamodel.features.FeatureAttributes.Datatype;
import jalview.datamodel.features.SequenceFeatures;
import jalview.gui.AlignFrame;
import jalview.io.DataSourceType;
import jalview.io.FileLoader;
import jalview.io.gff.Gff3Helper;
-import jalview.io.gff.SequenceOntologyI;
import jalview.util.MapList;
import java.io.File;
* verify SNP variant feature(s) computed and added to protein
* first codon AGC varies to ACC giving S/T
*/
- DBRefEntry[] dbRefs = al.getSequenceAt(1).getDBRefs();
+ List<DBRefEntry> dbRefs = al.getSequenceAt(1).getDBRefs();
SequenceI peptide = null;
for (DBRefEntry dbref : dbRefs)
{
}
}
List<SequenceFeature> proteinFeatures = peptide.getSequenceFeatures();
- assertEquals(proteinFeatures.size(), 3);
- sf = proteinFeatures.get(0);
- assertEquals(sf.getFeatureGroup(), "VCF");
- assertEquals(sf.getBegin(), 1);
- assertEquals(sf.getEnd(), 1);
- assertEquals(sf.getType(), SequenceOntologyI.NONSYNONYMOUS_VARIANT);
- assertEquals(sf.getDescription(), "p.Ser1Thr");
/*
- * check that sequence_variant attribute AF has been clocked as
- * numeric with correct min and max values
- * (i.e. invalid values have been ignored - JAL-3375)
+ * JAL-3187 don't precompute protein features, do dynamically instead
*/
- FeatureAttributes fa = FeatureAttributes.getInstance();
- assertSame(fa.getDatatype(SEQUENCE_VARIANT, "AF"), Datatype.Number);
- float[] minmax = fa.getMinMax(SEQUENCE_VARIANT, "AF");
- assertEquals(minmax[0], 0.002f);
- assertEquals(minmax[1], 0.005f);
+ assertTrue(proteinFeatures.isEmpty());
}
private File makeVcfFile() throws IOException
* verify variant feature(s) computed and added to protein
* last codon GCT varies to GGT giving A/G in the last peptide position
*/
- DBRefEntry[] dbRefs = al.getSequenceAt(3).getDBRefs();
+ List<DBRefEntry> dbRefs = al.getSequenceAt(3).getDBRefs();
SequenceI peptide = null;
for (DBRefEntry dbref : dbRefs)
{
}
}
List<SequenceFeature> proteinFeatures = peptide.getSequenceFeatures();
- assertEquals(proteinFeatures.size(), 3);
- sf = proteinFeatures.get(0);
- assertEquals(sf.getFeatureGroup(), "VCF");
- assertEquals(sf.getBegin(), 6);
- assertEquals(sf.getEnd(), 6);
- assertEquals(sf.getType(), SequenceOntologyI.NONSYNONYMOUS_VARIANT);
- assertEquals(sf.getDescription(), "p.Ala6Gly");
+
+ /*
+ * JAL-3187 don't precompute protein features, do dynamically instead
+ */
+ assertTrue(proteinFeatures.isEmpty());
}
/**
// gene features include Consequence for all transcripts
Map map = (Map) sf.getValue("CSQ");
assertEquals(map.size(), 9);
+ assertEquals(map.get("PolyPhen"), "Bad");
sf = geneFeatures.get(1);
assertEquals(sf.getBegin(), 5);
assertEquals(sf.getValue("alleles"), "C,T");
map = (Map) sf.getValue("CSQ");
assertEquals(map.size(), 9);
+ assertEquals(map.get("PolyPhen"), "Bad;;"); // %3B%3B decoded
sf = geneFeatures.get(2);
assertEquals(sf.getBegin(), 9);
* and GAG/GGG which is E/G in position 4
* the insertion variant is not transferred to the peptide
*/
- DBRefEntry[] dbRefs = al.findName("transcript3").getDBRefs();
+ List<DBRefEntry> dbRefs = al.findName("transcript3").getDBRefs();
SequenceI peptide = null;
for (DBRefEntry dbref : dbRefs)
{
}
}
List<SequenceFeature> proteinFeatures = peptide.getSequenceFeatures();
- SequenceFeatures.sortFeatures(proteinFeatures, true);
- assertEquals(proteinFeatures.size(), 2);
- sf = proteinFeatures.get(0);
- assertEquals(sf.getFeatureGroup(), "VCF");
- assertEquals(sf.getBegin(), 1);
- assertEquals(sf.getEnd(), 1);
- assertEquals(sf.getType(), SequenceOntologyI.SYNONYMOUS_VARIANT);
- assertEquals(sf.getDescription(), "agC/agT");
- sf = proteinFeatures.get(1);
- assertEquals(sf.getFeatureGroup(), "VCF");
- assertEquals(sf.getBegin(), 4);
- assertEquals(sf.getEnd(), 4);
- assertEquals(sf.getType(), SequenceOntologyI.NONSYNONYMOUS_VARIANT);
- assertEquals(sf.getDescription(), "p.Glu4Gly");
+ /*
+ * JAL-3187 don't precompute protein features, do dynamically instead
+ */
+ assertTrue(proteinFeatures.isEmpty());
+ // SequenceFeatures.sortFeatures(proteinFeatures, true);
+ // assertEquals(proteinFeatures.size(), 2);
+ // sf = proteinFeatures.get(0);
+ // assertEquals(sf.getFeatureGroup(), "VCF");
+ // assertEquals(sf.getBegin(), 1);
+ // assertEquals(sf.getEnd(), 1);
+ // assertEquals(sf.getType(), SequenceOntologyI.SYNONYMOUS_VARIANT);
+ // assertEquals(sf.getDescription(), "agC/agT");
+ // sf = proteinFeatures.get(1);
+ // assertEquals(sf.getFeatureGroup(), "VCF");
+ // assertEquals(sf.getBegin(), 4);
+ // assertEquals(sf.getEnd(), 4);
+ // assertEquals(sf.getType(), SequenceOntologyI.NONSYNONYMOUS_VARIANT);
+ // assertEquals(sf.getDescription(), "p.Glu4Gly");
/*
* verify variant feature(s) added to transcript4