A taste of data analysis

Playing around with some data on protoshell length taken by Ryann (PSRF intern) from the salinity experiment.

In R:

 > plot(Length~Population, data = sal30df)

Boxplot of protoshell length in 7 day old Olympia oyster larvae from 3 populations in Puget Sound. n = 20 per population

Did an anova:

> aov.sal30 <- aov(Length~Population, data=sal30df)
> summary(aov.sal30)

Df Sum Sq Mean Sq F value Pr(>F)
Population 2 9281 4641 14.81 6.61e-06 ***
Residuals 57 17861 313

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Indicates that the means of protoshell length are significantly different (yay!).

> pop <- sal30$Population
> len <- sal30$Length
> ptest <- pairwise.t.test(len, pop, p.adjust = "bonferroni")

Pairwise comparisons using t tests with pooled SD

data: len and pop

Fidalgo Bay Hood Canal
Hood Canal 0.0913             –
Oyster Bay 0.0069          3.9e-06

P value adjustment method: bonferroni

Very significant p-value between Hood Canal and Oyster Bay.

Wednesday 8/12/15- Friday 8/14/15

Wednesday 8/12/15

Larvae tanks

  • NF_Tank2_160 (224) -> NF cultch set
  • NF_Tank2_160 (100) -> swimmers only
  • HC_Tank2_160 (224) -> HC cultch set
  • HC_Tank2_160 (100) -> swimmers only
  • SS_Tank2_160 (224) -> barely any, put back in tank
  • SS_Tank2_160 (100) -> swimmers only

Tile Set

  • Did live/dead counts for both A and B
  • Did not add the unset larvae back to A
  • Rinsed tiles

Cultch Set

  • NF >450 -> NF >1000
  • SS > 450 -> SS>1000
  • SS_SetA -> SS > 450; SS_SetA

Thursday 8/13/15

Started dissections of tissue from the broodstock for subsequent DNA extractions with the help of Brent Vadopalas and the PSRF intern Ryann. First, we recorded the weight of each oyster in a family and placed it on a numbered pad.

Broodstock dissection setup

Broodstock dissection setup

A picture was taken of the entire family with a ruler for later measurement in ImageJ. Effort was made to hold the phone level to avoid the impact of tilt on apparent size. We made a little assembly line, with Brent shucking before joining Ryann and I in dissecting out adductor muscle tissue and storing in 1.5 mL tubes with 1 – .75 mL RNALater. If there was not very much muscle tissue, mantle or the entire oyster were taken as well. Scalpels and forceps were rinsed sequentially in soapy water, bleach, and freshwater between each oyster. Fresh scalpels were used between populations. We got through SS2, SS1,SS3, SS4, SS5, and NF4, averaging about 45 minutes per family by the time we got the hang of it.


  • Rinsed tiles and cultch
  • Feeding

Friday 8/14/15

Larvae tanks

  • NF_Tank2_160 (224) -> NF_New cultch set
  • NF_Tank2_160 (100) -> dumped
  • HC_Tank2_160 (224) -> none
  • HC_Tank2_160 (100) -> dumped
  • SS_Tank2_160 (all) -> dumped

Tile Set Counts

  • NF_SetA
  • SS_SetA
  • HC_SetA
  • HC_SetB
  • SS_SetB


Did NF2 and NF1 with a little help from Ryann on NF1

Monday 8/10/15 and Tuesday 8/11/15

Monday 8/10/15

Larvae tanks

  • NF_Tank2_160 (224) -> 10,500 total: 500 for DNA, rest to NF_SetB
  • NF_Tank2_160 (100) -> swimmers only
  • HC_Tank2_160 (224) -> 9,187 total: 500 for DNA, 5,187 added to HC_SetB, rest to cultch set
  • HC_Tank2_160 (100) -> swimmers only
  • SS_Tank2_160 (224) -> 11,900 total, added to SS cultch
  • SS_Tank2_160 (100) -> swimmers only

Tile Set

  • Did live/dead counts for both A and B
  • Rinsed tiles (have been doing this everyday I’m in)
  • New totals
    • NF_SetB: 45,137
    • HC_SetB: 60,000

New larvae

  • no new larvae

Tuesday 8/11/15

Animal husbandry

  • Cleaned broodstock buckets
  • Rinsed cultch and tiles

Lab work

