Avida Lab 2019

Background

Avida is a digital evolution research platform used to study evolution in real-time. Avida-Ed is a simplified version of the research-grade software intended for education.

In Avida, organisms develop, reproduce, and evolve within the confines of a computer program. Each organism (aka Avidian) has its own genetic code, which consists of simple computer instructions. Certain sequences of instructions allow the organism to perform certain functions, like replicate or metabolize a resource. You can allow resources (e.g. "Norose") in the world, and if an Avidaian evolves to utilize that resource, it gives the Avidian a boost to replication rate. As all Avidians in Avida-Ed are asexual, an increased replication rate means increased fitness. Some resources are more difficult (requiring more complex genetic instructions) to utilize, and hence have a larger reward for their metabolism.

Avida allows for fast, easy, and informative evolutionary experiments using only a computer. Of course, results found from Avida need to be carefully interpreted before applying to other living systems.

If you are interested in learning more about how Avida works and how it is used in research, you can check out the Avida wiki and a selection of related papers.

Before the lab section on Tuesday, please connect to the web-based Avida platform, watch the introduction video, and conduct Phase 0 and Phase 1 from the Protocol below. You should come to your lab section with a saved workspace and a saved Avidian, which you will use for Phases 2 and 3 of the protocol (these latter phases will be done during the lab section).

Getting Started with Avida

The Program

We will be using the web browser version of Avida-Ed. This version should work on any computer using a recent version of Chrome or Firefox; no software needs to be installed on your machine. (There are also desktop versions of Avida-Ed and Avida for research, but you aren't expected to use these.)

Introduction Video

The developers of Avida-Ed have made a nice introduction video explaining Avida-Ed's features and how to use them. It is strongly recommended that you watch this short video before coming to lab.

Lab Overview

This lab consists of four parts. First, you will get familiar with Avida by conducting phases 0 and 1 of the protocol below before lab section. Second, during lab section your TA will briefly review how to use Avida-Ed and how the digital organisms function. Third, as an Avida tutorial, you will finish phases 2 and 3 of the protocol (which is analogous to our Antibiotic Resistance Lab, but using Avida). Finally, you will begin your group-directed research project using Avida (specifying your question, hypotheses, methods, and predictions). If you have time, you may even start running some experiments during lab section. You will continue to work on this research project for the next 3-4 weeks.

Materials

  • A computer with either Chrome or Firefox installed (other browsers probably work, but aren't recommended by the developers). We will be working in a large conference room in LSB, and, if possible, you should bring your personal computer to get familiar with using Avida-Ed on your own machine. If you do not have access to a laptop, please inform your TA and we will provide one for you.

PROTOCOL

Antibiotic Resistance Lab Revisited: An Avida-Ed Tutorial

The antibiotic resistance lab that we conducted in lab this quarter consisted of three major phases: [1] Allow mutations to arise in a population and screen for mutants possessing a phenotype of interest (resistance for rifampicin). [2] Start a new population using a mutant from phase 1 and evolve this population for a long time in an environment that does not select for the phenotype conferred by the mutation (a drug-free environment) [3] a) Determine if the evolved strain maintains the phenotype (resistance) or has reverted to the ancestral phenotype (sensitivity). b) Also, compete the original mutant strain and the evolved strain against the ancestor to determine the fitness of each strain relative to the ancestor. This experiment and data allows us to determine if the original mutation is costly in the absence of selection for it, and, if so, whether the population evolved to revert or compensate for the costly mutation.

We will use Avida to conduct all of these experimental phases. You will do phases 0 and 1 before the lab section, and then you will do phases 2 and 3 during the lab section with your lab group. This protocol will demonstrate many of the important features of Avida-Ed and also demonstrate the power of digital evolution (replicating a four week experiment in ~30 minutes!)

Phase 0

