A quick post on an excellent review published last week by Antje Boetius and co-authors (including Jody Deming, my PhD advisor) in Nature Reviews Microbiology, titled Microbial ecology of the cryosphere: sea ice and glacial habitats. The review, focused on viral, bacterial, and archael microbes, provides an excellent overview of the major habitats within the cryosphere (broadly glacial ice, sea ice, and snow), the challenges and opportunities for microbial life, and the observed distribution of taxa and genes (to the extent that we know it). Like most Nature Reviews it is written for a broad audience and assumes no deep knowledge of microbial ecology or the cryosphere.
Plenty of reviews have been written on microbial life at low temperature, what makes this one stand out to me is the ecological focus. Although discussions of biogeography (i.e. what taxa are where) and metabolism are woven throughout the review, the emphasis is on habitats, including newly recognized habitats like frost flowers and saline snow. Check it out!
In preparation for their Arctic work GEOTRACES linked with “Float Your Boat”, an education program with a unique concept. ‘Float Your Boat’ blends the themes of historic Arctic drift studies, modern GPS technology and hands on science, to engage local communities with work in remote science locations. Scientists currently onboard the Research Vessel Healy spent time last spring recruiting and meeting with school groups to share information about the Arctic, their upcoming science cruise and collecting small student decorated wooden boats that would become part of the project.
For over a month the science team has been anticipating the deployment of these small wooden vessels since this builds a direct connection to their families and communities back home.
The student boats are deployed in a 100% biodegradable box lowered carefully onto an iceberg along with an iridium satellite tracking buoy. The tracker is activated ‘calling home’ so that it can be used to track the circulation of the ice. Over time the ice is expected to melt and the box will biodegrade sending these small floating wooden boats into the high seas of the Arctic Ocean.
Once the box degrades the boats will be separated from the tracker, but each boat has been identified by the students with their school and their own name and stamped with the project contact information. If any of the boats wash up onshore there is enough information for the locator to contact ‘Float Your Boat’ with a date and location. Through online tracking of the iridium satellite this project provides opportunities for students to learn about Arctic change, marine circulation, marine debris transit and maritime careers.
The ‘Float Your Boat’ project concept comes from early Arctic science, when drifting ice floes were used to track Arctic circulation. In the International Geophysical Year (1957-58) Lamont scientist Ken Hunkins resided for two 6 month stints on Ice Station Alpha, a station built on top of the Arctic sea ice. Science teams were flown in by plane and dropped, along with their equipment, about 500 miles north of Alaska. There they studied a range of ocean parameters, including tracking their own progress as they moved along with the ice drift. The 18 months of operations tracked the ice floe movement as it shifted ~2000 miles around the Arctic in a clockwise manner until it was just north of Ellesmere Island, Canada. (map below)
Somehow the rigid presence of the Healy seems infinitely more secure than a few tents and rigs set directly on the mile long by half-mile wide section of sea ice under station Alpha.
But even earlier than the science drift experiments were the expeditions of early Arctic explorers, like Fritdjof Nansen, who froze his ship the “Fram” into the northern icepack during his voyage of 1893-1896 in hopes of drifting to the North Pole. He did not succeed, however he did learn about Arctic drift and spurred additional research on this topic, perhaps leading to these young Arctic researchers and their ‘vessels’.
Margie Turrin is blogging for Tim Kenna, who is reporting from the field as part of the Arctic GEOTRACES, a National Science Foundation-funded project.
For more on the GEOTRACES program, visit the website here.
…for something completely different. My wife and I are expecting our first child in a few months, which is wonderful and all, but means that we are faced with the daunting task of coming up with a name. Being data analysis types (she much more than me), and subscribing to the philosophy that there is no problem that Python can’t solve, we decided to write competing scripts to select a good subset of names. This is my first crack at a script (which I’ve titled BAMBI for BAby naMe BIas), I’ve also posted the code to Github. That will stay up to date as I refine my method (in case you too would like Python to name your child).
My general approach was to take the list of baby names used in 2014 and published by the Social Security Agency here, bias against the very rare and very common names (personal preference), then somehow use a combination of our birth dates and a random number generator to create a list of names for further consideration. Okay, let’s give it a go…
First, define some variables. Their use will be apparent later. Obviously replace 999999 with the real values.get = 100 # how many names do you want returned? wife_bday = 999999 my_bday = 999999 due_date = 999999 aatc = 999999 # address at time of conception size = (wife_bday + my_bday) / (due_date / aatc) start_letters = ['V','M'] # restrict names to those that start with these letters, can leave as empty list if no restriction desired sex = 'F' # F or M
Then import the necessary modules.import matplotlib import numpy as np import matplotlib.pyplot as py import math import scipy.stats as sps
Define a couple of variables to hold the names and abundance data, then read the file from the SSA.p =  # this will hold abundance names =  # this will hold the names with open('yob2014.txt', 'r') as names_in: for line in names_in: line = line.rstrip() line = line.split(',') if line == sex: if len(start_letters) > 0: if line in start_letters: n = float(line) p.append(float(n)) names.append(line) else: n = float(line) p.append(float(n)) names.append(line)
Excellent. Now the key feature of my method is that it biases against both very rare and very common names. To take a look at the abundance distribution run:py.hist(p, bins = 100)
Ignore the ugly X-axis. Baby name abundance follows a logarithmic distribution; a few names are given to a large number of babies, with a long “tail” of rare baby names. In 2014 Emma led the pack with 20,799 new Emmas welcomed into the world. My approach – I have no idea if it’s at all valid, so use on your own baby with caution – was to fit a normal distribution to the sorted list of names. I got the parameters for the distribution from the geometric mean and standard deviation (as the arithmetic mean and SD have no meaning for a log distribution). The geometric mean can be calculated with the gmean function, I could not find a ready-made function for the geometric standard deviation:geo_mean = sps.mstats.gmean(p) print 'mean name abundance is', geo_mean def calc_geo_sd(geo_mean, p): p2 =  for i in p: p2.append(math.log(i / geo_mean) ** 2) sum_p2 = sum(p2) geo_sd = math.exp(math.sqrt(sum_p2 / len(p))) return(geo_sd) geo_sd = calc_geo_sd(geo_mean, p) print 'the standard deviation of name abundance is', geo_sd ## get a gaussian distribution of mean = geo_mean and sd = geo_sd ## of length len(p) dist_param = sps.norm(loc = geo_mean, scale = geo_sd) dist = dist_param.rvs(size = sum(p)) ## now get the probability of these values print 'wait for it, generating name probabilities...' temp_hist = py.hist(dist, bins = len(p)) probs = temp_hist probs = probs / sum(probs) # potentially max(probs)
At this point we have a list of probabilities the same length as our list of names and preferencing names of middle abundance. The next and final step is to generate two pools of possible names. The first pool is derived from a biased-random selection that takes into account the probabilities, birth dates, due date, and address at time of conception. The second, truly random pool is a subset of the first with the desired size (here 100 names).possible_names = np.random.choice(names, size = size, p = probs, replace = True) final_names = np.random.choice(possible_names, size = get, replace = False)
And finally, print your list of names! I recommend roulette or darts to narrow this list further.with open('pick_your_kids_name.txt', 'w') as output: for name in final_names: print name print >> output, name