From a2ec05c1fbd2b21ede655287af11e545e9140902 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Schleier=20Anna=20R=C3=A9ka?=
 <schleier.anna.reka@hallgato.ppke.hu>
Date: Tue, 3 Dec 2024 14:34:18 +0000
Subject: [PATCH] Upload New File

---
 lotkavolterra_antibiotics.m | 138 ++++++++++++++++++++++++++++++++++++
 1 file changed, 138 insertions(+)
 create mode 100644 lotkavolterra_antibiotics.m

diff --git a/lotkavolterra_antibiotics.m b/lotkavolterra_antibiotics.m
new file mode 100644
index 0000000..7f1583d
--- /dev/null
+++ b/lotkavolterra_antibiotics.m
@@ -0,0 +1,138 @@
+r = [0.8, 0.4, 0.5, 0.3, 0.2, 0.25]'; % Pseudomonas, Staphylococcus, Burkholderia, Stenotrophomonas, Prevotella, Streptococcus
+K = [120, 80, 70, 60, 50, 40]';
+A = [  1, -0.2, -0.4, +0.2, -0.1, -0.2;  % Pseudomonas interakciói
+      -0.1,  1,  0.0,  0.0,  0.0,  0.0;  % Staphylococcus interakciói
+      -0.5,  0.0,  1, -0.1,  0.0,  0.0;  % Burkholderia interakciói
+      +0.2,  0.0, -0.2,  1, +0.1,  0.0;  % Stenotrophomonas interakciói
+      -0.1,  0.0,  0.0, +0.1,  1, +0.1;  % Prevotella interakciói
+      -0.2,  0.0,  0.0,  0.0, +0.1,  1 ]; % Streptococcus interakciói
+x0 = [50, 30, 20, 25, 15, 10]';  % Kezdeti populációméretek
+
+antibiotics = {'Ampicillin', 'Tobramycin'}; 
+
+% Differenciálegyenlet megoldása antibiotikum hatással
+[t, X] = ode45(@(t, x) lotka_volterra_with_antibiotics(t, x, r, K, A, antibiotics), [0 100], x0);
+
+figure;
+hold on;
+colors = lines(6); 
+for i = 1:6
+    plot(t, X(:, i), 'LineWidth', 2, 'Color', colors(i, :));
+end
+legend('Pseudomonas', 'Staphylococcus', 'Burkholderia', ...
+       'Stenotrophomonas', 'Prevotella', 'Streptococcus', 'Location', 'best');
+xlabel('Idő', 'FontSize', 12);
+ylabel('Populáció mérete', 'FontSize', 12);
+title(['Lotka-Volterra modell antibiotikum hatással: ' antibiotics], 'FontSize', 14);
+grid on;
+
+% Egyensúlyi állapotok
+time_points = [20, 100]; 
+equilibrium_states = zeros(length(time_points), size(X, 2));
+
+for i = 1:length(time_points)
+    [~, idx] = min(abs(t - time_points(i))); 
+    equilibrium_states(i, :) = X(idx, :);
+end
+
+% Adatok normálása egyensúlyi állapotok ábrázolásához
+normalized_states = 100 * equilibrium_states ./ sum(equilibrium_states, 2);
+
+figure;
+bar_handle = bar(time_points, normalized_states, 'stacked');
+colors = lines(6); % 6 species
+for i = 1:size(X, 2)
+    set(bar_handle(i), 'FaceColor', colors(i, :));
+end
+xlabel('Vizsgált időpillanatok', 'FontSize', 12);
+ylabel('Populáció mérete normálva (%)', 'FontSize', 12);
+title(['Egyensúlyi állapotok antibiotikum hatással: ' antibiotics], 'FontSize', 14);
+legend({'Pseudomonas', 'Staphylococcus', 'Burkholderia', ...
+        'Stenotrophomonas', 'Prevotella', 'Streptococcus'}, ...
+        'Location', 'best');
+grid on;
+
+% Lotka-Volterra függvény antibiotikum hatással
+function dxdt = lotka_volterra_with_antibiotics(t, x, r, K, A, antibiotics)
+    r_mod = r; 
+    K_mod = K;
+
+    extinction_threshold = 10; % Kihalási küszöb
+    adjustment_rate = 0.08; % Eltartóképesség csökkentésének sebessége (lassan csökken)
+    
+    for i = 1:length(x)
+        if x(i) < extinction_threshold
+            % Fokozatos csökkentés nullához exponenciálisan, ha populáció < küszöb
+            K_mod(i) = K_mod(i) * exp(-adjustment_rate * t); 
+            r_mod(i) = r_mod(i) * exp(-adjustment_rate * t);
+            if K_mod(i) < 0.15
+                r_mod(i) = 0;
+            end
+        end
+    end
+
+    if t > 30 && t < 70 % Az antibiotikum 30 és 70 időegység között aktív
+    % Antibiotikum hatásának időfüggése (Gauss-görbe)
+    antibiotic_effect = exp(-(t - 50)^2 / (2 * 10^2));
+    sensitivity_vector = [1, 0.8, 0.9, 0.7, 0.5, 0.4];
+
+    % Növekedési ráták csökkentése az időfüggő antibiotikum hatással
+    r_mod = r_mod .* (1 - antibiotic_effect * sensitivity_vector');
+    resistance_factor = 1 + 0.01 * t; % Rezisztencia fokozatos növekedése
+    r_mod = r_mod .* (1 ./ resistance_factor);
+
+    % Az antibiotikumok antagonisztikus hatásának figyelembevétele
+        interaction_modifier = ones(size(r_mod)); % Kezdetben nincs hatás
+
+    for i = 1:length(antibiotics)
+        switch antibiotics{i}
+            case 'Ampicillin'
+                % Staphylococcus érzékenysége (részleges védelem penicillinázokkal)
+                r_mod(2) = r_mod(2) * 0.3;  % Növekedési ráta csökkentése
+                K_mod(2) = K_mod(2) * 0.2;  % Eltartóképesség jelentős csökkentése
+
+                % Streptococcus érzékenysége (kevésbé védekező képes)
+                r_mod(6) = r_mod(6) * 0.2;  % Növekedési ráta csökkentése
+                K_mod(6) = K_mod(6) * 0.03;  % Eltartóképesség erősebb csökkentése
+
+            case 'Tobramycin'
+                % Pseudomonas érzékenysége (aminoglikozid antibiotikum)
+                r_mod(1) = r_mod(1) * 0.1; % Növekedési ráta csökkentése
+                K_mod(1) = K_mod(1) * 0.05; % Eltartóképesség csökkentése
+
+            case 'Ceftazidime'
+                % Pseudomonas érzékenysége (széles spektrumú cefalosporin)
+                r_mod(1) = r_mod(1) * 0.2; % Növekedési ráta csökkentése
+                K_mod(1) = K_mod(1) * 0.01; % Jelentős eltartóképesség csökkentése
+
+                % Prevotella részleges érzékenysége
+                r_mod(5) = r_mod(5) * 0.6; % Növekedési ráta csökkentése
+
+            case 'Azithromycin'
+                % Staphylococcus érzékenysége (makrolid antibiotikum)
+                r_mod(2) = r_mod(2) * 0.3; % Növekedési ráta csökkentése
+                K_mod(2) = K_mod(2) * 0.5; % Mérsékelt eltartóképesség csökkentése
+
+                % Streptococcus érzékenysége
+                r_mod(6) = r_mod(6) * 0.2; % Növekedési ráta csökkentése
+                K_mod(6) = K_mod(6) * 0.8; % Enyhébb eltartóképesség csökkentése
+
+            case 'Tetracycline'
+                % Tetracycline (bakteriosztatikus) hatása
+                r_mod(3) = r_mod(3) * 0.5; % Burkholderia növekedési ráta csökkentése
+                K_mod(3) = K_mod(3) * 0.5; % Burkholderia eltartóképesség csökkentése
+
+                interaction_modifier(2) = interaction_modifier(2) * (1 - 0.8); % Csökkenti Penicillin hatékonyságát
+            case 'Penicillin'
+                % Penicillin (baktericid) hatása
+                r_mod(2) = r_mod(2) * 0.7; % Staphylococcus növekedési ráta csökkentése
+                K_mod(2) = K_mod(2) * 0.8; % Staphylococcus eltartóképesség csökkentése
+
+                interaction_modifier(3) = interaction_modifier(3) * (1 - 0.8); % Csökkenti Tetracycline hatékonyságát
+        end
+    end
+            r_mod = r_mod .* interaction_modifier; 
+    end
+    % Lotka-Volterra dinamikák számítása
+    dxdt = r_mod .* x .* (1 - ((A * x) ./ K_mod));
+end
-- 
GitLab