Indholdsfortegnelse:

(Meget enkel) Sygdomsmodellering (ved hjælp af Scratch): 5 trin
(Meget enkel) Sygdomsmodellering (ved hjælp af Scratch): 5 trin

Video: (Meget enkel) Sygdomsmodellering (ved hjælp af Scratch): 5 trin

Video: (Meget enkel) Sygdomsmodellering (ved hjælp af Scratch): 5 trin
Video: Kvantitativ Biologi og Sygdomsmodellering, DTU 2024, November
Anonim
(Meget simpel) Sygdomsmodellering (ved hjælp af Scratch)
(Meget simpel) Sygdomsmodellering (ved hjælp af Scratch)

I dag simulerer vi et sygdomsudbrud, idet det er enhver sygdom, ikke nødvendigvis COVID-19. Denne simulering blev inspireret af en video af 3blue1brown, som jeg vil linke til. Da dette er træk og slip, kan vi ikke gøre så meget som vi kan med JS eller Python, men der er også fordele ved at bruge scratch, så hvis du vil se, hvordan du modellerer et udbrud med JS, kan du se min artikel, som jeg skrev om modellering af sygdomsudbrud her. Lad os nu komme i gang!

Bemærk: Billedet ovenfor er fra en simulering ved quantum9innovation (ikke en Instructables -bruger), som du kan se her.

Tilbehør:

Du skal bruge:

  • En Scratch -konto (du kan tilmelde dig her
  • Grundlæggende viden om træk og slip (men jeg vil stadig gennemgå koden)
  • En computer eller enhed, du kan programmere med (som du sandsynligvis har, siden du læser dette)
  • Valgfrit - Se 3b1b -videoen, det giver dig en ide om, hvad vi programmerer.

Trin 1: Grundlæggende opsætning

Grundlæggende opsætning
Grundlæggende opsætning

Lad os først oprette et projekt, navngive det, hvad du vil, og derefter slette den eksisterende sprite på lærredet. Du kan gøre dette ved at klikke på papirkurven på sprite. Nu har vi et tomt lærred, og du kan ændre baggrundsfarven til, hvad du vil.

Opret derefter en ny sprite, og i stedet for at bruge en eksisterende sprite skal du male din egen. Gør det til en blå prik. Denne sprite repræsenterer den modtagelige befolkning i samfundet, og vi vil også have en genoprettet/fjernet og inficeret population, det er her navnet på modellen, SIR (modtagelig, inficeret, genoprettet/fjernet), kommer fra. Sørg for at navngive spritten "uinficeret".

Opret nu en ny sprite (igen), og tit den sprite1, som vi også selv skal male. Tit den "Sprite1" og opret 2 kostumer, den ene skal være en rød prik, og den anden en grå prik. Lav dem henholdsvis kostume1 og kostume2. Disse to repræsenterer de inficerede (den røde prik) og genoprettede/fjernede (den grå prik) populationer.

Trin 2: Opsætning af koden for den modtagelige befolkning

Opsætning af koden for den modtagelige befolkning
Opsætning af koden for den modtagelige befolkning

Vi har nu konfigureret den modtagelige befolkningskode. Vi opretter først 2 variabler: mennesker og inficerede. Variablen "Mennesker" repræsenterer befolkningen og kan ændres alt efter, hvor mange mennesker vi ønsker i vores simulering, og simuleringen vil ændre sig i overensstemmelse hermed. Vi opretter også en inficeret variabel, og dette repræsenterer den befolkning, der har/havde sygdommen. Begge disse variabler bør være globale variabler, hvilket betyder, at de kan bruges i alle sprites.

Kopier derefter koden ovenfor til den ikke -inficerede sprite. Lad os gå igennem, hvad det gør. Når programmet starter, er sprite skjult, og det er så vi ikke behøver at sætte den samme kode for kloner i selve sprite, hvilket hjælper. Derefter sætter vi de to variabler (inficerede og mennesker) til, hvad vi vil have dem til at være, i dette tilfælde sætter vi de inficerede til 1 og personer til 100. Det betyder, at vi starter med en person, der er inficeret og 100 i alt mennesker, inklusive den inficerede person. Vi kører derefter en loop, som køres med det beløb, som personvariablen er i dette tilfælde 100. Vi går til en tilfældig position og opretter derefter en klon af sprite. Vi går til en tilfældig position, fordi vi på denne måde ikke har en række prikker, der bevæger sig i en retning, og i stedet gyder i tilfældige positioner.

Trin 3: Opsætning af koden for den inficerede og fjernede Sprite

Opsætning af koden for den inficerede og fjernede sprite
Opsætning af koden for den inficerede og fjernede sprite

Skift nu til "Sprite1" sprite og kopier derefter koden ovenfor. Lad os gå igennem det. Når programmet starter, er sprite skjult, og derefter kører en loop for den mængde, inficeret er indstillet til. Det går til en tilfældig position og skaber en klon af sig selv.

Trin 4: Udfyldelse af den modtagelige befolkningskode

Udfyldelse af den modtagelige befolkningskode
Udfyldelse af den modtagelige befolkningskode

Lad os gå igennem de ting, vi skal gøre:

  • Inficere
  • Bevæge sig

Skift til den uinficerede sprite, kopier koden ovenfor, og lad os gennemgå, hvordan den fuldfører infektionen og bevægelsen. Først går det til kostume en, og det er virkelig ikke nødvendigt, men vi har det der, så hvis vi beslutter os for at tilføje flere, behøver vi ikke bekymre os om, at det ændrer kostumer til de nye, vi tilføjede. Dernæst viser det sig selv. Hvis du husker det, skjulte vi den originale sprite, så klonerne vil også blive skjult, hvilket vi ikke ønsker. Vi kører derefter en forever loop, som vil køre hele programmet, indtil nogen klikker på stopskiltet forfra. Vi glider til en tilfældig position i 1 sekund, og kontrollerer derefter, om vi er på kanten, i hvilket tilfælde vi hopper af det. Hvis vi derefter rører farven rød, kloner vi derefter Sprite1 (den inficerede/fjernede population) og øger den inficerede variabel med 1, efterfulgt af at vi sletter vores sprite.

Trin 5: Afslutning af den inficerede/fjernede kode

Udfyldelse af den inficerede/fjernede kode
Udfyldelse af den inficerede/fjernede kode

Ved at skifte til Sprite1 opretter vi en ny liste, timer. Denne liste vil holde styr på, hvor længe en prik er inficeret, og efter et vist stykke tid dør den eller genopretter, bliver en del af den fjernede/genoprettede population og repræsenteres af en grå prik, som ikke kan inficeres igen.

Kopier koden ovenfor, og lad os gå igennem den. Når vi starter som en klon, indsætter vi det samlede antal sekunder, programmet har kørt i timelisten, og vi kontrollerer dette for at se, hvor længe det er blevet inficeret, og ændrer det for at blive gendannet i overensstemmelse hermed. Vi skjuler timelisten og skifter derefter klonedragten til det inficerede kostume for sikkerheds skyld, og viser derefter vores sprite. Vi kører nu en evigt sløjfe, hvor flere ting sker: vi fortæller klonen at glide til en tilfældig position hvert andet sekund, kontrollere om den inficerede variabel er større end selve populationen, i hvilket tilfælde vi sætter den til populationen, og endelig går vi og kontrollerer timerlistens første element for at se, om det har været mere end 5 sekunder, og hvis det er sandt, skifter vi kostume til det genoprettede kostume, så vi ikke kan inficere, og derefter slette elementet fra timeren.

Anbefalede: