Sam’s Notebook: Data Received – Geoduck Metagenome HiSeqX Data


Received the data from the geoduck metagenome libraries that I prepared and were sequenced at the Northwest Genomics Center at UW on the HiSeqX (Illumina) – PE 151bp.

FastQ files are being transferred to owl/nightingales/P_generosa.

These aren’t geoduck sequences, but they are part of a geoduck project. Maybe I should establish a metagenomics directory under nightingales?

Will verifiy md5 checksums and update readme file once the transfer is complete.

from Sam’s Notebook

Sam’s Notebook: Genome Annotation – Olympia oyster genome complete – brief note


Whoa! Genome annotation using Jetstream/WQ-MAKER that I started this morning is complete!! Only 7hrs!

More detailed entry coming once I move files off of Jetstream and have a chance to look at things.


from Sam’s Notebook

Laura’s Notebook: August 2018 goals

  1. Advise Emily & Micah on how to sample deployed Olys
  2. Submit geoduck paper
  3. Submit Polydora paper
  4. Write O. angasi conditioning experiment methods
  5. Embed, section and mount O. angasi histology tissues
  6. Plan my attack for bringing samples back to USA: Mail or checked luggage?
  7. PCSGA talk
  8. Headway on 2018 Oly paper results (Kaitlyn doing lots of leg work)
  9. Headway on 2017 Oly paper results (Decisions need to be made, incorporate eelgrass deployment data?)

from The Shell Game

Sam’s Notebook: RNA Cleanup – Tanner Crab RNA Pools


Grace had previously pooled a set of crab RNA in preparation for RNAseq. Yesterday, we/she concentrated the samples and then quantified them. Unfortunately, Qubit results were not good (concentrations were far below the expected 20ng/uL) and the NanoDrop1000 results yielded awful looking curves.

In an attempt to figure out what was wrong, I decided to use the RNeasy Plus Mini Kit (Qiagen) on the three pools. I did this due to the poor spec curves seen in the NanoDrop1000 measurements. Additionally, all of the RNA pools had undissolved/insoluble bits floating around in them. My thinking was that excess contaminants/salts could be interfering with the Qubit assay. Removing these could/should enlighten us as to what the issue might be.

Followed the manufacturer’s protocol for RNeasy MiniElute Cleanup Kit (as the RNeasy Plus Mini Kit uses the same reagents/columns for RNA purification) for samples with <100uL.

Samples were quantified on the RobertsLab NanoDrop1000 (ThermoFisher) and the Qubit 3.0 (ThermoFisher) using the RNA high sensitivity (HS) Kit. Used 1uL of each sample.


Qubit (Google Sheet): 20180719_qubit_RNA_crab_pools



The NanoDrop did not detect any RNA in the samples.

The Qubit did not detect any RNA in Crab Pool 1. The other two samples had similar concentrations (~7ng/uL). This would mean a total of ~84ng of RNA was present in each of those two samples.

All pools were expected to have well over 1000ng of RNA.

Will have to think about what should be done, but I would lean towards attempting to run some “test” samples through the RNeasy Cleanup kit to see if that would help get us more accurate Qubit readings? I don’t know, though…

from Sam’s Notebook

Laura’s Notebook: July 18 2018, O. angasi conditioning

Question: does temp/food conditioning method used on O. lurida work on Ostrea angasi?

No standard operation procedure is in place to get O. angasi to reproduce in the hatchery. This makes for difficult production. There is interest to see whether a highly controlled temperature/feeding regime can successfully increase their gonad condition, which could allow for induced, synchronized spawning. If I’m lucky some of them will spawn during the conditioning phase.

Oysters arrive