Extracted DNA from 24 larvae samples that would be good candidates for test 2b-RAD libraries. I chose sets of new larvae (“LC” for larvae catch), “160”s, and “224”‘s with 3-5 days in between.

Population Tank Family Size Date Storage Est. # Date extracted
1 Hood Canal LC >100 7/13/2015 75/95 EtOH 8/11/2015
2 Fidalgo Bay NA LC 100 7/13/2015 75% EtOH 8/11/2015
3 South Sound NA LC 100 7/13/2015 RNALater 8/11/2015
4 Hood Canal NA HC2 100 7/17/2015 RNALater 8/11/2015
5 Hood Canal NA LC 100 7/17/2015 RNALater 8/11/2015
6 South Sound NA LC 100 7/17/2015 RNALater 8/11/2015
7 Hood Canal NA LC 100 7/20/2015 RNALater 8/11/2015
8 Fidalgo Bay NA LC 100 7/20/2015 RNALater 8/11/2015
9 South Sound NA LC 100 7/20/2015 RNALater 8/11/2015
10 Hood Canal HC_Tank1_160 NA 160 7/20/2015 RNALater 8/11/2015
11 Fidalgo Bay NF_Tank1_new NA 160 7/20/2015 RNALater 8/11/2015
12 South Sound SS_Tank1_new NA 160 7/15/2015 RNALater 8/11/2015
13 Hood Canal HC_Tank1_new NA 160 7/24/2015 RNALater 8/11/2015
14 Fidalgo Bay NF_Tank1_new NA 160 7/24/2015 RNALater 8/11/2015
15 South Sound SS_Tank1_new NA 160 7/24/2015 RNALater 8/11/2015
16 Hood Canal HC_Tank1_new NA 160 7/27/2015 RNALater 8/11/2015
17 Fidalgo Bay NF_Tank1_new NA 160 7/27/2015 RNALater 8/11/2015
18 South Sound SS_Tank1_new NA 160 7/27/2015 RNALater 8/11/2015
19 Hood Canal HC_Tank2_160 224 8/3/2015 RNALater 8/11/2015
20 Fidalgo Bay NF_Tank2_160 224 8/3/2015 RNALater 8/11/2015
21 South Sound SS_Tank2_160 224 8/3/2015 RNALater 8/11/2015
22 Hood Canal HC_Tank2_160 >224 8/7/2015 RNALater 350 8/11/2015
23 Fidalgo Bay NF_Tank2_160 >224 8/7/2015 RNALater 504 8/11/2015
24 Oyster Bay SS_Tank2_160 >224 8/7/2015 RNALater 641 8/11/2015

I still have to go back over my notes to get estimated number for some of them. Storage was mostly in RNALater. A lot of the samples had some white precipitate on the bottom. If larvae weren’t  in the precipitate I sucked it out before adding the lysis buffer/proteinase K. Also had the same issue previously with larvae being buoyant in the RNALater even after a spindown. Halfway through trying to siphon off as much liquid as I could, I did some research and found that addition of some ice-cold PBS will change the density of the liquid and allow the larvae to settle out. This worked really well and was done for 2,10,13,15,19,20,21,24. It also dissolved most of the white precipitate.

Followed the protocol I listed here, with a 2.5 hour digest. Could not findd the gel rig set-up (found out later it’s in a different building).

Friday 7/31/15

Nine larvae/setting tanks to clean! Michael and I had an evening flight out east for his cousin’s wedding, so today was a pretty rushed day trying to get everything done and still make the 4:05p ferry.

Larvae tanks

  • NF_Tank2_160 (224) -> 31,200 total: 500 for DNA, 11,000 to cultch set B, 19,700 dumped out
  • NF_Tank2_160 (100) -> swimmers only added back
  • NF_Tank1_new (100) -> swimmers only added back
  • NF_Tank1_new (160) -> NF_Tank2_160
  • HC_Tank2_160 (224) -> 17,281 total: 500 for DNA, 11,000 added to cultch set B, 5,781 added back to HC_Tank2_160
  • HC_Tank2_160 (100) -> swimmers only
  • HC_Tank1_new (100) -> swimmers only
  • HC_Tank1_new (160) -> HC_Tank2_160
  • SS_Tank2_160 (224) -> 11,537 total, 537 to DNA, 11,000 to cultch set B
  • SS_Tank2_160 (100) -> swimmers only
  • SS_Tank1_new (100) -> swimmers only
  • SS_Tank1_new (160) -> SS_Tank2_160

Cultch Setting System

Set up a 2nd silo replicate for all 3 populations. As SS only had ~11,000 224-sized larvae, I added 11,000 larvae to each of the silos. 5,781 extra HC larvae were added back to HC_Tank2_160. With NF, there were ~9,000 dead 224-sized larvae- most likely due to my adding the the ones I wasn’t using back in to Tank2_160. If a larva that is ready to set can’t find an appropriate surface, it will eventually die. I dumped out the 19,700 larvae that were not used in the cultch set (see previous post for my regret about this).

New larvae

Only saw some larvae in HC and SS. I ran out of time to take samples for counting, so just screened out the larvae, cleaned the broodstock buckets, and dumped the larvae back into the buckets.

Tuesday 7/28/15 and Wednesday 7/29/15

Tuesday 7/28/15

New Larvae

  • HC: 0
  • SS: some
  • NF: 0


Set up an “overflow” setting system for larvae that do not go into the tile set-up. Silos (15 cm diameter, 20 cm height) with 180 micron screens are suspended in a tote with a draining outlet. 224 sized larvae are added into the silos along with 1-3 tablespoons of 450 micron cultch. An airstone is in the totes and water/algae is dripped into the silos. The water level is 13 cm deep, making the volume of water in the silo to be 2,296 cm^3 (equalling to 2,296 mL). I’ve been told that ~5 larvae/mL is good for this type of set-up, with no more than 10 larvae/mL. At 7 larvae/mL, the max to add to each silo would be 16,000 larvae.

Wednesday 7/29/15

Larvae tanks

  • NF_Tank2_160 (224) -> 56,700 total: 600 for DNA, 15,300 to cultch set, 41,400 to NF_Tank2_160
  • NF_Tank2_160 (100) -> swimmers only added back
  • NF_Tank1_new (100) 0> swimmers only added back
  • NF_Tank1_new (160) -> NF_Tank2_160
  • HC_Tank2_160 (224) -> 15,937 total: 600 for DNA, 15,300 added to cultch set
  • HC_Tank2_160 (100) -> swimmers only
  • HC_Tank1_new (100) -> swimmers only
  • HC_Tank1_new (160) -> HC_Tank2_160
  • SS_Tank2_160 (224) -> 9,675 total, 600 to DNA, 9,075 to cultch set
  • SS_Tank2_160 (100) -> swimmers only
  • SS_Tank1_new (100) -> swimmers only (a lot on bottom)
  • SS_Tank1_new (160) -> SS_Tank2_160

New larvae

  • Some new larvae from all 3 populations

Setting Systems

To clean the tile setting systems, I first fill up a clean, empty 100 L larval tank with seawater and fill up a misting sprayer designated for setters with fresh water. I empty a tile setting tank over a 100 micron screen to catch the larvae that haven’t set yet. I put these in a tripour beaker with seawater and place the tiles in the 100 L tank full of water. I clean the tank with Vortex and fill it up as quickly as possible. Meanwhile, I spray the tiles and poultry wire gently with freshwater before returning the tiles and larvae into the cleaned tank. This took a little getting used to, especially figuring out how to minimize the time the larvae sat in the beaker as they would try to set on the bottom if they were in there too long.

I initially thought that the cultch set would be an experiment to see if the populations have differential success in the number of single oysters produced. Because of this, I cared a lot about having replicate silos, adding similar numbers of larvae to each, adding larvae on the same day, adding the same amount of cultch to each, and randomizing the order of silos. This led to me not using all of the 224s that I screened out, particularly from NF which somehow peaked in the number of 224s before the other 2 groups. I’ve since realized that to truly make it a viable experiment would take a lot of work (especially in the number of silos needed once I started screening them out by size) and that the main benefit of the cultch set is to grow up F2 oysters for future experiments. So I regret throwing out some of the 224s, but should still have enough for the project goals.

  • NF: 15,300 added to Cultch_SetA
  • SS: 9,075 added to Cultch_SetA
  • HC: 15,300 added to Cultch_SetB

Setting up for Setters (Monday 7/27/15)

