All posts by jennomics

About jennomics

I am a Postdoc in Jonathan Eisen's Lab at UC Davis. jennomics@gmail.com

A first look at the first ZEN run

PNAs (blockers for mitochondrial and chloroplast amplification)

  • More organelles were filtered from the leaves than the roots, sediment, or water.
average % loss by sample type
Leaf 26.5518607264
Root 10.6381529905
Sediment 5.1730348426
Water 13.0591363787
  • using PNAs did not result in an overall loss of reads
# filtered reads
PNA 389011
no PNA 411059
  • in progress: do we see more chimeras with PNA use?

Run summary statistics

    • 533 samples, including kit controls and PNA tests
    • reads per sample (after filtration) ranged from 5 – 206,661
    • the kit control with the most reads had 6549
    • 306 (57.4%) of the samples had fewer than 6549 reads, we’ll call these low-abundance samples
    • breakdown of low-abundance samples by type
Leaf Water Roots Sediment
126 (41.1%) 109 (35.6%) 32 (8.8%) 33 (10.8%)
  • in progress: not sure, I published this post by accident

more IPython notebook troubleshooting

No word from the QIIME forum about my problem. So, I asked twitter for help.

So far, everyone thinks it has something to do with my path, BUT 1) macqiime sets the PYTHONPATH variable, and 2) the package it’s looking for exists in both macqiime python and anaconda.

OK, so it’s fixed now. There may be another way to deal with it, but what I did was install ipython notebook into the macqiime python folder, using get-pip.py to install pip, and then pip install ipython[notebook], and then comment out the line in my .bash_profile that points to the anaconda version of ipython.

Marisano James actually did all of the work for me, I asked him to summarize:

“When anaconda was installed, it added a path to its own ipython in the .bash_profile. Then, no matter what python was running, it would wind up using the anaconda version of ipython, which didn’t have the same settings as the system Python. I wound up renaming the anaconda folder (so it could no longer be found), and then commenting out the added line in ~/.bash_profile. Just commenting out the line in the ~/.bash_profile is sufficient, but I didn’t know anaconda’s ipython was being called until I effectively removed its folder. If you run into this problem, be sure to open a new terminal after commenting out the offending anaconda ipython line so it will be able to use the updated PATH.”

and so it begins… running the ZEN data through my IPython notebook

1. Downloaded the notebook from here:

http://jennomics.github.io/QIIMEbyJennomics/

2. immediate failure:

!validate_mapping_file.py -m $mapping_file
Traceback (most recent call last):
  File "/macqiime/QIIME/bin/validate_mapping_file.py", line 14, in <module>
    from qiime.util import parse_command_line_parameters, get_options_lookup,\
  File "/macqiime/lib/python2.7/site-packages/qiime/util.py", line 26, in <module>
    import gzip
  File "/Users/Jenna/anaconda/lib/python2.7/gzip.py", line 10, in <module>
    import io
  File "/Users/Jenna/anaconda/lib/python2.7/io.py", line 51, in <module>
    import _io
