/**
 * This exercise is designed for Biologists to practice indexing and slicing tuples, specifically when dealing with negative integers.
 *
 * Given a tuple representing the sequence of a gene, write a function that returns specific information about the gene.
 *
 * @param gene A sequence of nucleotides denoting the DNA structure of a gene.
 * @return A new tuple containing the following information:
 * - The length of the gene.
 * - The nucleotide at position 3.
 * - The nucleotides from position 7 to the end of the gene.
 * - The nucleotide before the last position.
 */
fun getGeneInformation(gene: List<Char>): List<Any> {

    // Find the length of the gene
    val geneLength = gene.size

    // Get nucleotide at position 3
    val nucleotideAt3 = gene[2]

    // Get nucleotides from position 7 to the end
    val nucleotidesFrom7 = gene.subList(6, gene.size)

    // Get nucleotide before the last position
    val nucleotideBeforeLast = gene[gene.size - 2]

    // Return the required information as a list
    return listOf(geneLength, nucleotideAt3, nucleotidesFrom7, nucleotideBeforeLast)
}
/**
 * This exercise is designed for Biologists to practice indexing and slicing tuples, specifically when dealing with negative integers.
 *
 * Given a tuple representing the sequence of a gene, write a function that returns specific information about the gene.
 *
 * @param gene A sequence of nucleotides denoting the DNA structure of a gene.
 * @return A new tuple containing the following information:
 * - The length of the gene.
 * - The nucleotide at position 3.
 * - The nucleotides from position 7 to the end of the gene.
 * - The nucleotide before the last position.
 */
fun getGeneInformation(gene: List<Char>): List<Any> {
/**
 * This exercise is designed for Biologists to practice indexing and slicing tuples, specifically when dealing with negative integers.
 *
 * Given a tuple representing the sequence of a gene, write a function that returns specific information about the gene.
 *
 * @param gene A sequence of nucleotides denoting the DNA structure of a gene.
 * @return A new tuple containing the following information:
 * - The length of the gene.
 * - The nucleotide at position 3.
 * - The nucleotides from position 7 to the end of the gene.
 * - The nucleotide before the last position.
 */
fun getGeneInformation(gene: List<Char>): List<Any> {

    // Find the length of the gene
    val geneLength = gene.size

    // Get nucleotide at position 3
    val nucleotideAt3 = gene[2]

    // Get nucleotides from position 7 to the end
    val nucleotidesFrom7 = gene.subList(6, gene.size)

    // Get nucleotide before the last position
    val nucleotideBeforeLast = gene[gene.size - 2]

    // Return the required information as a list
    return listOf(geneLength, nucleotideAt3, nucleotidesFrom7, nucleotideBeforeLast)
}