ARC FAQ flyARC GitHub JavaGrinders and ARC installation support

Below, please find answers to the questions that we've received thus far.


Setting up the software

Q. Do we need a mac to run JavaGrinders?

A. You can run JavaGrinders on Linux installed on a Windows PC. There are instructions for installation on Linux systems on the JavaGrinders blog.

Q. Yesterday I set "Prevent computer from sleeping automatically when the display is off" and the computer crashed at night. What kind of setting do you use? I'm worried that the computer went to sleep and I would miss some recordings.

A. You are correct in that the energy saver function should be turned off.

Q. Are the JavaGrinders and Noah codes updated regularly?

A. Yes. Latest versions of JavaGrinders can be found on the JavaGrinders blog and Noah can be found on our GitHub repository.

Q. Why is the analysis code called Noah? Why didn't you guys call it like

A. Noah and the ARC... Keith must have been in a biblical mood.

Setting up the ARC

Q. What (model of printer) did you use for printing the chambers for ARC?

A. We have used a number of different 3D printers over the years for printing the ARC parts, but have recently been using the Rostock Max V2 with HE280 hotend. Any printer that can print an unwarped PLA or ABS chamber will do just fine. You can also use online printing services which will print the parts well at a low cost.

Q. How much tolerance for error is there when 3D printing an ARC?

A. It's hard to put an exact value on this, since it depends on the materials used. I would say it only needs to minimize error enough to allow the parts to fit together. If they don't, you can always sand them down.

Q. What was the failure rate for ABS, and were there certain conditions where ABS just didn't work? Is PLA just always better?

A. There's no consensus on which material is better for ARC experiments, although they certainly have different hardness and possibly surface texture. We would recommend PLA because of the limited warping compared with ABS printing.

Q. The $#@&%*! gate is flimsy and breaks easily. Help!

A. We are currently printing the thin gates with NinjaTek's Cheetah flexible 3D printing filament. It's awesome. The old gates used to break periodically, especially while washing them. The flexible gates are bendable, like rubber, but hardy enough to still be used as a solid gate. We are still in the process of developing another improved gate that won't require the individual pipette tips to be inserted. Stay tuned!

Q. I noticed that the capillary we ordered has a black band in the middle position of the capillary. Would this affect the tracking? Should my liquid surface be higher than this? In the protocol it says 2/3 of the capillary, so at some point the surface will pass the black line?

A. If you're using the capillaries with the black bands, make sure the top of the dye oil is sufficiently (~5 mm) separated from (and below) the black bands. And when setting up JavaGrinders tracking region, ensure that none of the bands on the capillaries are captured in the region of interest.

Alternatively, you can remove the black bands from the capillaries. We find that with a little bit of acetone and some scrubbing action, the bands can be removed easily. This also allows you to fill the capillaries up higher, reducing the frequency of needed capillary changes. Be aware that some low viscosity diets may drip if the capillaries are overfilled too much.

Q. If I want to video record for at least a day and a night, what kind of liquid food concentration do you recommend?

A. For our Canton-S males, 5% sucrose or 2.5% yeast extract + 2.5% sucrose is sufficient for 24 hours. For Canton-S females or Dahomey, we usually need 5% yeast extract + 5% sucrose to reliably last 24 hours. Filling the capillaries up higher (and removing any external markings on the capillaries) also greatly extends possible recording time. See the previous question for more details.

Running the ARC

Q. Help! I just made a new chamber and all my flies died overnight.

A. It is critical that once you chloroform the Plexiglas onto the chamber, you wash the chamber thoroughly and get rid of all remaining chloroform!

Q. Is it possible to reuse the capillaries?

A. We do wash and reuse the capillaries. The following steps work well for us:

  1. Flush the capillaries with distilled water until there's no liquid food or mineral oil left in the capillaries.
  2. Submerge the capillaries in a beaker filled with distilled water, bring the beaker to a boil, and let them boil for about 10 minutes. This helps circulate water through the capillaries.
  3. Use a vacuum system to drain the capillaries of liquid. I'd manually check the first few times to make sure there's no oil droplets remaining in the capillaries before stowing them away.

Depending on the liquid food used, a 10-20 minute soak in 70% ethanol or acetone after step #1 or repeating step #2 with fresh distilled water can help.

We have been able to use capillaries indefinitely using these procedures.

Q. Isn't it a concern that liquid food evaporates from capillaries, which would change the concentration of the food?

A. Our colorimetric evaporation analysis shows that on standard diets such as 5% sucrose or 5% sucrose + 5% yeast extract, flies feed frequently enough that the concentration of food does not substantially change.

Q. I am trying to optimize the video to start the recording. If I hit "Show", I got all the dye band successfully tracked. But for animals, only the moving ones are showing red dots. Is this correct? (I did try to set all the parameters as the protocol listed) Or I should get all the animals red before I start the analyze button?

A. Yup. We just use the Noah analysis software to retrospectively fill in the coordinates. Basically, the initial frame when you started up the software acts as a reference background. ARCController subtracts the reference background from the current frame and looks for the fly. So if the fly has not moved from the original position, ARCController won't be able to see it. But this is okay because even a slight movement/twitch will make the fly "visible"; to the ARCController—even if it doesn't actually move—and when you run the data file in Noah, it deduces the missed initial reads from the first actual read.

Data analysis

Q. Is there a short tutorial on how to use the Noah analysis code?

A. Yes, please find it here as a Google Doc. Feel free to comment on the document, since we will be updating the file periodically.

Q. Is there a way to trim data? So let's say we want to start data collection at lights-on at 9 am, and we start collection at 8:30 am. How can we trim the first 30 minutes of data? Is that something we have to do to the raw data before Noah? Or something we can do in Noah? Or what about when we switch out tubes and have to restart data collection so we are missing 15 min of data in the switch?

A. We don't have a function written for trimming data yet, but could include it in future Noah versions. You should also feel free to customize Noah to your needs. Alternatively, you could manually delete the 1800 rows of data from the raw file. Or if you are binning activity, feeding, etc. you could use 30 minute bins and discard the first bin. When there's 15 min missing, we just analyze those files separately and later combine them in Excel or your favorite analysis software.

Q. How do I go about adjusting the Mealpull_SD and final_SD variables?

A. You should adjust them based on how noisy or clean your data is. To do so, open Noah in your favorite text editor (I personally like Sublime Text) and look for the following line:


After feedData.append(dataVector), in a new line, write


(Make sure that the indentation matches that of print(“”))

In the file “cleanedFeedTrack.csv”, each row will be a fly and each column represents the dye position at a time point.
And you can look at the food tracking data by selecting each row and inserting a line graph, like this:


In this case, you’d be looking at feeding data from fly #4. Now, insert a line chart:


And you’ll get a chart that looks something like this:


Here, each bump up would be considered a feeding event and the gradual slope evaporation. I would count about 9 feeding events, when I inspect it visually.

Now, if your output file from the stats_( ) file (output from option 3: Analyze/Synthesize Data) counts a similar number as when you inspected it visually (which also depends on whether or not you decided to combine feeding bouts for a meal…), then your MEALPULL_SD and FINAL_SD values are probably good. If it counts far fewer meals, it probably means that the set SD value makes it not sensitive enough to detect a feeding bout, so you’d want to decrease the values. If it counts far more of meals, it probably means that the set SD value is counting noise in the feeding data as feeding bouts, so you'd want to increase the values.

As you can imagine, the SD values would differ based on the setup, and you’d want to play around with the values until you find an appropriate cutoff for your setup.