/**
 * A biologist wants to check if two genes interact with each other based on their expression levels.
 * The function takes in the names of the two genes (gene1 and gene2) and a map containing expression data for all genes.
 * The function should return true if the following conditions are met:
 * - Both gene1 and gene2 are present in the expression data map
 * - The expression level of gene1 is greater than 0
 * - The expression level of gene2 is greater than 0
 * - The product of the expression levels of gene1 and gene2 is less than 100
 * Otherwise, it should return false.
 */
fun checkGeneInteractions(gene1: String, gene2: String, expressionData: Map<String, Double>): Boolean {

    return if (gene1 in expressionData && gene2 in expressionData) {
        expressionData[gene1]!! > 0 && expressionData[gene2]!! > 0 && expressionData[gene1]!! * expressionData[gene2]!! < 100
    } else {
        false
    }
}

// Example usage
val expressionData = mapOf(
    "gene1" to 5.6,
    "gene2" to 10.2,
    "gene3" to 0.0
)
/**
 * A biologist wants to check if two genes interact with each other based on their expression levels.
 * The function takes in the names of the two genes (gene1 and gene2) and a map containing expression data for all genes.
 * The function should return true if the following conditions are met:
 * - Both gene1 and gene2 are present in the expression data map
 * - The expression level of gene1 is greater than 0
 * - The expression level of gene2 is greater than 0
 * - The product of the expression levels of gene1 and gene2 is less than 100
 * Otherwise, it should return false.
 */
fun checkGeneInteractions(gene1: String, gene2: String, expressionData: Map<String, Double>): Boolean {
/**
 * A biologist wants to check if two genes interact with each other based on their expression levels.
 * The function takes in the names of the two genes (gene1 and gene2) and a map containing expression data for all genes.
 * The function should return true if the following conditions are met:
 * - Both gene1 and gene2 are present in the expression data map
 * - The expression level of gene1 is greater than 0
 * - The expression level of gene2 is greater than 0
 * - The product of the expression levels of gene1 and gene2 is less than 100
 * Otherwise, it should return false.
 */
fun checkGeneInteractions(gene1: String, gene2: String, expressionData: Map<String, Double>): Boolean {

    return if (gene1 in expressionData && gene2 in expressionData) {
        expressionData[gene1]!! > 0 && expressionData[gene2]!! > 0 && expressionData[gene1]!! * expressionData[gene2]!! < 100
    } else {
        false
    }
}

// Example usage
val expressionData = mapOf(
    "gene1" to 5.6,
    "gene2" to 10.2,
    "gene3" to 0.0
)