Getting familiar with Avida-Ed settings. If you haven't already, launch Avida-Ed. and watch the introduction video. Here we're checking that important aspects of this platform are clear.

  1. You should see a blank "Plate" grid in the center of the Avida-Ed page. This is the environment your digital organisms will inhabit. Each organism will be colored based on a property, such as its fitness (number of offspring), energy acquisition (related to how many resources it can process), offspring cost (related to how long it takes to copy its genome), or ancestor; you can change the coloration mode with the menu below the grid.
  2. You should see a "Freezer" menu on the left. You can save particular organisms, entire populations, or configurations (environment settings used to set up an experiment) in the Freezer by using the Freezer menu at the very top of the page or dragging organisms, etc into these panes.
  3. Click the Setup button at the top-right of the Plate grid. A menu with Environment Settings options will appear:
    • Dish Size: This defines the size of the environment and thus the max number of organisms
    • Per site mutation rate: Rate at which mutations occur when organisms copy their genetic instructions.
    • Ancestral organisms: What organism(s) should be in the environment to start the experiment. You can drag organisms from the Freezer into this box.
    • Place Offspring: Placing offspring "Anywhere, randomly" approximates a well-mixed liquid culture. As opposed to placing offspring "Near their parent", which approximates growth in a spatial environment (eg on an agar plate).
    • Resources: These are the "resources" that an organism can evolve to utilize. Turning on a resource means that an organism will receive a fitness benefit if it evolves genetic instructions to process that resource; if a resource is turned off, it will not be in the environment and being able to process that resource has no benefit. Each resource is named based on the logic function that it's associated with (e.g., "andose" is associated with genetic instructions for the "AND" function). You can think of these more generally as the presence/absence of selection pressures for each function that the organisms could evolve.
    • Repeatability mode: "Experimental" makes each simulation proceed randomly (this is what you'll always want to use). "Demo" makes every run of a given simulation do the same thing.
    • Pause run: If you enter a number into the box and click the checkbox after "when checked", your simulation will automatically stop at the specified update. This is a very handy feature to ensure that all replicates for an experimental treatment run for exactly the same amount of time. On the other hand, if you are in an exploration phase and want the simulation to run indefinitely (or until you "Pause" it), then simply uncheck the checkbox.

Phase 1

Goal: Allow mutations to arise in a population and screen for mutants possessing a phenotype of interest.

Wet lab analog: As part of the Luria-Delbruck lab, we grew up a population in a microtiter well overnight. Mutations spontaneously arose as the population grew. Some of these mutations conferred resistance to rifampicin. We identified these mutants by plating the population on agar plates with rifampicin and looking for colonies that could grow.

The Avida Protocol:

  1. If you haven't already, launch Avida-Ed.
    1. You should see a blank "Plate" (aka environment) grid and some default items in the menus on the left.
  2. First, we'll set up our experimental conditions (analogous to the Luria-Delbruck growth phase):
    1. Click the Setup button at the top-right of the grid.
    2. A menu with Environment Settings options will appear. Enter the following settings:
      1. Dish Size: 30 x 30
      2. Per site mutation rate: 2%
      3. Ancestral organisms: Drag the @ancestor strain from the Freezer menu on the left into this box.
      4. Place Offspring: Anywhere, randomly (approximates a well-mixed liquid culture, like a microtiter well).
      5. Resources: Turn on all checkboxes (or click All in the dropdown menu) (This means there will be a selective benefit for all the functions that an Avidian can evolve to perform)
      6. Repeatability mode: Experimental
      7. Pause run: At update 1500 (make sure to check the checkbox)
    3. Click the Map button at the top-right of the menu to return to the grid view.
  3. Let's save the experimental set up we've just defined:
    1. Click the Freezer menu in the top menu bar.
    2. Click "Save Experiment Configuration to Freezer"
    3. Give this experiment configuration a name (e.g., "init_growth_phase")
    4. You should see your new object in the "Configured Dishes" panel on the left.
    5. (If you want to start a new run of this experiment you can drag your saved configuration from the Freezer into the white box next to the Plate icon at the top-left of the grid)
  4. Now, we can run the experiment we've set up.
    1. Click the Run button below the grid.
      1. You will see offspring organisms start to fill up the environment.
      2. While the simulation is running, you can play with a) what values are used to color the organisms using the "Mode" menu below the grid, and b) what values are graphed using the "Y-axis" menu below the graph on the bottom-right.
      3. As organisms reproduce and the population grows, mutations will spontaneously arise. You will probably notice new strains with increased fitness appear and start to sweep through the population. Keep an eye on the Population Statistics panel at the top-right of the window: here you'll see counts of how many organisms are able to perform the various functions (i.e., process the corresponding resources). When mutants arise that are able to perform one or more of these functions, you're likely to see big increases in fitness.
    2. The simulation should automatically stop at update 1500.
  5. Your grown up population likely contains lots of mutants, many of which have evolved the ability to perform one or more new functions. Let's take a look
    1. Click on an organism (grid cell) in the environment.
    2. Look at the Selected Organism panel to the right of the grid. Here you can see the Fitness (# offspring), Energy acquisition rate (related to resources it can process), offspring cost (related to how long it takes to copy its genome), etc. You can also see which of the functions this organism can perform (which resources it can process).
    3. Click on a few organisms and get a sense for the diversity in your population with respect to these properties.
  6. Next, we'll select a mutant that has a novel phenotype of interest (analogous to a mutant with drug resistance) to use in the next phase of the experiment:
    1. In the Luria-Delbruck/ABR lab, we plated on rifampicin to screen for a mutant of interest. We don't need to do selective plating to find mutants in Avida, because we can look at the phenotypes/genotypes of organisms just by clicking on them and looking at their information in various menus.
    2. Change the organism coloration mode to "Fitness" using the "Mode" menu below the grid.
    3. Click on an organism that seems to have the highest fitness (square with the brightest yellow/white color)
      1. Take a look at the functions this organism can perform in the Selected Organism Type panel. Most likely it will be able to perform one or more functions (indicated by a non-zero # next to that function). Ideally it is be able to perform one or more functions other than NOT and NAN (NOT and NAN are "simple" phenotypes that will be less interesting in later steps). If this is not the case for your organism, see if another organism in your population meets these criteria. If not, click "Run" to run the simulation for ~200 more updates, then Pause and check again (repeat until you find a suitable organism).
    4. Once you have selected a high-fitness organism that can perform complex function(s), save that mutant for later use:
      1. Drag that organism from the grid into the Organisms panel of the Freezer.
      2. Name your organism (e.g., "picked_mutant")
  7. Let's save the end population to the Freezer (in case we want to revisit other organisms or population stats later)
    1. Click the "Freezer" menu in the top menu bar.
    2. Click "Save Current Population to Freezer"
    3. Give your population a name (e.g., "init_growth_phase@1500")
    4. You should see a new saved population in the "Populated Dishes" panel of the Freezer
  8. Let's now save the entire workspace on your computer, which we'll open afresh during your lab section.
    1. Click the "File" menu in the top menu bar.
    2. Click "Save Workspace as"
    3. Give your workspace a name (e.g., "My_Avida_Protocol_WS")
    4. This workspace will be saved as a zip file wherever your computer stores downloaded files.
  9. The last step before your lab section is to make sure you can open your saved workspace after closing Avida.
    1. Start by closing the Avida webpage.
    2. Reopen a fresh Avida webpage by clicking here.
    3. Click the "File" menu in the top menu bar.
    4. Click "Open Workspace"
    5. Select the zip file that you saved in the last step.
    6. After the workspace opens, make sure that you see the configured dish, organism, and populated dish (that you previously froze) in the Freezer panel.
    7. You can again close the Avida webpage-- you're ready for lab section!

Phase 2

Goal: Start a new population using a mutant from phase 1 and evolve this population for a long time in an environment that does not select for the phenotype conferred by the mutation

Wet lab analog: We inoculated cultures using rifampicin-resistant mutant colonies picked from the rifampicin agar plates of the Luria-Delbruck lab. We then propagated these cultures for 26 days in drug-free media to allow these populations to evolve for a long period of time. Given that the media was drug-free, there was no selection for the original rifampicin-resistance mutation. If this resistance mutation was costly, the strains may evolve to revert the mutation and become sensitive again or to compensate for the cost via other mutations.

The Avida Protocol:

  1. After initiating a new Avida webpage, open up the workspace you saved before lab section (i.e., follow step 9 of Phase 1 above).
  2. We'll set up a new experiment to evolve our selected mutant in a non-selective environment
    1. Click the New button below the grid
    2. If you had been running anything on this webpage before this step, a dialog will appear asking if you'd like to save things. If you already saved everything in Phase 1, you can click "Discard" to get a new empty environment. If no dialog appears, just ignore this step.
    3. Click the Setup button at the top-right of the grid.
    4. A menu with Environment Settings options will appear. Enter the following settings:
      1. Dish Size: 30 x 30
      2. Per site mutation rate: 2%
      3. Ancestral organisms: Drag your "picked_mutant" strain from the Freezer menu on the left into this box.
      4. Place Offspring: Anywhere, randomly (approximates a well-mixed liquid culture, like a test tube).
      5. Resources: Turn OFF all checkboxes (or click NONE in the dropdown menu) (This means there will NOT be a selective benefit for any of the functions that an Avidian can evolve to perform. (analogous to evolving a resistant strain in a drug-free environment: an environment where the resistance function has no selective benefit))
      6. Repeatability mode: Experimental
      7. Pause run: At update 2000 (make sure to check the checkbox) (a longer sim, analogous to a longer period of evolution)
    5. Click the Map button at the top-right of the menu to return to the grid view.
  3. Let's save the experimental set up we've just defined:
    1. Click the Freezer menu in the top menu bar.
    2. Click "Save Experiment Configuration to Freezer"
    3. Give this experiment configuration a name (e.g., "evolution_phase")
    4. You should see your new object in the "Configured Dishes" panel on the left.
    5. (If you want to start a new run of this experiment you can drag your saved configuration from the Freezer into the box next to the Plate icon at the top-left of the grid)
  4. Now, we can run the experiment we've set up.
    1. Before we take off running, we can set ourselves to track the phenotype of our original mutant.
      1. Click the Forward button to advance the sim just 1 update.
      2. Click on the founder mutant organism in the center of the grid (the only colored square). Look at which functions your mutant can perform in the Selected Organism Type panel (which functions have a '1' next to them).
      3. Before proceeding have your PF, TA, or instructor look at your selected organism (this will confirm that you were able to get through phases 0 and 1 before the lab, and will be worth a point towards your grade in this class).
      4. In the Population Statistics panel, click on the buttons for the functions that your founder mutant can perform. Doing so will highlight all cells that can perform these functions with a green outline in the grid (your founder cell should be highlighted now), and information for cells with this phenotype will be plotted in green in the graph.
    2. Now, click the Run button below the grid.
      1. Keep an eye on how many organisms in the population have the phenotype of your founder mutant (how many organisms are highlighted in the grid, and looking at the counts of organisms that can perform the functions in the "Population Stats" panel.) Is the founder mutant's phenotype maintained in the population, or is it lost?
      2. Look at the graph of Avg fitness over time. Is it increasing/decreasing? What explains the changes in fitness? Look at the function counts and other graphs as the sim proceeds. If fitness is increasing is it because organisms are able to perform functions to process resources, or something else? Do the adaptations you see make sense for the current environment?
    3. The simulation should automatically stop at update 2000 (this will take a few minutes, but a lot less time than 26 days!)
  5. Next, we'll select an arbitrary organism as a representative of our evolved population for use in Phase 3:
    1. Change the organism coloration mode to "Fitness" using the "Mode" menu below the grid.
    2. Click on the organism in the top-left square of the grid. If that square is black (unoccupied) or gray (non-viable organism) click on a viable square next to the top-left-most square.
    3. Drag that organism from the grid into the Organisms panel of the Freezer.
      1. Name your organism (e.g., "evolved_isolate")
  6. Let's save the end population to the Freezer (in case we want to revisit other organisms or population stats later)
    1. Click the "Freezer" menu in the top menu bar.
    2. Click "Save Current Population to Freezer"
    3. Give your population a name (e.g., "evolution_phase@2000")
    4. You should see a new saved population in the "Populated Dishes" panel of the Freezer

Phase 3

Goal: a) Determine if the evolved strain maintains the phenotype (resistance) or has reverted to the ancestral phenotype (sensitivity). b) Also, compete the original mutant strain and the evolved strain against the ancestor to determine the fitness of each strain relative to the ancestor.

