How-to Configure NFS on OS X 10.6 Server

February 7, 2010 by victorhansonsmith

Here are instructions for configuring remotely mounted folders using network file system (NFS) on Apple OSX 10.6 Server. . .

Our lab recently purchased a computational cluster, consisting of eight Apple XServes.  We have one “head” node with RAID storage, and seven “auxiliary” nodes that automount folders on the head node.  The head node is visible to the entire world, but the auxiliary nodes live on a private subnet.  Although most Apple documentation suggests using AFP to share folders across the subnet, I found AFP to be inappropriate for our setup.  To wit, AFP does not allow users simultaneously logged into the same client machine to mount the same folder.  For example, suppose Alice signs into auxiliary node #2 and runs a script; Alice automatically mounted the folder /Users from the head node.  However, if Bob signs into node #2, he won’t be able to mount his home folder until Alice signs-off!  AFP seems appropriate for situations where a laptop (or some other personal computer) is mounting a remote filesystem.  AFP seems inappropriate for high-performance computing scenarios.

As an alternative to AFP, I setup remote folder mounting using NFS.

Here are instructions for configuring NFS. . .

1. Configure Domain Name System (DNS) service.  Here are some good instructions from wazmac.com.

2. Configure Open Directory service.  Here are more instructions from wazmac.com.

3. Define the folders to be exported.  Although you can manually create these definitions by editing the file named /etc/exports, I recommend you instead use the OSX GUI tools in the Server Admin application.  My rationale is that /etc/exports is fragile because Server Admin will freely overwrite the contents of this file.  Do the following:

3a. Enable NFS.  In Server Admin, select the server, then click the icon for settings, then click the menu bar for services.  Ensure the checkbox next to NFS is enabled.

3b. Select your desired sharepoints.  In Server Admin, click on the NFS service.  Select the icon for sharepoints.  Browse to the folders you want to share, and click the share button in the upper-right corner.  In this example, I show how to share the Users folder.

4. Start NFS by clicking on the Start NFS button at the bottom of the Server Admin application.  If NFS is already running, then you will instead see a button for Stop NFS; in this case, don’t stop NFS.

5. Enable your shared folders to be automounted. For each sharepoint, select the sharepoint and then select the Share Point menu bar.  Ensure the checkbox for Enable Automount is checked.   You should see something like this:

6. Click on the Edit… button next to Enable Automount.  Ensure that the sharepoint is being exported using the NFS protocol.  If the sharepoint is intended to be the home directory for users, then ensure the option “Use for user home folders and group folders” is enabled.  You should see something like this:

Click OK when you are done.

7. Back in the Share Points menu, click on the button for Protocol Options…; you should see something like this:

7a. Ensure the sharepoint is not being shared via AFP, and is being shared via NFS.  In the NFS menu, you might use options like what I show below:

Here I’m sharing the Users folder to the subnet with address 10.0.0.0 with mask 255.255.255.0.  This means that addresses with the pattern 10.0.0.? (where ? can be anything) have access to the folder.

8. Finally, let’s test the NFS setup.  Open Terminal and type the following:

> sudo nfsd update

. . . in order to restart NFS.  You also could restart your computer, but it seems easier to use nfsd.

> sudo nfsd checkexports

Enter the password for root access.  If NFS is correctly configured, you should see no output from nfsd.

> showmount -e

. . . should list all your NFS exported sharepoint.  For example, on our server. . .

markov:~ admin$ showmount -e
Exports list on localhost:
/private/var/xgrid/sfs              Everyone
/common                             10.0.0.0
/Users                              10.0.0.0
/Library/Python                     10.0.0.0

OK.  Good luck!

Symphonia Robotica, Part 1

January 29, 2010 by victorhansonsmith

Here’s my first major attempt at massive multi-track composing in Garage Band. (…and by massive, I mean 78 tracks and 500+ effects). All the samples and beats are my own creation, using the synthesizer library within the Korg X50. I’ve mentioned the Korg X50 several times before (e.g., here and here), and I really am loving it.

here: Symphonia Robotica, Part 1  [8:37, MP3, 19.8 MB]

further bass explorations

January 22, 2010 by victorhansonsmith

One of my favorite features on the Korg X50 is the ability of control the full range of low-pitch frequency and high-pitch frequency cutoff thresholds for all synthesized leads.  Here is an improvised bass track that heavily demonstrates this feature.  I’m using synth bass #A021 and pad #A016, plus some post-editing in GarageBand.

Bass Improvisation on January 22, 2010 (MP3, 11MB, 4:52)

new music

January 22, 2010 by victorhansonsmith

I’m having a lot of fun playing with the Korg X50. Here is an experiment with the bass synth #A021. It’s best enjoyed with the subwoofer loud, or a good pair of low-range headphones.

