Skip to content
Snippets Groups Projects
Commit a2ec05c1 authored by Schleier Anna Réka's avatar Schleier Anna Réka
Browse files

Upload New File

parent 1a79933a
No related branches found
No related tags found
No related merge requests found
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment