File size: 2,746 Bytes
dfea2de
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e4acaca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dfea2de
 
 
 
e4acaca
 
 
 
 
 
dfea2de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import torch.nn as nn

# ================================
# 🧠 MODEL CLASSES
# ================================

# Brain Tumor Detection Model
class BrainTumorModel(nn.Module):
    def __init__(self):
        super(BrainTumorModel, self).__init__()
        self.model = nn.Sequential(
            nn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2d(2),
            nn.Conv2d(16, 32, kernel_size=3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2d(2),
            nn.Flatten(),
            nn.Linear(32 * 56 * 56, 128),  # Adjust if image size is different
            nn.ReLU(),
            nn.Linear(128, 4)  # 4 classes
        )

    def forward(self, x):
        return self.model(x)

# Glioma Stage Detection Model
class GliomaStageModel(nn.Module):
    def __init__(self):
        super(GliomaStageModel, self).__init__()
        self.model = nn.Sequential(
            nn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2d(2),
            nn.Conv2d(16, 32, kernel_size=3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2d(2),
            nn.Flatten(),
            nn.Linear(32 * 56 * 56, 128),
            nn.ReLU(),
            nn.Linear(128, 4)  # 4 glioma stages
        )

    def forward(self, x):
        return self.model(x)

# ================================
# 👤 USER INPUT FUNCTION
# ================================

def get_user_test_data():
    print("Enter the following details for prediction:")

    gender_input = input("Gender (M/F): ").strip().lower()
    gender = 0 if gender_input == 'm' else 1  # Male = 0, Female = 1

    age = float(input("Age at Diagnosis: "))

    idh1 = int(input("IDH1 Mutation? (1 for Yes, 0 for No): "))
    tp53 = int(input("TP53 Mutation? (1 for Yes, 0 for No): "))
    atrx = int(input("ATRX Mutation? (1 for Yes, 0 for No): "))
    pten = int(input("PTEN Mutation? (1 for Yes, 0 for No): "))
    egfr = int(input("EGFR Mutation? (1 for Yes, 0 for No): "))
    cic = int(input("CIC Mutation? (1 for Yes, 0 for No): "))
    pik3ca = int(input("PIK3CA Mutation? (1 for Yes, 0 for No): "))

    return [gender, age, idh1, tp53, atrx, pten, egfr, cic, pik3ca]

# ================================
# 🩺 TUMOR PRECAUTIONS
# ================================

def get_precautions_from_gemini(tumor_type):
    precaution_db = {
        "meningioma": "Avoid radiation exposure and get regular check-ups.",
        "pituitary": "Monitor hormonal levels and follow medication strictly.",
        "notumor": "Stay healthy and get annual MRI scans if symptoms appear."
    }
    return precaution_db.get(tumor_type.lower(), "No specific precautions found.")