title: Converting agentset into list in NetLogo
body: <p>I'm writing some code to vaccinate individuals in a population where flu is circulating. There are two kinds of vaccines (named HOV and HEV in the code); the HOV is already done. What I tried/wanted to do was convert the agentset of blue turtles into a list, that I could then iterate over one turtle at a time. I need to do this because the HEV condition has to give a slightly different vaccine to each blue turtle (i.e. the flu strain in each vaccine has to be slightly different). However, NetLogo is highlighting "foreach [vax-turtles]" with an error message that says "Expected a literal value."</p>
  
  <p>My code is below, the "if vaccine = "HEV"" piece of code is what I need help with:</p>
  
  <pre><code>extensions [csv]
  globals [strain_list_list epidemic-threshold cumulative-infections proportion-of-infection currently-infected peak-prevalence vax-strain]
  turtles-own [infection-period infection-number tflu-strain immune-label ant-distance cross-immunity]
  patches-own [fomite-age pflu-strain]
  
  to setup
    clear-all
    setup-turtles
    set strain_list_list (list t-sorted-strain-list)
    print strain_list_list
    reset-ticks
  end
  
  to-report t-sorted-strain-list
    report map [i -&gt; [tflu-strain] of i] sort turtles
  end
  
  to setup-turtles
    create-turtles 100
    ask turtles [setxy random-xcor random-ycor]
    ask turtles [set color white set infection-number 0 set immune-label -999999999999 set tflu-strain -999999999999]
    ask one-of turtles [set color red set infection-period 0 set infection-number 1 set immune-label 0 set tflu-strain 0]
    if vaccine = "HOV" [
      ifelse (one-of [1 2] = 1) [
        set vax-strain (random ((2 * drift-size) + 1))]
      [set vax-strain (-1 * random ((2 * drift-size) + 1))]
    ask n-of prop-vax turtles with [color = white] [set color blue set immune-label vax-strain]
    ]
    if vaccine = "HEV" [
      let vax-turtles (list turtles with [color = blue])
      ask n-of prop-vax turtles with [color = white] [set color blue] 
      foreach [vax-turtles] [
        ifelse (one-of [1 2] = 1) [
        set vax-strain (random ((2 * drift-size) + 1))]
      [set vax-strain (-1 * random ((2 * drift-size) + 1))]
        ]
      ]
    set epidemic-threshold "no"
    set cumulative-infections 0
    set peak-prevalence 0
  end
  
  to go
    if ticks = flu-season-length [stop]
    move-infecteds
    move-uninfecteds
    transmit
    mutate
    update-immunity
    track-infecteds
    set cumulative-infections (count turtles with [infection-period = 1] + cumulative-infections)
    set proportion-of-infection (100 - (count turtles with [immune-label = -999999999999]))
    set currently-infected (count turtles with [infection-period = 1])
    csv:to-file "strains_each_tick.csv" strain_list_list
    set strain_list_list lput t-sorted-strain-list strain_list_list
    tick
  end
  
  to move-uninfecteds ;; uninfected turtles move faster than infected ones
    ask turtles with [color = white or color = blue] [
      right random 360
      forward 5
    ]
  end
  
  to move-infecteds ;; infected turtles move slower than uninfected ones and always transmit infection to patches before they leave them
    ask turtles with [color = red] [
    if pcolor = black [
        set pcolor red
      set fomite-age 0
      set pflu-strain tflu-strain]
    right random 360
    forward 3
  ]
  end
  
  to transmit ;; uninfected turtles are infected by fomites (red patches) with some probability. immune-labelling currently first infection
    ask turtles with [color = white or color = blue and pcolor = red] [
      if immune-label != pflu-strain [
        set ant-distance (abs (immune-label - pflu-strain))
        set cross-immunity (natural-immunity * (1 - (ant-distance / antigenic-distance-limit)))
      if cross-immunity &lt; 0 [set cross-immunity 0]
      if random 100 &lt; (((100 - cross-immunity) / 100) * probability-of-infection)
        [set color red set infection-period 0 set infection-number infection-number + 1 set tflu-strain pflu-strain]
          ] 
    if immune-label = pflu-strain [ 
      if random 100 &lt; (((100 - natural-immunity) / 100) * probability-of-infection)
        [set color red set infection-period 0 set infection-number infection-number + 1 set tflu-strain pflu-strain]
      ] 
  ]
  end
  
  to mutate ;; some probability of mutation (change in strain label) when an individual receives infection from a patch
    ifelse in-host [
      ask turtles with [color = red] [
       if random 100 &lt; probability-of-mutation [
        ifelse (one-of [1 2] = 1) [
        set tflu-strain (tflu-strain + (random (drift-size + 1)))]
        [set tflu-strain (tflu-strain - (random (drift-size + 1)))]
       ]
      ]
     ]
    [ask turtles with [color = red and infection-period = 0] [
       if random 100 &lt; probability-of-mutation [
        ifelse (one-of [1 2] = 1) [
        set tflu-strain (tflu-strain + (random (drift-size + 1)))]
        [set tflu-strain (tflu-strain - (random (drift-size + 1)))]
        ]
       ]
      ]
  end
  
  to update-immunity
    ask turtles with [color = red and infection-period = 0] [
      ifelse immune-labelling = "first-infection" [
    if immune-label = -999999999999 [
          set immune-label tflu-strain]]
    [set immune-label tflu-strain]
  ]
  end
  
   to track-infecteds ;; turtles with given infection period should become uninfected
    ask turtles with [color = red] [
      set infection-period infection-period + 1
    if infection-period = age-infection-max [
      set color white set infection-period 0 set tflu-strain -999999999999
      ]
    ]
    ask patches with [pcolor = red] [
    set fomite-age fomite-age + 1
    if fomite-age &gt; max-fomite-persistence [
    set pcolor black
      ]
    ]
  end
  </code></pre>
  
  <p>Any advice would be greatly appreciated! Thanks</p>