--- title: BioJava:CookBook3:AddProtMod permalink: wiki/BioJava%3ACookBook3%3AAddProtMod --- How can I define a new protein modification? -------------------------------------------- The protmod module automatically loads [a list of protein modifications](/wiki/BioJava:CookBook3:SupportedProtMod "wikilink") into the protein modification registry. In case you have a protein modification that is not preloaded, it is possible to define it by yourself and add it into the registry. Example: define and register disulfide bond in Java code -------------------------------------------------------- ```java // define the involved components, in this case two cystines (CYS) List components = new ArrayList(2); components.add(Component.of("CYS")); components.add(Component.of("CYS")); // define the atom linkages between the components, in this case the SG atoms on both CYS groups ModificationLinkage linkage = new ModificationLinkage(components, 0, "SG", 1, "SG"); // define the modification condition, i.e. what components are involved and what atoms are linked between them ModificationCondition condition = new ModificationConditionImpl(components, Collections.singletonList(linkage)); // build a modification ProteinModification mod = `       new ProteinModificationImpl.Builder("0018_test", ` `       ModificationCategory.CROSS_LINK_2,` `       ModificationOccurrenceType.NATURAL,` `       condition)` `       .setDescription("A protein modification that effectively cross-links two L-cysteine residues to form L-cystine.")` `       .setFormula("C 6 H 8 N 2 O 2 S 2")` `       .setResidId("AA0025")` `       .setResidName("L-cystine")` `       .setPsimodId("MOD:00034")` `       .setPsimodName("L-cystine (cross-link)")` `       .setSystematicName("(R,R)-3,3'-disulfane-1,2-diylbis(2-aminopropanoic acid)")` `       .addKeyword("disulfide bond")` `       .addKeyword("redox-active center")` `   .build();` //register the modification ProteinModificationRegistry.register(mod); ``` Example: definedisulfide bond in XML file and register by Java code ------------------------------------------------------------------- `   ` `       ``0018` `       ``A protein modification that effectively cross-links two L-cysteine residues to form L-cystine.` `       ``(R,R)-3,3'-disulfane-1,2-diylbis(2-aminopropanoic acid)` `       ` `           ` RESID `           ``AA0025` `           ``L-cystine` `       ` `       ` `           ` PSI-MOD `           ``MOD:00034` `           ``L-cystine (cross-link)` `       ` `       ` `           ` `               ``CYS` `           ` `           ` `               ``CYS` `           ` `           ` `               ``SG` `               ``SG` `           ` `       ` `       ``natural` `       ``crosslink2` `       ``redox-active center` `       ``disulfide bond` `   ` ```java FileInputStream fis = new FileInputStream("path/to/file"); ProteinModificationXmlReader.registerProteinModificationFromXml(fis); ``` See also --------
- [How can I identify protein modifications in a structure?](/wiki/BioJava:CookBook3:ProtMod "wikilink") - [How can I get the list of supported protein modifications?](/wiki/BioJava:CookBook3:SupportedProtMod "wikilink")