Wet lab analog: a) We plated the cultures from the end of our evolution experiment on LB plates, then replicated the colonies from that plate on another LB plate and a rifampicin plate. If colonies appear on the LB replica plate but most/all colonies are missing on the rifampicin replica plate, then our final culture is no longer resistant (or vice versa). b) We did competitions between our Day 2 ABR lab cultures (essentially our original picked mutant strain) and our Day 26 ABR lab end point cultures both against the original, non-mutated, non-resistant, ancestor to assess the fitness of our original mutant and the evolved strain relative to this ancestor.

The Avida Protocol:

  • Make sure you've saved a representative organism from the end of Phase 2 in the Freezer.

Part a): We don't need to perform an experiment to check if our evolved organism lost the phenotype of the picked mutant, we can just look at its information...

  1. Click on the Organism button in the top-left of the window. A new view will appear.
  2. Drag your "evolved_isolate" organism from the Freezer panel into the empty box next to the DNA icon at the top-left of the Organism view.
  3. You'll see your organism's genome appear in the view.
  4. Click the Run button below the genome view. You'll see a "life cycle" of your organism play out as it executes its genetic instructions and makes a copy of its genome.
  5. After your organism's "life cycle" is complete, look at the Function panel in the top-right of the window. This will display how many times your organism performed each function during its life. If your organism didn't perform all of the functions that your picked_mutant strain does, then it lost those phenotypes during the evolution phase. If it still performs those functions, perhaps it's mutations are not costly, or perhaps it gained other compensatory mutations during evolution. We'll find out in part b next...
  6. Click the Population button at the top-left of the window to return to the Population view.

