package org.nextprot.api.commons.bio.variation.prot.impl.format; import org.junit.Assert; import org.junit.Test; import org.nextprot.api.commons.bio.AminoAcidCode; import org.nextprot.api.commons.bio.variation.prot.SequenceVariation; import org.nextprot.api.commons.bio.variation.prot.impl.SequenceVariationImpl; import org.nextprot.api.commons.bio.variation.prot.impl.seqchange.AminoAcidModification; import java.text.ParseException; public class SequenceModificationBedFormatTest { private SequenceModificationBedFormat format = new SequenceModificationBedFormat(); @Test public void testFormatWith3LetterCodeAAMod() throws Exception { SequenceVariation pm = new SequenceVariationImpl.FluentBuilding().selectAminoAcid(AminoAcidCode.CYSTEINE, 54).thenAddModification(AminoAcidModification.S_NITROSATION).build(); Assert.assertEquals("SNO-Cys54", format.format(pm, AminoAcidCode.CodeType.THREE_LETTER)); } @Test public void testFormatWith1LetterCodeAAMod() throws Exception { SequenceVariation pm = new SequenceVariationImpl.FluentBuilding().selectAminoAcid(AminoAcidCode.CYSTEINE, 54).thenAddModification(AminoAcidModification.S_NITROSATION).build(); Assert.assertEquals("SNO-C54", format.format(pm, AminoAcidCode.CodeType.ONE_LETTER)); } @Test public void testParsing3LetterCodeAAFormat() throws Exception { SequenceVariation pm = format.parse("SNO-Cys54"); Assert.assertEquals(AminoAcidCode.CYSTEINE, pm.getVaryingSequence().getFirstAminoAcid()); Assert.assertEquals(54, pm.getVaryingSequence().getFirstAminoAcidPos()); Assert.assertEquals(AminoAcidModification.S_NITROSATION, pm.getSequenceChange()); } @Test public void testParsing1LetterCodeAAFormat() throws Exception { SequenceVariation pm = format.parse("SNO-C54"); Assert.assertEquals(AminoAcidCode.CYSTEINE, pm.getVaryingSequence().getFirstAminoAcid()); Assert.assertEquals(54, pm.getVaryingSequence().getFirstAminoAcidPos()); Assert.assertEquals(AminoAcidModification.S_NITROSATION, pm.getSequenceChange()); } // Not yet parsable ! @Test(expected = ParseException.class) public void testParsingMultiplePtms() throws Exception { // P-Thr265 + P-Thr269 + P-Thr273 SequenceVariation pm = format.parse("P-Thr265-Thr269-Thr273"); Assert.assertEquals(AminoAcidCode.CYSTEINE, pm.getVaryingSequence().getFirstAminoAcid()); Assert.assertEquals(54, pm.getVaryingSequence().getFirstAminoAcidPos()); Assert.assertEquals(AminoAcidModification.S_NITROSATION, pm.getSequenceChange()); } }