Une âme charitable avec une spécialité en codage

karton
Passionné
Messages
1 385
Fofocoins
24 251
Genre
Homme
Alors j'ai utilisé l'ide rstudio sur posit.cloud
et j'ai collé ton premier script.
A quoi reconnais tu qu'il ne marche pas stp ?
 
J
Jesuisperdue
Anonyme
Alors j'ai utilisé l'ide rstudio sur posit.cloud
et j'ai collé ton premier script.
A quoi reconnais tu qu'il ne marche pas stp ?
Bah je me demande si il ne faut pas voir l’évolution/l’effet de l’halo d’initiation c’est à dire que au début on est une bactérie tapissais dans le fond avec c’elle du centre au milieu, et qu’au fur a mesure on voit l’halo grandir. Car dans ce code on voit les bactérie apparaître petit à petit, je ne sais pas si c’est clair par message c’est pas évident mais je pense que je vais garder ça
 
karton
Passionné
Messages
1 385
Fofocoins
24 251
Genre
Homme
Je n'ai pas trop bien compris.
Mais ce n'est pas important. Si tu as une solution tant mieux.
Tu n'as plus besoin d'aide ?
 
Jill 2
Mega actif
Messages
295
Fofocoins
3 131
Genre
Femme
Salut âme charitable merci d’être là, si tu es à l’aise avec le codage plus précisément Rstudio. J’aimerais de l’aide. Je suis toute seul dans mon groupe à travailler, je dois le rendre au plus tard dimanche. Bien sûr ça fait un moment je suis dessus mais y a toujours un truc qui va pas.


Les consignes : L'objectif de ce travail est de développer un modèle spatialisé reproduisant le contexte expérimental, à savoir une espèce bactérienne (B) ensemencée en masse dans un milieu gélosé et une autre espèce (Escherichia coli) déposée en surface, à un endroit précis, émettant une molécule diffusive inhibant la croissance de B.
Les bases de ce modèle sont présentes dans le script issu du TP 2 (Modèle spatialisé, deux espèces en symbiose), qu'il faudra modifier pour:
• initialiser la simulation dans des conditions proches de l'expérience (E. Coli au centre, B partout)
• modéliser seulement une compétition entre les deux espèces, pas de symbiose
• modéliser l'émission d'une molécule inhibitrice par E. coli.
• modéliser la diminution du taux d'accroissement de B. en présence de la molécule inhibitrice.

Si quelqu’un a le temps et ce sent je dirais pas nom merci d’avance
Wow, le seul truc que j'ai compris c'est molécule et Escherichia Coli 🤯
 
J
Jesuisperdue
Anonyme
Je n'ai pas trop bien compris.
Mais ce n'est pas important. Si tu as une solution tant mieux.
Tu n'as plus besoin d'aide ?
Bah enfaite pour mieux expliquer quand on lance le programme les bactérie apparaissent petit à petit, or normalement il faudrait que la population en jaune soit de partout au début avec la population en bleu au centre et qu’au fil du temps le halo se forme autour de la bactérie bleu du milieu, car elle tue avec sa molécule les bactéries jaune. Car j’aimerais ensuite rentrer un tableau qui me dit pour temps = 0 j’avais jsp 40 bactérie jaune et 10 Bleu et pour t=50 j’ai 10 jaune et 30 bleu. C’est dommage qu’on ne peux pas inclure de photo ça serrait plus simple à expliquer. Mais j’arrive juste pas à faire ça. Mais c’est pas important je pense, c’est sûrement du détaille, je ne sais pas si c’était plus clair
 
karton
Passionné
Messages
1 385
Fofocoins
24 251
Genre
Homme
Bah enfaite pour mieux expliquer quand on lance le programme les bactérie apparaissent petit à petit, or normalement il faudrait que la population en jaune soit de partout au début avec la population en bleu au centre et qu’au fil du temps le halo se forme autour de la bactérie bleu du milieu, car elle tue avec sa molécule les bactéries jaune. Car j’aimerais ensuite rentrer un tableau qui me dit pour temps = 0 j’avais jsp 40 bactérie jaune et 10 Bleu et pour t=50 j’ai 10 jaune et 30 bleu. C’est dommage qu’on ne peux pas inclure de photo ça serrait plus simple à expliquer. Mais j’arrive juste pas à faire ça. Mais c’est pas important je pense, c’est sûrement du détaille, je ne sais pas si c’était plus clair
Je vois.
Dans le principe je vois ce que tu aimerais obtenir comme résultat
Avec Chatgpt j'ai obtenu un code.
J'essaye de débuguer parce que ca ne marche pas.
Mais il me répond comme s'il avait tout compris ! Je le cuisine un peu :)
 
J
jesuisperdue
Anonyme
Je vois.
Dans le principe je vois ce que tu aimerais obtenir comme résultat
Avec Chatgpt j'ai obtenu un code.
J'essaye de débuguer parce que ca ne marche pas.
Mais il me répond comme s'il avait tout compris ! Je le cuisine un peu :)
bonne cuisson ! Il est têtu des fois j'ai essayé en lui posant plein de question mais j'ai pas obtenue ma réponse
 