Part b): Perform competitions to assess the relative fitnesses of your "picked_mutant" and "evolved_isolate" strains

  1. Click the New button below the grid
  2. A dialog will appear asking if you'd like to save things. If you already saved everything in Phase 2, you can click "Discard" to get a new empty environment.
  3. Click the Setup button at the top-right of the grid.
  4. A menu with Environment Settings options will appear. Enter the following settings:
    1. Dish Size: 50 x 50 (we'll use a bigger environment so the population is in exponential growth phase longer)
    2. Per site mutation rate: 0% (we typically assume new mutations don't arise during competitions, we can enforce this is so in Avida)
    3. Ancestral organisms: Drag your "picked_mutant" strain from the Freezer into this box AND drag your ancestor strain into the box as well.
    4. Place Offspring: Anywhere, randomly (approximates a well-mixed liquid culture, like a test tube).
    5. Resources: Turn OFF all checkboxes (or click NONE in the dropdown menu)
    6. Repeatability mode: Experimental
    7. Pause run: At update 100 (make sure to check the checkbox) (we're just assaying the growth rates of strains, we don't need a lot of time for mutations to arise, etc)
  5. Click the Map button at the top-right of the menu to return to the grid view.
  6. You can save this experiment configuration like before if you'd like.
  7. Now, we can run the experiment we've set up.
    1. First, change the coloration mode to "Ancestor organism" using the "Mode" menu below the grid. This will let us identify our two competition strains in the grid (there should be a key giving the colors for each Avidian strain underneath the grid).
    2. Click the Run button below the grid.
  8. The simulation should automatically stop at update 100.
  9. We can assess the fitness of the "picked_mutant" strain relative to the ancestor by looking at which strain has a higher frequency at the end of the competition.
    1. If there are more ancestor organisms than "picked_mutant" organisms, then that suggests that the ancestor has higher relative fitness than the mutant: this outcome suggests the mutations possessed by your picked_mutant are costly in a non-selective environment.
    2. If your competition ends with mostly picked_mutant organisms, that suggests the mutant has higher fitness than the ancestor and its mutations aren't costly.
    3. You could actually count organisms to numerically quantify relative fitness, but don't have to for this lab.
  10. Repeat Phase 3 Part b steps 1-8 to conduct a competition between the ancestor and your evolved_isolate strain.
  11. We can assess the fitness of the "evolved_isolate" strain relative to the ancestor by looking at which strain has a higher frequency at the end of the competition.
    1. If there are more "evolved_isolate" organisms than ancestor organisms, then that suggests that the evolved strain has higher relative fitness than the mutant: this outcome suggests the evolved strain either i) lost its costly complex function phenotypes and further adapted to nonselective growth conditions (e.g., by decreasing its offspring cost), or ii) possessed non-costly mutations for complex functionalities, or iii) gained further mutations that compensated for its original costly mutations.
    2. If your competition ends with mostly ancestor organisms, that suggests your evolved_isolate started with costly mutations and never adapted back to the fitness level of the ancestor