On Monday 7/20/15 and Wednesday 7/22/15 I screened out the “160” tanks over 224 micron screens to see if any larvae were ready to settle. This is the same size class used by the hatchery to separate larvae out to put in their setting system. There were less than 5,000, so I figured that by the next Monday there would be enough to set up my setting system. As a reminder, I’m placing 15 4in x 4in white PVC tiles that have been roughed up on one side in a 100 L larvae lank with the hopes that enough larvae set on the tiles. After a few weeks, I will cull larvae to ~20-30 per tile to avoid overcrowding impacting growth. The benefit of using tiles over large shells or cultch (small ground up shell) is that they are easier to standardize for replicates among groups and provide a flat surface for measuring growth rate. Obviously they aren’t a great representation of nature, but will work well to explore the differences in growth rate among the populations.

Tiles are attached to plastic coated

Tiles are attached to plastic coated “poultry wire” with cable ties


The poultry wire is bent to fit inside a 100 L larvae tank

The poultry wire is bent to fit inside a 100 L larvae tank

Larval tank counts

  • NF_Tank2_160 (224) -> 30,000 to experiment; 41,175 to NF_Tank2_160
  • NF_Tank2_160 (100)
  • NF_Tank1_new (100)
  • NF_Tank1_new (160) -> NF_Tank2_160
  • HC_Tank2_160 (224) -> all 30,000 to experiment
  • HC_Tank2_160 (100)
  • HC_Tank1_new (100)
  • HC_Tank1_new (160) -> HC_Tank2_160
  • SS_Tank2_160 (224) -> 30,000 to experiment; 6,000 to SS_Tank2_160
  • SS_Tank2_160 (100)
  • SS_Tank1_new (100)
  • SS_Tank1_new (160) -> SS_Tank2_160

I had at least 30,000 larvae at 224 microns in each group, so I decided to add 30,000 to each of my tile systems. Ryan Crim at the hatchery recommended I add at least four times as many larvae as I want to set. With 15 tiles per tank and at least 200 larvae per tile (to then be culled to 20), this meant I only needed ~12,000 larvae per tank so 30,000 should be plenty.

For the rest of the larvae from NF and SS that weren’t placed in the setting system, I added them back to their respective “160” tanks to deal with later in the week.

New larvae

There was between 32,000-57,000 larvae from all populations.

Wednesday 6-24-15

Steven Roberts came to help out today, which made the Wednesday cleaning/collecting larvae only take about 2.5 hours. He did all of the larval counts, filtered out the SS larval catches, and cleaned many of the buckets. We decided in the interest of time to just qualitatively note individual family output of larvae and then combine the larval output from each family in a population for counting.

Families that were filtered for larvae:

  • very little/some larvae: HC2, SS5, SS2, SS4, SS3
  • lots: NF5, HC3
    • for both of these the larvae seemed to be clustering near the bottom (dead??)
SS5 seemed to release some sperm when put in the bucket with all the other SS families.
I’ve organized my datasheet for larval counts a little differently.
  • The 1st sheet, “Day 1”, is the raw data from counting the larval output from the broodstock.
  • The 2nd sheet, “Larval tank counts”, is the raw data from counting the number of live/dead larvae filtered out of the 100 L larval tanks. It also lists the estimated ages of the cohorts in the tanks.
  • The 3rd sheet- “Larval tanks running total”- is formatted like a bank account transaction list, with larval tanks for each population the “accounts”. This incorporates data from the first 2 sheets to let me know approximately how many larvae I have in the 100 L tanks at a time. The differences between counts is also my estimated mortality (although some of this is due to leakage during cleaning).

Update 6-25-15

  • On Tuesday 6-23-15, the seawater was shut off for about 3 hours. Also, there was an issue with the airline so that tanks may not have been bubbling for a while. When I went in on Wednesday, all tanks seemed to be bubbling fine.

Setting up an Oyster Garden

Monday (June 8) was my first day out at the NOAA Manchester Research Station in Washington State. Specifically, I’m working in the Kenneth K. Chew Center for Shellfish Research and Restoration. This shellfish hatchery is the result of collaboration between many groups and funding agencies, in particular the Puget Sound Restoration Fund (PSRF).


The hatchery (right) and algae greenhouse (left)

My project this summer is to raise oysters descended from three Puget Sound populations under common conditions in order to measure differences in fitness. This type of experimental design is commonly referred to as a “common garden”, and allows one to control environmental variables so that phenotypic disparities among individuals can be attributed to their genetic differences. My fitness metrics are reproductive output, survivorship at different life stages, and growth rate. I will also be taking DNA/RNA samples along the way to see if mortality is random in respect to genotype, or due to purifying selection. With the RNA, I plan to look at differences in gene expression to help detect cryptic differences in phenotype between these populations.