ImportError: dlopen(/Users/Jenna/anaconda/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyInt_AsInt
  Referenced from: /Users/Jenna/anaconda/lib/python2.7/lib-dynload/_io.so
  Expected in: dynamic lookup

2. because my computer is so shiny and new, I don’t have any microsoft applications installed (yet?). I’m using “Numbers,” which I’ve never used before and does not have tab-delimited format as an export option. I’m hoping that the problem was that I was trying to use a .csv file for my mapping file. So, I converted it:

perl -pi -e ‘s/\,/\t/g’ ZEN.csv

and tried again. Nope!

3. tried googling this:

ImportError: dlopen Symbol not found

cannot understand what I see there, but it does convince me that it’s probably an anaconda problem

tried googling this:

Expected in: dynamic lookup anaconda

I felt pretty hopeful when the first hit was this:

issues with starting ipython notebook – Google Groups

but, that was an unresolved issue. I did notice that the issue might actually be with lib-dynload, whatever the hell that is.

So, googled this:

anaconda lib-dynload

and ended up here:

http://stackoverflow.com/questions/19124436/linking-problems-with-anaconda-when-using-ld-library-path

something in there made it click that the path to python should be via macqiime, and you can see in the traceback that it starts off with the macqiime python, but then switches to the anaconda python. I always feel better about asking the community a question if I have some sense of what might be going on. So, I’ll post it on the QIIME forum now.

While I was writing the post, I thought to try to run the command from the command line instead of the notebook, and it worked, so that really helps narrow things down…

ALSO, while posting it, I realized that I haven’t update to QIIME 1.9 yet. Blach.

installing IPython notebook

Yesterday, I installed macqiime, and today, I have just a few minutes to install IPython notebook.

Installation instructions are here:

http://ipython.org/install.html

pip install "ipython[notebook]"

This didn’t work because I don’t have pip. Instructions for installing pip:

https://pip.pypa.io/en/latest/installing.html

It says that pip should be included with Python 2.7.9 and later, and (according to the handy qiime config output from yesterday) I know that I have 2.7.3.

It seems dumb to just install pip, because I’ll probably need to install lots of other things as well. I should probably upgrade to a later version of python, but in my experience, upgrading python breaks all sorts of things. However, I have nothing to lose, since this is a brand new machine, so I installed the Anaconda distribution of python.

http://continuum.io/downloads

…and now pip works and I have IPython notebook!

installing macqiime

Within the span of 1 week, I set up my new super-powerful Mac Pro, we got all of the ZEN sequence data back, and QIIME version 1.9 is live! I also posted my IPython notebook for a basic QIIME analysis.http://jennomics.github.io/QIIMEbyJennomics/

Quite a confluence of events…

Anyway… I’m christening my new machine with QIIME.

Notes on macqiime install:

1. I went through the installation instructions, including the optional add-ons with no glitches here:

http://www.wernerlab.org/software/macqiime/macqiime-installation#install

2. I ignored AmpliconNoise because I do not use 454 data.

3. I could not get Topiary Explorer to work. At first, there was a problem with the security, but I figured out how to add exceptions, but then it still didn’t work, and the error message said: “Unable to launch application.” Then, I clicked on the Details button, and I think this describes the problem:

Caused by: java.net.URISyntaxException: Relative path in absolute URI: file://topiaryexplorer1.0.jar

But, I’m not sure how to fix it, so I decided to move on and come back to Topiary Explorer when/if I need it.

4. In the bit about installing R, I noticed this:

Please note that even if you installed R and these libraries previously for MacQIIME 1.8.0, you should still upgrade to/install the latest version of R, 3.1.2, and re-install all these R packages to get everything working.

And, that’s how I learned that QIIME 1.9 was out there. BUT, it doesn’t look like macqiime has been updated, so it installed QIIME 1.8 instead. Maybe that’s because it’s a “release candidate” at this point? Anyway, I’ll have to go back and update QIIME somehow. Macqiime appears to be working. See below for the output of print_qiime_config.py -t

System information
==================
Platform:    darwin
Python version:    2.7.3 (default, Dec 19 2012, 09:12:08)  [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
Python executable:    /macqiime/bin/python

Dependency versions
===================
PyCogent version:    1.5.3
NumPy version:    1.7.1
matplotlib version:    1.1.0
biom-format version:    1.3.1
qcli version:    0.1.0
QIIME library version:    1.8.0
QIIME script version:    1.8.0
PyNAST version (if installed):    1.2.2
Emperor version:    0.9.3
RDP Classifier version (if installed):    rdp_classifier-2.2.jar
Java version (if installed):    Not installed.

QIIME config values
===================
blastmat_dir:    None
sc_queue:    all.q
topiaryexplorer_project_dir:    None
pynast_template_alignment_fp:    /macqiime/greengenes/core_set_aligned.fasta.imputed
cluster_jobs_fp:    /macqiime/QIIME/bin/start_parallel_jobs.py
pynast_template_alignment_blastdb:    None
assign_taxonomy_reference_seqs_fp:    /macqiime/greengenes/gg_13_8_otus/rep_set/97_otus.fasta
torque_queue:    friendlyq
template_alignment_lanemask_fp:    /macqiime/greengenes/lanemask_in_1s_and_0s
jobs_to_start:    1
cloud_environment:    False
qiime_scripts_dir:    /macqiime/QIIME/bin/
denoiser_min_per_core:    50
working_dir:    /tmp/
python_exe_fp:    /macqiime/bin/python
temp_dir:    /tmp/
blastall_fp:    blastall
seconds_to_sleep:    60
assign_taxonomy_id_to_taxonomy_fp:    /macqiime/greengenes/gg_13_8_otus/taxonomy/97_otu_taxonomy.txt
….F…………………………
======================================================================
FAIL: test_ampliconnoise_install (__main__.QIIMEDependencyFull)
AmpliconNoise install looks sane.
———————————————————————-
Traceback (most recent call last):
File “/macqiime/QIIME/bin/print_qiime_config.py”, line 392, in test_ampliconnoise_install
“$PYRO_LOOKUP_FILE variable is not set. See %s for help.” % url)
AssertionError: $PYRO_LOOKUP_FILE variable is not set. See http://qiime.org/install/install.html#ampliconnoise-install-notes for help.

———————————————————————-
Ran 35 tests in 0.456s

FAILED (failures=1)

Species to target for evolutionary analysis

Right now, we have a lot of Zostera marina microbiome samples from around the world. So, pairing that with the ZEN data, we should have a pretty nice ecological/biogeographical story, and hopefully we will soon have a postdoc to help us address questions about community assembly with those data.

Now, my attention is turning more earnestly towards the big evolutionary questions, and how to obtain the data we need to answer those. For the most part, because we are plugged in to a nice network of seagrass researchers, I don’t feel like getting all of the seagrass species that we’ll need is going to be too difficult. However, we are kinda lost when it comes to the fresh and brackish water and terrestrial relatives. I wouldn’t say that I’m panicking about it yet, but I am starting to feel like the right way to tackle the problem of collecting those samples is going to be to do it myself. In order to ask for help in collecting those samples, I’d have to:

1. Make a list of target species.

2. Find out their ranges and who is likely to have access to samples.

3. Contact the person/s who might be willing to go grab a sample for me.

4. Wait (hope) for that person to get back to me.

5. Send sampling supplies, and hope that they will be able to freeze samples for me (because the Zymo buffer is pretty sucky.)

6. Wait for the samples to be collected and returned to me.

The problem is that doing this for all of the target species could take forever. I have control over 1-3, but absolutely none over 4-6.

In the past, I’ve had success taking epic road trips and meeting researchers along the way who were willing to help me collect local species. So, I’m thinking that an approach like that might work here.

Here’s a list of the taxa of which I’d like to have representatives, and a tree of them below. I’ll start compiling range and contact information.

Potamogetonaceae
-Groenlandia
-Potamogeton

Zannichelliaceae
-Zannichellia
-Lepilaena

Zosteraceae
-Zostera
-Phyllospadix
-Heterozostera

Cymodoceaceae
-Thalassodendron
-Amphibolis
-Cymodocea
-Sryingodium
-Halodule

Ruppiaceae
-Ruppia

Posidonaeceae
-Posidonia

Lilaeaceae
-Lilaea

Juncaginaceae
-Triglochin
-Cycnogeton

Aponogetonaceae
-Aponogeton

Scheuchzeriaceae
-Scheuchzeria

Najadaceae
-Najas

Hydrocharitaceae
-Thalassia
-Enhalus
-Halophila
-Vallisneria
-Nechamandra
-Hydrilla
-Blyxa
-Ottelia
-Elodea
-Apalanthe
-Lagarosiphon
-Statiotes
-Hydrocharis
-Limnobium

Butomaceae
-Butomas

Limnocharitaceae
-Limnocharis
-Hydrocloys

Alismataceae
-Alisma
-Baidellia (or Baldellia)
-Damasonium
-Luronium
-Ranalisma
-Sagittaria
-Wiesneria
-Echinodorus

OUTGROUP:

Araceae/Lemnaceae
-Lasia
-Xanthosma
-Montrichardia
-Ariopsis
-Pistia
-Lemna
-Gymnostachys
-Symplocarpus

Acoraceae
-Acorus

photo-4

Postdoc Position in Theoretical Community Ecology

The Seagrass Microbiome Project is looking for a Postdoc!

Postdoctoral Position in Microbial Ecology and Evolution

Jessica Green at the University of Oregon (http://pages.uoregon.edu/green/) is currently seeking a postdoctoral researcher to collaborate on the Seagrass Microbiome Project (http://seagrassmicrobiome.org).   Applicants should have a Ph.D. in a biological, computational, mathematical, or statistical field and strong writing skills.  The ideal candidate will have experience developing and applying models to understand the ecology, evolution, and/or function of complex systems.  Experience in the analysis of environmental sequence data is highly desirable, but not required.

The successful candidate will have the opportunity to creatively and independently tackle one or more of the science questions outlined in the Seagrass Microbiome Project grant proposal (https://seagrassmicrobiome.org/2014-grant-proposal/), funded by the Gordon and Betty Moore Foundation.   The successful candidate will interact regularly with team members Jonathan Eisen (http://phylogenomics.wordpress.com), Jay Stachowicz http://www-eve.ucdavis.edu/stachowicz/stachowicz.shtml, and Jenna Lang (http://jennomics.com/) at the University of California, Davis through weekly tele-conferencing and also through regular visits to the UC Davis campus.  At the University of Oregon, the candidate will benefit from ongoing microbiome research programs including the Microbial Ecology and Theory of Animals Center for Systems Biology (http://meta.uoregon.edu/) and the Biology and Built Environment Center (http://biobe.uoregon.edu/).

The position is available for 1 year with the possibility for renewal depending on performance.  The start date is flexible.  Please email questions regarding the position to Jessica Green (jlgreen@uoregon.edu).

To apply

A complete application will consist of the following materials:

(1) a brief cover letter explaining your background and career interests

(2) CV (including publications)

(3) names and contact information for three references

Submit materials to ie2jobs@uoregon.edu.  Subject: Posting 14431

To ensure consideration, please submit applications by March 10, 2015, but the position will remain open until filled.

Women and minorities encouraged to apply.  We invite applications from qualified candidates who share our commitment to diversity.

The University of Oregon is an equal opportunity, affirmative action institution committed to cultural diversity and compliance with the ADA. The University encourages all qualified individuals to apply, and does not discriminate on the basis of any protected status, including veteran and disability status.

AP Bio Winogradskies (Pt. 2)

Even with a few days distance from the (hopefully) inaugural field trip with the AP Bio class from Rocklin Collegiate Academy, I’m still shocked by how smoothly everything went. On Friday, we set up the Winogradsky columns (see post here.) On Saturday morning, were were so fortunate to be at the Bodega Marine Lab on the day when UC Davis Biological Sciences freshman are bussed out to the BML for a tour and some proselytizing for marine biology as a field of study. Because there was already staff on hand for the freshman tours, we were offered the opportunity to have our class go on the same tour. After the tour and an inspirational overview, given by Dr. Eric Sanford, of ongoing research at BML, we had lunch and then killed time at the dorms while waiting for the tide to go down.

I’d borrowed 3 pairs of waders for the students who were adventurous enough to get into the chilly water to collect seagrass plants and sediment. However, after polling the students, I realized that almost everyone was pretty excited about putting on the waders, so I grabbed a bunch more. At 2:30, low tide, we went to Westside Park to hunt for seagrass beds. From the shore, it was pretty easy to spot the dark patches in the water that I assumed were them. So, we walked across the mudflat for about 100 yards and then just a few feet into the water, they were right in the thick of them!

We gave them spades and buckets and they dug right in. The buckets were filled up about halfway with sediment and plants, and topped off with seawater. After about an hour, we had to drag them away, they loved looking at all of the crazy marine invertebrates and eggs that were attached to the leaves. Back at the lab, we stirred the buckets, let the sediment settle a little, and then loaded up the columns. They’re now in the hands of WSCA’s AP Bio class, and we’re really looking forward to watching them develop!

AP Bio Winogradskies

For the Seagrass Microbiome project, one thing we’d like to do is to build a culture/reference genome collection for microbes found in association with seagrasses. For now, we are just working on this for Zostera marina, both because it is our primary experimental model organism and because we have easy year-round access to it at Bodega Bay.

However, while we hope to do more of it in the future, the Eisen lab isn’t currently set up to isolate the types of organisms that we think are likely to play an important role in seagrass adaptation to marine sediments, e.g., sulfur-oxidizing microbes (which require anaerobic conditions to grow). So, for now, we are using an enrichment tool known as a Winogradsky column to grow lots of sulfur oxidizers (and other things, but we’ll focus on sulfur oxidation here.)

In Winogradsky columns, sulfur and oxygen gradients cause microbes to stratify themselves according to their ability to utilize the available electron donors and acceptors. These microbial layers are visible to the eye, making Winogradsky columns a great classroom tool for teaching students about microbial physiology, biogeochemistry, ecological niches, succession, and much more.

Bethany Dixon is an AP Biology teacher at Western Sierra Collegiate Academy, a charter school in Rocklin, California. She has been building Winogradsky columns in her classroom for a couple of years now. We have teamed up to have her students build Winogradsky columns that have been inoculated with seagrass bed sediment. One thing we know is that we will be able to enrich for seagrass-associated microbes with a variety of metabolic capabilities. But, we don’t know much more than that. For example, how many different species will be oxidizing sulfur in these columns? Will the same microbial species perform sulfur oxidation in every column that’s made from the same sediment? What will happen if we add a bunch of elemental sulfur to the column? Will that change the makeup of the sulfur oxidizing community in the columns? Will it affect the shape of the sulfur gradient? Will it affect how quickly the layers form in the columns? Will it kill the column?

So, we arranged for Bethany’s AP Bio class to come to UC Davis’ Bodega Marine Lab (BML) to collect some sediment and inoculate some Winogradsky columns. Typically, Winogradsky columns are built by mixing sediment with a carbon source (like newspaper) and a sulfur source (like egg yolk), topping it off with water, and then sealing it. I got the idea of using diatomaceous earth as a physical matrix and laboratory chemicals for the carbon source (cellulose) and sulfur source (sodium sulfate) from Tom Benoit at McMurry University. We just make a slurry of the sediment and water, let the big particles settle, and then add the water to the columns.

This is really cool because we can control and systematically vary the chemical composition of each column. So, with the AP Bio class, we have defined 5 experimental “recipes” and each student is making two columns, with one experimental and one standard recipe. We’ll discuss the five experimental recipes in a follow-up post.

Today, the students arrived at the BML. We spent the afternoon weighing out and mixing chemicals, and loading our 50ml conical tube columns. Tomorrow, at low tide, we’ll head over to a seagrass bed, load up a bucket with sediment, and haul it back to the lab to inoculate the columns!

You can follow our progress here, or in real-time on Twitter with the hashtag #APBioGradksy

Visiting the experimental seagrass tanks. One of the experimental recipes involves substituting macerated seagrass roots for cellulose. Everyone visited the experimental tanks to grab some seagrass roots for those. They would have spent hours here, checking out the different tanks, watching the sea stars, urchins, and sea hares.
Visiting the experimental seagrass tanks.
One of the experimental recipes involves substituting macerated seagrass roots for cellulose. Everyone visited the experimental tanks to grab some seagrass roots for those. They would have spent hours here, checking out the different tanks, watching the sea stars, urchins, and sea hares.
Ecosystem engineers. Back in the lab, a classroom provided by the BML, five teams weighed out the chemicals for their experimental columns, and loaded them up.
Ecosystem engineers. Back in the lab, a classroom provided by the BML, five teams weighed out the chemicals for their experimental columns, and loaded them up.

The Seagrass Microbiome Project is hiring a postdoc!

Postdoctoral Position in Microbial Ecology and Evolution

Jessica Green at the University of Oregon Green (http://pages.uoregon.edu/green/) is currently seeking a postdoctoral researcher to explore fundamental questions in microbial ecology and evolution. Applicants should have a PhD in a biological, computational, mathematical, or statistical field with extensive training using theory and/or modeling to understand the ecology and evolution of complex biological communities, and strong writing skills. Experience developing and applying quantitative phylogenetic ecological methods is highly desirable, but not explicitly required for candidates who have otherwise demonstrated strong quantitative skills.

The successful candidate will play a key role in the Seagrass Microbiome Project (http://seagrassmicrobiome.org) in collaboration among Jonathan Eisen http://phylogenomics.wordpress.com), Jay Stachowicz http://www-eve.ucdavis.edu/stachowicz/stachowicz.shtml, and Jenna Lang (http://jennomics.com/) at the University of California, Davis. The Seagrass Microbiome Project aims to integrate the long interest in seagrass ecology and ecosystem science with more recent work on microbiomes to produce a deeper, more mechanistic understanding of the ecology and evolution of seagrasses and the ecosystems on which they depend. Our studies of the community of microorganisms that live in and on seagrasses – the seagrass “microbiome” – will contribute to a broader understanding of host-microbe systems biology, and will benefit from ongoing University of Oregon research programs including the Microbial Ecology and Theory of Animals Center for Systems Biology (http://meta.uoregon.edu/) and the Biology and Built Environment Center (http://biobe.uoregon.edu/).

The position is available for 1 year with the possibility for renewal depending on performance. The start date is flexible. Please email questions regarding the position to Jessica Green (jlgreen@uoregon.edu).

To apply

A complete application will consist of the following materials:

(1) a brief cover letter explaining your background and career interests

(2) CV (including publications)

(3) names and contact information for three references

Submit materials to ie2jobs@uoregon.edu. Subject: Posting 14431

To ensure consideration, please submit applications by November 1, 2014, but the position will remain open until filled.

Women and minorities encouraged to apply. We invite applications from qualified candidates who share our commitment to diversity.

The University of Oregon is an equal opportunity, affirmative action institution committed to cultural diversity and compliance with the ADA. The University encourages all qualified individuals to apply, and does not discriminate on the basis of any protected status, including veteran and disability status