Avida is a sophisticated digital instantiation of evolutionary conditions. Many open-ended adaptations and outcomes can occur in Avida experiments. What happened in your Avida experiments today? How do your results compare to the known/expected results of our Antibiotic Resistance lab? Everyone will have a slightly different outcome based on their idiosyncratic population histories!

Designing Your Own Avida Experiments

  • Once you have finished the phases above, your group should start to discuss and brainstorm possibilities for an experiment of your own design. Before your start this discussion:
    1. One person in the group should connect with the Avida Worksheet 1. This link is also available on the Protocols page of the class website.
    2. This person should make a copy and rename the Google doc as "Avida_Worksheet_1_YourGroupName". This person should then share this Google doc with the rest of your lab group (allowing everyone to edit).
    3. Everyone should take a quick look through this Google doc. A filled out version of this will need to be submitted by 5pm this coming Sunday. Only 1 worksheet per lab group is needed.
  • Before you discuss possible questions, hypotheses, methods and predictions, please read the remaining sections of this protocol (especially "Inputs to Avida-Ed," "Outputs from Avida-Ed," and "Example Ideas Motivating Experiments").

Inputs to Avida-Ed:

  • Adjustable Mutation Rate
  • Adjustable Carrying Capacity (Population Size)
  • Initial/Ancestral Organism(s)
  • Spatial Structure
  • Resources in Environment (of varying complexity and reward)
  • Ability to "freeze" individuals and populations and reanimate them