On June 20th adult oysters (age ~3-5 years) from Port Stephens and Merimbula (northern and southern extent of New South Wales) arrived into the hatchery. They were acclimated to hatchery conditions in the same tank for 5 days. 25 oysters from each group were peeled off for the heat shock experiment, 20 of which were sampled for time=0 gonad condition (sampling #1).

Experimental design

Three temperatures are being tested: 18C (control), 21C, and 24C, 4 tanks per temperature, 2 per oyster source. In each tank is 12 oysters, and each tank has a separate programmable heater. Beginning June 26 temperatures were slowly raised to the treatment temps. The tanks are 200L with static filtered seawater (filtered to 1um), aerated, and water changed every other day. Oysters are suspended in mesh bags on the side of the tanks and fed ad libitum a ~50%-50% mix of diatom (C. muelleri) and flagellate (Tiso or Pav) – food rations are being recorded, and has been ~10-20L per tank per day, from algae that is 1-2M cells/mL.

Daily maintenance

On water change days oysters are removed from tank, rinsed with fresh water, checked for mortality, and held for ~1-2 hours out of tank during cleaning. This exposure is deliberate, as I have noticed that O. lurida frequently spawned after cleanings. I am using 2 tanks per oyster bag, so that I can fill new tanks 1-2 days prior to the water change, allow the water to warm to room temperature, and maintain a consistent temperature for the oysters. The old water is drained over a 80um-100um screen to check for released larvae or eggs.

Sampling 2: conditioning for 2 weeks at temp

On July 16th, 3 weeks after beginning the conditioning trial and 2 full weeks minimum of treatment temp, I sampled half the oysters from all tanks (n=6 per tank, n=12 per source, n=24 per temperature). Whole weight after shucking/draining, and shell weight were collected to estimate condition index. Tissues sampled included:

  • -80 & RNAlater: gill, mantle, gonad
  • fixed for histology: gonad
  • -80 only: gut/gonad complex

Oysters were also imaged prior to sampling and checked for brooded larvae/embroys. 1 oyster was brooding embryos – Merimbula 24C (tank 1).

Sampling #3 will occur on July 30th – 2 weeks after sampling #2 and 4 full weeks at temp.

from The Shell Game

Sam’s Notebook: Mox – Olympia oyster genome annotation progress (using Maker 2.31.10)


TL;DR – It appears to be continuing where it left off!

I decided to spend some time to figure out what was actually happening, as it’s clear that the annotation process is going to need some additional time to run and may span an additional monthly maintenance shutdown.

This is great, because, otherwise, this will take an eternity to actually complete (particularly because we’d have to move the job to run on one of our lab’s computers – which pale in comparison to the specs of our Mox nodes).

However, it’s a bit shocking that this is taking this long, even on a Mox node!

I started annotating the Olympia oyster genome on 20180529. Since then, the job has been interrupted twice by monthly Mox maintenance (which happens on the 2nd Tuesday of each month). Additionally, when this happens, the SLURM output file is overwritten, making it difficult to assess whether or not Maker continues where it left off or if it’s starting over from scratch.

Anyway, here’s how I deduced that the program is continuing where it left off.

  1. I figured out that it produces a generic feature format (GFF) file for each contig.
  2. Decided to search for the first contig GFF and look at it’s last modified date. This would tell me if it was newly generated (i.e. on the date that the job was restarted after the maintenance shutdown) or if it was old. Additionally, if there were more than one of these files, then I’d also know that Maker was just starting at the beginning and writing data to a different location.


    This shows:

    1. Only one copy of Contig0.gff exists.
    2. Last modified date is 20180530.
  3. Check the slurm output file for info.


    This reveals this important piece of info:

    MAKER WARNING: The file 20180529_oly_annotation_01.maker.output/20180529_oly_annotation_01_datastore/AC/68/Contig215522//theVoid.Contig215522/0/Contig215522.0.all.rb.out
    did not finish on the last run

All of these taken together lead me to confidently conclude that Maker is not restarting from the beginning and is, indeed, continuing where it left off. WHEW!

Just for kicks, I also ran a count of GFF files to see where this stands so far:


Wow! 622,010 GFFs!!!

Finally, for posterity, here’s the SLURM script I used to submit this job, back in May! I’ll have all of the corresponding genome files, proteome files, transcriptome files, etc. on one of our servers once the job completes.

  #!/bin/bash ## Job Name #SBATCH --job-name=20180529_oly_maker_genome_annotation ## Allocation Definition #SBATCH --account=srlab #SBATCH --partition=srlab ## Resources ## Nodes #SBATCH --nodes=1 ## Walltime (days-hours:minutes:seconds format) #SBATCH --time=30-00:00:00 ## Memory per node #SBATCH --mem=500G ##turn on e-mail notification #SBATCH --mail-type=ALL #SBATCH ## Specify the working directory for this job #SBATCH --workdir=/gscratch/srlab/sam/outputs/20180529_oly_maker_genome_annotation ## Establish variables for more readable code ### Path to Maker executable maker=/gscratch/srlab/programs/maker-2.31.10/bin/maker ### Path to Olympia oyster genome FastA file oly_genome=/gscratch/srlab/sam/data/O_lurida/oly_genome_assemblies/jelly.out.fasta ### Path to Olympia oyster transcriptome FastA file oly_transcriptome=/gscratch/srlab/sam/data/O_lurida/oly_transcriptome_assemblies/Olurida_transcriptome_v3.fasta ### Path to Crassotrea gigas NCBI protein FastA gigas_proteome=/gscratch/srlab/sam/data/C_gigas/gigas_ncbi_protein/GCA_000297895.1_oyster_v9_protein.faa ### Path to Crassostrea virginica NCBI protein FastA virginica_proteome=/gscratch/srlab/sam/data/C_virginica/virginica_ncbi_protein/GCF_002022765.2_C_virginica-3.0_protein.faa ## Create Maker control files needed for running Maker $maker -CTL ## Store path to options control file maker_opts_file=./maker_opts.ctl ## Create combined proteome FastA file touch gigas_virginica_ncbi_proteomes.fasta cat "$gigas_proteome" >> gigas_virginica_ncbi_proteomes.fasta cat "$virginica_proteome" >> gigas_virginica_ncbi_proteomes.fasta ## Edit options file ### Set paths to O.lurida genome and transcriptome. ### Set path to combined C. gigas and C.virginica proteomes. ## The use of the % symbol sets the delimiter sed uses for arguments. ## Normally, the delimiter that most examples use is a slash "/". ## But, we need to expand the variables into a full path with slashes, which screws up sed. ## Thus, the use of % symbol instead (it could be any character that is NOT present in the expanded variable; doesn't have to be "%"). sed -i "/^genome=/ s% %$oly_genome %" "$maker_opts_file" sed -i "/^est=/ s% %$oly_transcriptome %" "$maker_opts_file" sed -i "/^protein=/ s% %$gigas_virginica_ncbi_proteomes %" "$maker_opts_file" ## Run Maker ### Set basename of files and specify number of CPUs to use $maker \ -base 20180529_oly_annotation_01 \ -cpus 24  

from Sam’s Notebook

Sam’s Notebook: Mox – Password-less SSH!


The high performance computing (HPC) cluster (called Mox) at Univ. of Washington (UW) frustratingly requires a password when SSH-ing, even when SSH keys are in use. I have a lengthy, unintelligable password that I use for my UW account, so having to type this in any time I want to initiate a new SSH session on Mox is a painful process.

Today, I finally got fed up with how much time I was wasting (granted, it’s minor in the grand scheme of my day) just logging in to Mox, so I spent some time figuring out how to automate password entry for a new SSH session with Mox.

I tried to handle this using the program sshpass, but I couldn’t get it to read my password from a file – it would just hang in limbo after executing the command.

In the end, I came across a bash script that does this perfectly. Steps to implement this on Ubuntu 16.04 LTS:

  1. Install expect:
    sudo apt install expect
  2. Create following script (taken from this [StackExchange solution])(
     #!/usr/bin/expect spawn ssh mox expect "Password:" send "\r" interact 


    • I have an ~/.ssh/config file that allows me to use “mox” as an alias for my full SSH command
    • Replace with your own UW password.
  3. Change access to script (set read, write, execute for user only):
    chmod u=rwx,go-rwx
  4. Run script from home directory (saved in home directory):

Boom! No having to track down password, copy, and paste!

from Sam’s Notebook