Keywords: DeveloppersGuide

# How to add new nucleic acids

1) Add the name to the new nucleic acid in the SpecificAcidNames enum in the melting.sequences package :

    public enum SpecificAcidNames {

    	inosine, lockedNucleicAcid, hydroxyadenine, azobenzene,
    	newNucleicAcidName
    }

2) Register the new nucleic acid syntax in the ArrayList existingNucleicAcids of BasePair in the melting.sequences package. You just have to add the following line into the method public static void initialiseNucleicAcidList() of BasePair :

    /**
    * initialises the ArrayList existingNucleicAcids of the
    * BasePair class.
    */
    	public static void initialiseNucleicAcidList(){
    		[...]

    		// You have to choose a syntax (String representation)
    		// of the new nucleic acid in the String sequence.
    		// It is this syntax which will be recognized by the
    		// program when it analyzes the sequences.
    		existingNucleicAcids.add("newAcid-syntax");
    	}

3) Create a relationship between the nucleic acid syntax in the ArrayList existingNucleicAcids of BasePair and the nucleic acid name registered in the SpecificAcidNames enum. You have to add the following line into the method public static void initialiseModifiedAcidHashmap() of NucleotidSequences in the melting.sequences package :

    /**
    * initialises the HasMap modifiedAcidNames of the
    * NucleotiSequences class.
    */
    	public static void initialiseModifiedAcidHashmap(){
    		[...]

    		modifiedAcidNames.put("newAcid-syntax",
    		    SpecificAcidNames.newNucleicAcidName);
    	}

4) Create a new class to manage the computation of the new nucleic acid as it is explained in the section How to add new thermodynamic model. (a new nucleic acid is considered as a new structure in the computation of the enthalpy and entropy of the Crick's pair containing the new nucleic acid.)