Outputs from Avida-Ed:

  • Evolved Populations and Individuals
  • Abundance Data of Organisms which can consume various resources
  • Fitness (and other phenotype information)

Example Ideas Motivating Experiments:

  • Exploration of mutation rate:
    1. Is there an optimal rate of mutation? Mutation is both the way that new beneficial phenotypes arrive as well as a process that can disrupt good phenotypes. How might you explore these different aspects of the process of mutation?
    2. Can a population adapt to a specific mutation rate? Does evolution lead to genotypes that are more "robust" to mutation for populations evolving under high mutation rates? Would genotypes evolved under one mutation rate fare worse when transplanted to an environment with a different mutation rate? How might you go about addressing such questions?
  • Exploration of population structure:
    1. Is the evolutionary trajectory of a population affected by whether offspring dispersal occurs near the parent? If Avidians face a "rugged landscape" what would you expect when comparing the trajectories of fitness from a structured versus unstructured population? What would you expect if the landscape were "smooth"?
    2. How might you test Wright's shifting balance process in Avida?
  • Exploration of historical contingency:
    1. Does rewarding moderate and hard functional abilities impact the ability of Avidians to evolve very hard or brutal functional abilities?
    2. For Avidians that have evolved moderate/hard functions, are very hard or brutal functions more likely to evolve with the moderate/hard functions continually rewarded (e.g., these simpler functions serving as building blocks) or with moderate/hard functions not rewarded (e.g, these simpler functions interfere with more complex function evolution)? How would you explore these possibilities? How would you use features of the Avida platform (e.g., freezing organisms or populations) to explore this?
  • Exploration of changing environments:
    1. Is there evidence of "local adaptation" in Avida? This is where adaptation to one environment (e.g., certain resources present) comes at an expense to adaptation to a different environment. How might you approach this topic?
    2. Is there a tradeoff between being a specialist and generalist in Avida? Are specialists able to outcompete generalists for the functions they specialize on? Do generalist perform better in environments rewarding a larger set of functions? How would you obtain specialists and generalists for such a study? How would you test for the possibility of tradeoffs?

Helpful Information

Saving a Workspace

You can save your entire workspace, including the current population and all Freezer contents (saved configs, organisms, and populations) using File > Save Current Workspace. This will create a .zip folder with your workspace contents. Then you can later reload your workspace using File > Open Workspace and selecting the .zip folder that you saved.

Importing and Exporting Data

Exporting

Exporting to file:

  1. After an item (population or individual) is in the freezer, right click it.
  2. Select export and click "Confirm"
  3. Select the folder and the file name to export the item to. (Note the extension for the file will be ".aex").
  4. The file can now be moved between computers (by email, flash drive, or cloud magic).

Importing

Importing an item from a file:

  1. Select the File menu (at the top) and click "Import Freezer Item"
  2. Select the previously exported file (".aex" extension) and click open
  3. The item should appear in the freezer with the same name as the file.
Categories: Bio481