karton
Passionné
Messages
1 385
Fofocoins
24 251
Genre
Homme
Voici le dernier script obtenu:


# Nettoyage initial
rm(list = ls())
graphics.off()

# Chargement des packages
if (!require("fields")) install.packages("fields")
library(fields)

### PARAMÈTRES ###
sizeenvironment <- 50 # Taille de la grille
r <- 0.25 # Taux de croissance
K <- 500 # Capacité porteuse
dt <- 0.1 # Pas de temps
dureesimulation <- 50 # Durée totale
tauxdispersion <- 0.2 # Probabilité de dispersion

### INITIALISATION ###
create_matrix <- function(size, val) {
m <- matrix(val, nrow = size + 2, ncol = size + 2)
m[c(1, size + 2), ] <- m[, c(1, size + 2)] <- 0 # Bordures à 0
return(m)
}

# Populations - Densité visible dès le départ
pop1 <- create_matrix(sizeenvironment, K * 0.6) # B.subtilis (60% de remplissage)
pop2 <- create_matrix(sizeenvironment, 0) # E.coli
pop2[(sizeenvironment/2-1):(sizeenvironment/2+1),
(sizeenvironment/2-1):(sizeenvironment/2+1)] <- K/4 # Tache centrale 3x3

### COULEURS AMÉLIORÉES ###
setup_display <- function() {
par(mar = c(3, 3, 3, 5))
list(
colorRampPalette(c("#FFCCCC", "#FF0000", "#990000"))(100), # B.sub (rouge)
colorRampPalette(c("#CCE5FF", "#0066FF", "#003399"))(100), # E.coli (bleu)
rgb(0.2, 0.7, 1, alpha = seq(0.1, 0.8, length.out = 50)) # Inhibiteur
)
}

### FONCTIONS ###
safe_growth <- function(Ni, Nj, r, K, dt, aji) {
Ni <- max(0, Ni, na.rm = TRUE)
Nj <- max(0, Nj, na.rm = TRUE)
growth <- Ni * r * dt * (1 - (Ni + aji * Nj)/K)
return(max(0, Ni + growth))
}

### BOUCLE PRINCIPALE ###
colors <- setup_display()

for (t in seq(0, dureesimulation, dt)) {
# Copie des populations
old_pop1 <- pop1
old_pop2 <- pop2

# Croissance
for (i in 2:(sizeenvironment + 1)) {
for (j in 2:(sizeenvironment + 1)) {
pop1[i,j] <- rpois(1, lambda = safe_growth(old_pop1[i,j], old_pop2[i,j], r, K, dt, 1.5))
pop2[i,j] <- rpois(1, lambda = safe_growth(old_pop2[i,j], old_pop1[i,j], r, K, dt, 0.8))
}
}

# Dispersion simplifiée
disperse <- function(pop) {
new_pop <- pop
for (i in 2:(sizeenvironment + 1)) {
for (j in 2:(sizeenvironment + 1)) {
if (pop[i,j] > 0) {
n_disp <- rbinom(1, size = min(pop[i,j], 20), prob = tauxdispersion * dt)
if (n_disp > 0) {
for (k in 1:n_disp) {
di <- sample(-1:1, 1)
dj <- sample(-1:1, 1)
new_pop[i + di, j + dj] <- new_pop[i + di, j + dj] + 1
}
new_pop[i,j] <- new_pop[i,j] - n_disp
}
}
}
}
return(new_pop)
}

pop1 <- disperse(pop1)
pop2 <- disperse(pop2)

# Affichage (tous les 2 pas de temps)
if (t %% 2 == 0) {
# Préparation des données
display_pop1 <- sqrt(pop1[2:(sizeenvironment+1), 2:(sizeenvironment+1)] / K) # Normalisation + sqrt
display_pop2 <- sqrt(pop2[2:(sizeenvironment+1), 2:(sizeenvironment+1)] / K)

# Plot principal
image(display_pop1, col = colors[[1]], zlim = c(0, 1),
main = paste("Simulation - Temps =", round(t, 1)),
xlab = "", ylab = "", axes = FALSE)
image(display_pop2, col = colors[[2]], add = TRUE)

# Légende
legend("topright",
legend = c("B.subtilis", "E.coli"),
fill = c("#FF0000", "#0066FF"),
bg = "white", cex = 0.9)

# Échelle de couleur
image.plot(zlim = c(0, 1), legend.only = TRUE,
col = colors[[1]],
smallplot = c(0.88, 0.9, 0.3, 0.7),
legend.args = list(text = "Densité (√)", side = 4, cex = 0.8))

Sys.sleep(0.1) # Pause pour visualisation
}
}
 
karton
Passionné
Messages
1 385
Fofocoins
24 251
Genre
Homme
j'obtiens ca comme résultat
Une âme charitable avec une spécialité en codage
 

🚫 Alerte AdBlock !

Vous avez activé le mode Ninja, et il cache toutes les pubs ! 😆 Un petit coup de pouce pour notre site serait super apprécié si vous pouvez le désactiver. 🙏

🦸‍♂️ J'ai Désactivé AdBlock !