Three source populations for common garden experiment

Three source populations for common garden experiment

This project is a collaboration with Steven Robert’s lab at the University of Washington, who previously conducted a reciprocal transplant experiment with offspring of wild oysters from these same populations. For that experiment, they outplanted the young oysters from each group at four different sites and measured growth rate, mortality, and reproductive characteristics. They observed significant variation at these metrics among populations and sites (informative slides and manuscript preprint available here). My experiment will be following up on these results by testing if population-level differences are consistent in a second generation under controlled environmental conditions.

As I’ve never raised shellfish before, this week has had a bit of a learning curve. Fortunately for me, the staff at the hatchery have been super helpful in showing me the ropes and advising on how to set up my experiment. I’m starting with about 100 adult oysters for each group (see lab notebook entries for data). These are the first generation (F1) offspring of wild oysters, and have been living in common conditions their entire lives- mostly hanging off the docks near the hatchery. Their offspring will be 2nd generation (F2) from the original broodstock, and should have any influence from maternal effects erased.

The adults were brought in to the hatchery on May 28 and placed in three separate buckets to avoid cross fertilization. To maximize genetic diversity and minimize the chance that one male fertilizes all of the females, I split each group into 5 buckets of ~20 oysters. These “families” will be marked, so that I can genotype them later and follow their offspring’s success throughout the experiment. Their water temperature was switched to a balmy 20°C this week, which will encourage them to start spawning and producing larvae.

(sorry for the lack of pictures, I’ll take some and put them up soon!)

Dec. 4, 2014

PCR of 16S Region

  • Verifying species identity as some may have actually been juvenile C. gigas
  1. BC3_7 redo
  2. BC3_11 redo
  3. BC3_12
  4. BC3_13
  5. BC3_15
  6. BC3_16
  7. BC3_17
  8. BC3_18
  9. OR2_3
  10. OR2_4
  11. OR2_5
  12. OR2_6
  13. OR2_7
  14. OR2_8
  15. OR2_9
  16. OR2_10
  17. OR2_11
  18. OR2_12
  19. OR2_15
  20. OR2_16
  21. OR2_17
  22. OR2_18
  23. OR2_19
  24. OR2_20
  25. OR3_1
  26. OR3_2
  27. OR3_3
  28. OR3_5
  29. OR3_6
  30. OR3_9
  31. OR3_10
  32. OR3_12
  33. OR3_13
  34. OR3_15
  35. OR3_17
  36. OR3_18
  37. WA9_2
  38. WA9_3
  39. WA9_4
  40. WA9_5
  41. WA9_6
  42. WA9_7
  43. WA9_8
  44. WA9_9
  45. WA9_10
  46. WA9_11
Make Master Mix 1
1x          51x
Water        6 ul      306ul
dNTPs      .5ul       25.5ul
R primer    2.5 ul   127.5
F primer    2.5ul     127.5

Master Mix 2
1x            51x
Water          9.17ul       467.67
10x buffer   3.2 ul        163.2
Taq             .13             6.63

Add 1 ul DNA to eac tube
Run out gels
  • CA2_1,3,4,5,7 (6/2)
    • redo all
  • CA3_1,2,3,4,5,6
    • 5:3
    • redo CA3_1,2,3,4
  • WA12D_1,2,3,4,5,6
    • 1: 0
      2: 3
      3: 4
      4: 3
      5: 5
      6: 0
    • redo WA12D_1,6
  • WA10T_1,2,4,5,6,7
    • 1: 5
      4: 5
      5: 0
      6: 5
      7: 0
    • redo WA10T_4,6
  • CA6_1,3,7,8,9 redos
    • 1: 2 (low, deg)
      3: 3(low)
      7: 3(low,deg)
      8: 5
      9: 0
  • WA9_2,3,7 redos
    • 2: 2.5(low)
      3: 0
      7: 1
  • OR1_1,2 redos
    • 1: 5
      2: 3.5(low)
  • CA7_6 redos
    • 6: 3.5(low)
  • BC3_12,13,15,16,17,18
    • 12: 5
      13: 4(bright, some smear)
      15: 2(low)
      16: 5
      17: 3.5(smear)
      18: 3.5(very very bright, smear)
  • Note: Re-extract CA6_1,9, WA9_3,7, BC4