Bass Rubber (MP3, 6.1 MB)

Spotlight on Fever Ray

January 17, 2010 by victorhansonsmith

I recently stumbled across the Swedish pop music of Karin Elisabeth Dreijer Andersson, whose projects include Fever Ray and the The Knife.  Her melodies are haunting, her lyrics are smart, and the studio production is subtle and precise.  Pitchfork Media gushed about her last album, naming it one of the best of 2006.  Now it’s my turn to gush about her latest album, “Fever Ray.”  In particular, I love the music videos; each of them is a little mystery to unravel.  Here are three of my favorites:

“When I Grow Up” directed by Martin de Thurah

“If I Had a Heart” directed by Adreas Nilssons

“Seven” directed by Johan Renck

EvoDevo IGERT Symposium, Day 1

November 14, 2009 by victorhansonsmith

[I'm at Indiana University, attending the 2009 IGERT symposium on evolution, development, and genomics.]

Tonight, we heard from Patrick Phillips and PZ Myers.

Patrick gave a broad overview of the past, present, and future of EvoDevo.  The central question of EvoDevo is: how do developmental systems evolve?  Conversely, we can ask: how does development shape the evolutionary process?  Although EvoDevo has witnessed big progress in the last decade, these central questions are unanswered.  Patrick consequently said, “[grad students], your future is secure!”

Patrick claims that EvoDevo lacks a central theory.  In other fields, there is a unit of study: chemistry examines atoms, biochemistry examines molecules, molecular biology examines DNA, population genetics examines DNA sequences, population biology examines individuals, and community ecology examines species.  For EvoDevo, Patrick asserts the unit of study should be (and is) the cell.

Finally, Patrick talked about experimental barriers for EvoDevo.  The most significant barrier is that the genotype-phenotype map is still not completely understood.  A large proportion of research is focused on simply finding genes, let alone understanding how they affect phenotype.  Patrick used Hopi Hoekstra’s work as an example of successful geneotype-phenotype mapping.  (Hopi’s lab revealed the genetic mechanisms controlling mouse coloration patterns).  Although Hopi’s work is seminal, but we still have a long ways to go towards understanding the genetic mechanisms that control complex phenotypes, such as behavior.

After Patrick’s introduction, PZ Myers gave a talk titled, “Repelled and Fascinated: Coping with the Public Response to Evolution.”  PZ Myers authors a famous (or infamous) blog about evolutionary biology, and has lately become a lightening rod for attacks from the creationist and intelligent design community.

PZ started by showing results from pew polls, suggesting that about 50% of the U.S. public does not believe in evolution.  Furthermore, about 16% of U.S. high school science teachers don’t believe in evolution [citation: Berkman et al, 2008, PLoS Bio].  Although these numbers are alarming, PZ thinks the public is only nominally creationist and confounded by the loud voices of creationists.

PZ next gave a “pocket guide to creationism” in which he explained the history of the creationist movement.  PZ traces creationism’s roots to Archbishop James Ussher, who calculated the age of the earth using dates from the bible.  Until the early 1900’s, most of U.S. public was willing to accept the bible as metaphor.  The *best* slide from PZ’s talk was a phylogeny expressing the history of creationism.  I include it here, but I’m sorry that it’s slightly blurry:

[Note to PZ: if you'd rather I don't share this photo, let me know]

PZ went on to discuss some significant events in the history of creationism: the Scopes trail in 1925, The Genesis Flood in 1961, Edwards vs. Aguillard in 1987, and Kitzmiller vs. Dover in 2005.  PZ claims that “scientific” creationism comes from Seventh Day Adventism, but is has been intellectually laundered to hide or sever it’s Seventh Day Adventist roots.  The most radical change in the creationist movement has been towards portraying evolutionary biologists as “evil.”

In response to the increasing fundamentalism of the creationist movement, PZ asserts that we (evolutionary biologists) should be more active with our outreach.  In particular, we should write blogs!

Journal Club: Structural and Functional Constraints in the Evolution of Protein Families

October 14, 2009 by victorhansonsmith

The theme of this year’s IGERT EvoDevo symposium is “Current Frontiers of Evolution, Development, and Genomics.”  Every Friday, starting this week and ending December 4th, our IGERT group is hosting a journal club discussion about our own research in the broader context of paradigm-shifting publications in Evo/Devo/Geno.  This week, I’m leading the discussion about my research in computational methods for ancestral sequence reconstruction in the context of a recent review by Catherine Worth, Sungsam Gong, and Tom L. Blundell titled “Structural and Functional Constraints in the Evolution of Protein Families.” If your campus provides access to the journal Nature Reviews, the paper can be found here: http://www.nature.com/nrm/journal/v10/n10/abs/nrm2762.html

Here are my insights into why this paper is fundamentally relevant for anyone working with genetic sequence data in an evolutionary context. . .

Scientific frontiers appear when we integrate analyses from the micro and the macro scale. Examples of this include how biology is informed by chemistry, chemistry is informed by physics, and classical physics is informed by quantum physics.  This trend is true for EvoDevo: we are rapidly arriving at an understanding of evolution from increasingly scientific first principles.  To be specific, we are beginning to understand how mutations in protein sequence and structure — at the biophysical scale — have consequences for the function and phenotype of cells, species, and individuals — at the macro scale [see Dean and Thornton, Nature Reviews 2007].

In order to reveal the evolutionary trajectory of a particular protein structure, we need to examine ancient forms of that protein.  However, the simple acquisition of ancestral molecules can be a major obstacle when we examine evolutionary histories over millions of years because the ancestral forms are typically extinct.  As a computational alternative, we can time travel via statistical inference [see Thornton, Nature Reviews 2004].

I study computational and phylogenetic methods that make it possible for us to probabilistically infer phylogenies and reconstruct ancestral gene sequences.  One of the most important inventions in the history of phylogenetic methods is the use of Markov models to approximate the evolution of gene sequences.  Markov models are used all over the place in information science: to model natural language, radio transmissions, and white noise.  Markov models are used in speech recognition, your email’s spam filter, and global weather prediction.  Google’s core search algorithm is fundamentally just a complex Markov model.

The core idea of the Markov Model concerns characters transitioning (i.e. mutating) over time.  Suppose we have some character — like a single nucleotide or an amino acid — and it currently is in state X, where X is one of the letters in our nucleotide or amino acid alphabet.  Over time of length t, X will mutate to state Y with probability determined by a matrix of relative substitution ratios.  This model follows the Markov property, where the probability of Y later mutating to state Z over time t2 is independent of its prior state X.

If we calculate transition probabilities for all branches in a phylogenetic tree, we can thus calculate the likelihood of that tree and infer the maximum a posteriori ancestral protein sequence.  In this discussion, I will avoid articulating all the mathematical minutiae of how we calculate probabilities for trees and ancestral sequences; you can learn more by reading this excellent book edited by Oliver Gascuel.  Instead, I want to focus on the substitution matrix: it is an approximation of molecular evolution and it makes critical assumptions about evolutionary forces.

In it’s simplest form (as a 4×4 nucleotide matrix or 20×20 amino acid matrix) substitution matrices assume that all residues with the same state are in a homogenous biophysical environment, and are thus exposed to the same mutational forces.  For example, the WAG matrix assumes that all glutamic acids (E) can be treated equally, and thus the relative substitution rate for any glutamic acid mutating into asparagine (D) is 6.174, while the relative rate of any glutamic acid mutating to cystine (C) is 0.021.  The assumption of structural homogeneity is often invalid; for example, as is illustrated in this week’s review by Worth et al., residues buried in solvent-inaccessible cores of a protein tend to be more conserved than residues located on the exterior of proteins.  This insight implies that we need a secondary substitution matrix expressing relative mutation rates for residues located in protein cores.  As an example, if E stands for an external glutamic acid and E’ stands for a core glutamic acid, we should expect the relative substitution rate for E-to-D to be larger than the relative rate for E’-to-D’.

The article by Worth et al. reviews a large historical body of results concerning protein structure conservation.  The article further describes how we can use environment-specific substitution tables (ESSTs) to explicitly capture information about structural conservation into our Markov model of evolution.  The insights from this paper are fundamental for anyone working with genetic sequence data in an evolutionary context.

Worth CL, Gong S, & Blundell TL (2009). Structural and functional constraints in the evolution of protein families. Nature reviews. Molecular cell biology, 10 (10), 709-20 PMID: 19756040

Experimenting with an organ synth (part 2)

September 22, 2009 by victorhansonsmith

As I mentioned in my earlier post, I’ve been playing with the Korg X50.  Here is more drone-like trance organ; love it or hate it:

Organ Improvisation on September 22, 2009 (7:27, MP3 17.1 MB)

Experimenting with an organ synth

September 21, 2009 by victorhansonsmith

Recently, I’ve been playing with the Korg X50 music synthesizer; I greatly enjoy that I can manually adjust the shape, velocity, and attack of each synthesized pad.  Here is a recorded improvisation using a pad called Ballad Organ:

Organ Improvisation on September 21st, 2009 (MP3, 12 MB)

further audio experiments with Edirol R-09

September 15, 2009 by victorhansonsmith

1. Improvisation April 5th, 2009 – MP3 (4.3 Mb)

. . . walking along the Opal Creek with Tarantula.

2. Improvisation September 15th, 2009 – MP3 (5.8 Mb)

. . . Here is some new music I made, using a Korg X50 music synthesizer, a Peavey TKO(tm) 65, and recorded on an Edirol R-09.