+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.datamodel;
import static org.testng.Assert.assertEquals;
public class MappedFeaturesTest
{
- @Test
+ @Test(groups = "Functional")
public void testFindProteinVariants()
{
/*
* dna/10-20 aCGTaGctGAa (codons CGT=R, GGA = G)
* mapping: 3:1 from [11-13,15,18-19] to peptide/1-2 RG
*/
- SequenceI from = new Sequence("dna/10-20", "ACGTAGCTGAA");
+ SequenceI from = new Sequence("dna/10-20", "acgTAGCTGAA");
SequenceI to = new Sequence("peptide", "RG");
MapList map = new MapList(new int[] { 11, 13, 15, 15, 18, 19 },
new int[]
* T>C at dna13, consequence CGT>CGC synonymous
*/
List<SequenceFeature> features = new ArrayList<>();
- SequenceFeature sf1 = new SequenceFeature("sequence_variant", "C,T",
- 11, 11, null);
+ SequenceFeature sf1 = new SequenceFeature("sequence_variant", "C,T", 11,
+ 11, null);
sf1.setValue("alleles", "C,T");
features.add(sf1);
SequenceFeature sf2 = new SequenceFeature("sequence_variant", "T,C", 13,
/*
* missense variant in first codon
*/
- MappedFeatures mf = new MappedFeatures(mapping, from, 1, 'R',
- features);
+ MappedFeatures mf = new MappedFeatures(mapping, from, 1, 'R', features);
String variant = mf.findProteinVariants(sf1);
assertEquals(variant, "p.Arg1Cys");
assertEquals(variant, "c.13T>C(p.=)");
/*
- * CSQ:HGVSp value is used if present
+ * CSQ:HGVSp value is used if present
+ * _and_ it contains "p." following a colon
*/
Map<String, String> csq = new HashMap<>();
csq.put("HGVSp", "hello:world");
sf2.setValue("CSQ", csq);
variant = mf.findProteinVariants(sf2);
- assertEquals(variant, "world");
+ assertEquals(variant, "c.13T>C(p.=)");
+ csq.put("HGVSp", "p.HelloWorld");
+ variant = mf.findProteinVariants(sf2);
+ assertEquals(variant, "c.13T>C(p.=)");
+ csq.put("HGVSp", "try this:hellop.world");
+ variant = mf.findProteinVariants(sf2);
+ assertEquals(variant, "hellop.world");
/*
* missense and indel variants in second codon