// Path: src/main/java/edu/umd/marbl/mhap/impl/MhapRuntimeException.java
// public class MhapRuntimeException extends RuntimeException
// {
// 
// 	/**
// 	 * 
// 	 */
// 	private static final long serialVersionUID = 56387323839744808L;
// 
// 	public MhapRuntimeException()
// 	{
// 		super();
// 	}
// 
// 	public MhapRuntimeException(String message, Throwable cause)
// 	{
// 		super(message, cause);
// 	}
// 
// 	public MhapRuntimeException(String message)
// 	{
// 		super(message);
// 	}
// 
// 	public MhapRuntimeException(Throwable cause)
// 	{
// 		super(cause);
// 	}
// 
// 	
// }


import edu.umd.marbl.mhap.impl.MhapRuntimeException;
import java.util.LinkedList;
import java.util.ListIterator;
			}

			if (toExclude != null && toExclude.equals(result))
			{
				result = null;
			}
		}

		return result;
	}
	
	public String generateRandomSequence(int length)
	{
		StringBuilder str = new StringBuilder(length);
		
		for (int iter=0; iter<length; iter++)
			str.append(getRandomBase(null));
		
		return str.toString();
	}
	
	//0.1188 0.0183 0.0129
	public String addPacBioError(String str)
	{
		return addError(str, 0.1188, 0.0183, 0.0129);
	}

	public String addError(String str, double insertionRate, double deletionRate, double substitutionRate)
	{
		if (insertionRate < 0.0 || deletionRate < 0.0 || substitutionRate < 0.0)
// Path: src/main/java/edu/umd/marbl/mhap/impl/MhapRuntimeException.java
// public class MhapRuntimeException extends RuntimeException
// {
// 
// 	/**
// 	 * 
// 	 */
// 	private static final long serialVersionUID = 56387323839744808L;
// 
// 	public MhapRuntimeException()
// 	{
// 		super();
// 	}
// 
// 	public MhapRuntimeException(String message, Throwable cause)
// 	{
// 		super(message, cause);
// 	}
// 
// 	public MhapRuntimeException(String message)
// 	{
// 		super(message);
// 	}
// 
// 	public MhapRuntimeException(Throwable cause)
// 	{
// 		super(cause);
// 	}
// 
// 	
// }


// Path: src/main/java/edu/umd/marbl/mhap/utils/RandomSequenceGenerator.java
import edu.umd.marbl.mhap.impl.MhapRuntimeException;
import java.util.LinkedList;
import java.util.ListIterator;

			}

			if (toExclude != null && toExclude.equals(result))
			{
				result = null;
			}
		}

		return result;
	}
	
	public String generateRandomSequence(int length)
	{
		StringBuilder str = new StringBuilder(length);
		
		for (int iter=0; iter<length; iter++)
			str.append(getRandomBase(null));
		
		return str.toString();
	}
	
	//0.1188 0.0183 0.0129
	public String addPacBioError(String str)
	{
		return addError(str, 0.1188, 0.0183, 0.0129);
	}

	public String addError(String str, double insertionRate, double deletionRate, double substitutionRate)
	{
		if (insertionRate < 0.0 || deletionRate < 0.0 || substitutionRate < 0.0)
			throw new MhapRuntimeException("Error rate cannot be negative.");