Wednesday, February 27, 2013

Topics on biology, genetics, and food

Cilantro and olfactory receptor variation
Olfactory sensing account for most of the food flavor.

Different noses for different mice and men
Lactase versus amylase, in human evolution
Entry on lactose intolerance
new paper just out in Nature Genetics gives us another example. In this work, researchers found that groups that tended to eat more starch had more amylase in their spit. This makes some sense as amylase is the protein that breaks down starch into sugars we can use.

Archaeology: The milk revolution
When a single genetic mutation first let ancient Europeans drink milk, it set the stage for a continental upheaval.

Alcohol consumption in Eastern Asia

Caffeine and human genetics
The genes identified were CYP1A2 (Cytochrome P450 1A2), which has previously been implicated in the metabolism of caffeine, and AHR, involved in the regulation of CYP1A2. Individuals with the highest-consumption genotype for either gene consumed ~40 mg more caffeine than those with the lowest-consumption genotype, equivalent to the amount of 1/3 cup of caffeinated coffee, or 1 can of cola.

Calorie restriction, red wine, and longevity

Calorie restriction, telomere length and 

NPR, lifestyle influences telomere length and cancer risks.

Human microbiome and food

Taste receptor and SNP

 How do we taste food?

Humans only recognize five tastes, but we can recognize thousands of smells. It is the way the brain puts together the tastes with the smells, temperature and mouth feel that creates our perception of "flavor".  As much as 85% of the perception of taste comes from the sense of smell  Taste perception 3D animation

Olfactory receptor Ordor perception, 3D animation
Sense of taste and smell  A very nice summary video

Tofu in China
Rice-growing culture - Wild China - BBC
Chopsticks versus forks

Tea and buddhism

CODEML sample control file

Sample CODEML control file

seqfile = stewart.aa * sequence data file name
outfile = mlc * main result file name
treefile = stewart.trees * tree structure file name
noisy = 9 * 0,1,2,3,9: how much rubbish on the screen
verbose = 0 * 1: detailed output, 0: concise output
runmode = 0 * 0: user tree; 1: semi-automatic; 2: automatic
* 3: StepwiseAddition; (4,5):PerturbationNNI; -2: pairwise
seqtype = 2 * 1:codons; 2:AAs; 3:codons-->AAs
CodonFreq = 2 * 0:1/61 each, 1:F1X4, 2:F3X4, 3:codon table
* ndata = 10
clock = 0 * 0:no clock, 1:clock; 2:local clock; 3:TipDate
aaDist = 0 * 0:equal, +:geometric; -:linear, 1-6:G1974,Miyata,c,p,v,a
* 7:AAClasses
aaRatefile = wag.dat * only used for aa seqs with model=empirical(_F)
* dayhoff.dat, jones.dat, wag.dat, mtmam.dat, or your own
model = 2
* models for codons:
* 0:one, 1:b, 2:2 or more dN/dS ratios for branches
* models for AAs or codon-translated AAs:
* 0:poisson, 1:proportional,2:Empirical,3:Empirical+F
* 6:FromCodon, 8:REVaa_0, 9:REVaa(nr=189)
NSsites = 0 * 0:one w;1:neutral;2:selection; 3:discrete;4:freqs;
* 5:gamma;6:2gamma;7:beta;8:beta&w;9:betaγ
* 10:beta&gamma+1; 11:beta&normal>1; 12:0&2normal>1;
* 13:3normal>0
icode = 0 * 0:universal code; 1:mammalian mt; 2-11:see below
Mgene = 0 * 0:rates, 1:separate;
fix_kappa = 0 * 1: kappa fixed, 0: kappa to be estimated
kappa = 2 * initial or fixed kappa
fix_omega = 0 * 1: omega or omega_1 fixed, 0: estimate
omega = .4 * initial or fixed omega, for codons or codon-based AAs
fix_alpha = 1 * 0: estimate gamma shape parameter; 1: fix it at alpha
alpha = 0. * initial or fixed alpha, 0:infinity (constant rate)
Malpha = 0 * different alphas for genes
ncatG = 3 * # of categories in dG of NSsites models
fix_rho = 1 * 0: estimate rho; 1: fix it at rho
rho = 0. * initial or fixed rho, 0:no correlation
getSE = 0 * 0: don't want them, 1: want S.E.s of estimates
RateAncestor = 0 * (0,1,2): rates (alpha>0) or ancestral states (1 or 2)

Small_Diff = .5e-6
* cleandata = 0 * remove sites with ambiguity data (1:yes, 0:no)?
* fix_blength = 0 * 0: ignore, -1: random, 1: initial, 2: fixed
method = 0 * 0: simultaneous; 1: one branch at a time

The variables seqfile, outfile, treefile, noisy, Mgene, fix_alpha, alpha, Malpha, fix_rho, rho, clock, getSE, RateAncestor, Small_Diff, cleandata, ndata, fix_blength, and method are used in the same way as in baseml.ctl and are described in the previous section. The variable seqtype specifies the type of sequences in the data; seqtype = 1 means codon sequences (the program is then codonml); 2 means amino acid sequences (the program is then aaml); and 3 means codon sequences which are to be translated into proteins for analysis.

Tuesday, February 26, 2013

Notes on metric system and scientific literacy






Monday, February 25, 2013

Quantifying microbial cell growth, Hartman group and Xavier group

In Shah 2006 BMC Systems Biology,  the Hartman group used an ecology-based growth model to quantify yeast colony growth.

This model is an extension of the simple logistic function
where the numerator is replaced by the carrying capacity, and time is adjusted by TMR.

This paper provide the fitting results to  'wells' in a plate in S4 table. 

I did not find measurements for individual strains, perhaps because this is a method paper.

For comparison, the liquid culture growth curves are modeling by Ditmarsch & Xavier 2011 BMC Microbiology.  DX11 used Monon's equation based on nutrient concentration (N):

DX11 estimates the lag-phase between starting cell density X1 and X2 (X2>X1) by

Both approaches used the concept of carrying capacity.

  •  Accurate, precise modeling of cell proliferation kinetics from time-lapse imaging and automated image analysis of agar yeast culture arrays, Najaf A Shah, Richard J Laws, Bradley Wardman, Lue Ping Zhao and John L Hartman IV, BMC Systems Biology, 2006. PubMed
  •  Xavier group's liquid growth curve model.
2013 Oct 5,
The following 2012 NBT paper measured growth and aging in a modified BY4741 background.

Saturday, February 23, 2013

Notes, Leemis, Reliability, structure function, reliability function

Reference: Lawrence Leemis, Reliability-Probabilistic models and statistical methods, second edition, 2009.

The state of the component is defined by a vector x_i=0 or 1 for a failed and functioning component.
Structure function of a system is $\phi(x)$ = 0 when system failed, and 1 if the system is functioning.

A series system functions if and only if all of its components function. Its structure function is:
  \phi(x) = min{x_1, x_2, ..., x_n}  = product_of x_i

A parallel system functions if and only if one or more component functions. Its structure function is:
 \phi(x) = max{x_1, x_2, ..., x_n} = 1 - product_of (1 - x_i)

Although the minimal and maximal values are very intuitive,  the mathematical formula for the parallel system took me a few minutes to grasp. To solve the parallel \phi(x), we first look for the opposite state vector, i.e., (1 - x_i).  Product of (1 - x_i) indicate a failed parallel system. So, the function system is 1 - product_of (1 - x_i).

Combination of series and parallel sub-units can be used to study complex systems.

Is there a formal proof that combination of these two basic subunit will form any configuration? This could be a very difficult combinatorial problem, and I need to consult a combinatorial mathematician on this topic. In practice, any complex systems can at least be 'reduced' to combinations of these two basic sub-units under some assumptions. This would be a convenient argument to study complex gene networks using these two basic configurations. 

System reliability function $r$ seems to be the viability function in aging (section 2.3, page 31). No, this does not seem to be case. Leemis defines survivor function on page 54:   $S(t) = P[T>=t]$.
Nevertheless, on page 72, example 3.9 show that reliability function can be used to calculate the survivor function.

What component should be we focus on to improve a systems's reliability? For parallel system, the limiting factor is the most reliable one (Page 39).

Mixture of survivor function is discussed in Secion 3.5, page 77. This is directly related to my power-law network model.

Leemis09 discussed Gompertz distribution on page 112. Leemis09 stated that Gompertz hazard function is derived from the assumption that Mill's ratio, 1/ harzard function = resistance to death, and h(t) decreases over time at a rate proportional to itself:
   $d(1/h(t) / dt = k (1/h(t))$
Solution to this assumption leads to a exponential function.

One relationship map for continuous univariate lifetime distributions is provided in figure 4.9 on page 114.

To find the reliability of a system at any time t, the component survivor functions should be used as argument in the reliability function (page 70): 
  S_system = r( S1(t), S2(t), S3(t), ..., Sn(t)). 
Q:How about mortality rate (hazard function)? It can be found by definition:
   h(t) = - S' / S

Page 71 gave an example for a two component in parallel configuration, which is equivalent to  synthetic lethalilty.
Structure function $r = 1 - (1-p1)(1-p2)$
Survivor function $S = 1 - (1-S1)(1-S2)$

Friday, February 22, 2013

github push problem

helen:BsuSporeCoat hqin$ git push --force origin master
Counting objects: 1894, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (1826/1826), done.
error: RPC failed; result=22, HTTP code = 413 | 273 KiB/s   
fatal: The remote end hung up unexpectedly
Writing objects: 100% (1894/1894), 406.36 MiB | 311 KiB/s, done.
Total 1894 (delta 186), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly
fatal: expected ok/error, helper said '4004??c?3?k??/???>????Β^?u????? ?v[???[?T;???:???C?w9re'

Maybe there are too many objects in this 'push'. I  compressed files into a few packages, but this problem persists. It seems large folder size cause the 'hung up' problem. A few hours later, I tried to sync folder individually, and each time seem to work fine. Maybe the GitHub has problem of handling large sync job?!

Around 22:20, it took about 15 minutes to push a 1.6G tar.gz file to Gitbhub. So, it could be GitHub server respond slowly during the busy work hours.

install biopython on osX 10.8.2 Mountain Lion

Goal: Install current biopython on laptop "Byte" with os 10.8.2.

 $ which make
$ port search biopython
py-biopython @1.61 (python, science)
    python tools for computational molecular biology

py25-biopython @1.61 (python, science)
    python tools for computational molecular biology

py26-biopython @1.61 (python, science)
    python tools for computational molecular biology

py27-biopython @1.61 (python, science)
    python tools for computational molecular biology

Found 4 ports.
$ sudo port install py27-biopython @1.61

--->  Computing dependencies for py27-biopython
--->  Dependencies to be installed: flex gettext expat libiconv ncurses m4 py27-numpy fftw-3 py27-nose nosetests_select py27-distribute python27 bzip2 db46 libedit openssl zlib python_select sqlite3 py27-reportlab py27-pil freetype lcms jpeg tiff xz py27-tkinter tk tcl xorg-libX11 xorg-kbproto xorg-libXau xorg-xproto xorg-libXdmcp xorg-libxcb xorg-libpthread-stubs xorg-xcb-proto libxml2
--->  Fetching archive for expat
--->  Attempting to fetch expat-2.1.0_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch expat-2.1.0_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing expat @2.1.0_0
--->  Activating expat @2.1.0_0
--->  Cleaning expat
--->  Fetching archive for libiconv
--->  Attempting to fetch libiconv-1.14_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch libiconv-1.14_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing libiconv @1.14_0
--->  Activating libiconv @1.14_0
--->  Cleaning libiconv
--->  Fetching archive for ncurses
--->  Attempting to fetch ncurses-5.9_2.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch ncurses-5.9_2.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing ncurses @5.9_2
--->  Activating ncurses @5.9_2
--->  Cleaning ncurses
--->  Fetching archive for gettext
--->  Attempting to fetch gettext-0.18.2_2.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch gettext-0.18.2_2.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing gettext @0.18.2_2
--->  Activating gettext @0.18.2_2
--->  Cleaning gettext
--->  Fetching archive for m4
--->  Attempting to fetch m4-1.4.16_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch m4-1.4.16_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing m4 @1.4.16_0
--->  Activating m4 @1.4.16_0
--->  Cleaning m4
--->  Fetching archive for flex
--->  Attempting to fetch flex-2.5.37_1.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch flex-2.5.37_1.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing flex @2.5.37_1
--->  Activating flex @2.5.37_1
--->  Cleaning flex
--->  Fetching archive for fftw-3
--->  Attempting to fetch fftw-3-3.3.3_1.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch fftw-3-3.3.3_1.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing fftw-3 @3.3.3_1
--->  Activating fftw-3 @3.3.3_1
--->  Cleaning fftw-3
--->  Fetching archive for nosetests_select
--->  Attempting to fetch nosetests_select-0.1_0.darwin_12.noarch.tbz2 from
--->  Attempting to fetch nosetests_select-0.1_0.darwin_12.noarch.tbz2.rmd160 from
--->  Installing nosetests_select @0.1_0
--->  Activating nosetests_select @0.1_0
--->  Cleaning nosetests_select
--->  Fetching archive for bzip2
--->  Attempting to fetch bzip2-1.0.6_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch bzip2-1.0.6_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing bzip2 @1.0.6_0
--->  Activating bzip2 @1.0.6_0
--->  Cleaning bzip2
--->  Fetching archive for db46
--->  Attempting to fetch db46-4.6.21_7.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch db46-4.6.21_7.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing db46 @4.6.21_7
--->  Activating db46 @4.6.21_7
^[[A--->  Cleaning db46
--->  Fetching archive for libedit
--->  Attempting to fetch libedit-20121213-3.0_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch libedit-20121213-3.0_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing libedit @20121213-3.0_0
--->  Activating libedit @20121213-3.0_0
--->  Cleaning libedit
--->  Fetching archive for zlib
--->  Attempting to fetch zlib-1.2.7_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch zlib-1.2.7_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing zlib @1.2.7_0
--->  Activating zlib @1.2.7_0
--->  Cleaning zlib
--->  Fetching archive for openssl
--->  Attempting to fetch openssl-1.0.1e_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch openssl-1.0.1e_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing openssl @1.0.1e_0
--->  Activating openssl @1.0.1e_0
--->  Cleaning openssl
--->  Fetching archive for python_select
--->  Attempting to fetch python_select-0.3_2.darwin_12.noarch.tbz2 from
--->  Attempting to fetch python_select-0.3_2.darwin_12.noarch.tbz2 from
--->  Attempting to fetch python_select-0.3_2.darwin_12.noarch.tbz2 from
--->  Attempting to fetch python_select-0.3_2.darwin_12.noarch.tbz2 from
--->  Fetching distfiles for python_select
--->  Verifying checksum(s) for python_select
--->  Extracting python_select
--->  Configuring python_select
--->  Building python_select
--->  Staging python_select into destroot
--->  Installing python_select @0.3_2
--->  Activating python_select @0.3_2
--->  Cleaning python_select
--->  Fetching archive for sqlite3
--->  Attempting to fetch sqlite3- from
--->  Attempting to fetch sqlite3- from
--->  Installing sqlite3 @
--->  Activating sqlite3 @
--->  Cleaning sqlite3
--->  Fetching archive for python27
--->  Attempting to fetch python27-2.7.3_1.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch python27-2.7.3_1.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing python27 @2.7.3_1
--->  Activating python27 @2.7.3_1

To make python 2.7 the default (i.e. the version you get when you run 'python'), please run:

sudo port select --set python python27

--->  Cleaning python27
--->  Fetching archive for py27-distribute
--->  Attempting to fetch py27-distribute-0.6.35_0.darwin_12.noarch.tbz2 from
--->  Attempting to fetch py27-distribute-0.6.35_0.darwin_12.noarch.tbz2.rmd160 from
--->  Installing py27-distribute @0.6.35_0
--->  Activating py27-distribute @0.6.35_0
--->  Cleaning py27-distribute
--->  Fetching archive for py27-nose
--->  Attempting to fetch py27-nose-1.2.1_1.darwin_12.noarch.tbz2 from
--->  Attempting to fetch py27-nose-1.2.1_1.darwin_12.noarch.tbz2.rmd160 from
--->  Installing py27-nose @1.2.1_1
--->  Activating py27-nose @1.2.1_1
--->  Cleaning py27-nose
--->  Fetching archive for py27-numpy
--->  Attempting to fetch py27-numpy-1.6.2_1.darwin_12.x86_64.tbz2 from
^[[B--->  Attempting to fetch py27-numpy-1.6.2_1.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing py27-numpy @1.6.2_1
--->  Activating py27-numpy @1.6.2_1
--->  Cleaning py27-numpy
--->  Fetching archive for freetype
--->  Attempting to fetch freetype-2.4.10_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch freetype-2.4.10_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing freetype @2.4.10_0
--->  Activating freetype @2.4.10_0
--->  Cleaning freetype
--->  Fetching archive for jpeg
--->  Attempting to fetch jpeg-9_1.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch jpeg-9_1.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing jpeg @9_1
--->  Activating jpeg @9_1
--->  Cleaning jpeg
--->  Fetching archive for xz
--->  Attempting to fetch xz-5.0.4_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch xz-5.0.4_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing xz @5.0.4_0
--->  Activating xz @5.0.4_0
--->  Cleaning xz
--->  Fetching archive for tiff
--->  Attempting to fetch tiff-4.0.3_1.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch tiff-4.0.3_1.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing tiff @4.0.3_1
--->  Activating tiff @4.0.3_1
--->  Cleaning tiff
--->  Fetching archive for lcms
--->  Attempting to fetch lcms-1.19_5.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch lcms-1.19_5.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing lcms @1.19_5
--->  Activating lcms @1.19_5
--->  Cleaning lcms
--->  Fetching archive for tcl
--->  Attempting to fetch tcl-8.6.0_1+corefoundation+threads.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch tcl-8.6.0_1+corefoundation+threads.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing tcl @8.6.0_1+corefoundation+threads
--->  Activating tcl @8.6.0_1+corefoundation+threads
--->  Cleaning tcl
--->  Fetching archive for xorg-kbproto
--->  Attempting to fetch xorg-kbproto-1.0.6_0.darwin_12.noarch.tbz2 from
--->  Attempting to fetch xorg-kbproto-1.0.6_0.darwin_12.noarch.tbz2.rmd160 from
--->  Installing xorg-kbproto @1.0.6_0
--->  Activating xorg-kbproto @1.0.6_0
--->  Cleaning xorg-kbproto
--->  Fetching archive for xorg-xproto
--->  Attempting to fetch xorg-xproto-7.0.23_0.darwin_12.noarch.tbz2 from
--->  Attempting to fetch xorg-xproto-7.0.23_0.darwin_12.noarch.tbz2.rmd160 from
--->  Installing xorg-xproto @7.0.23_0
--->  Activating xorg-xproto @7.0.23_0
--->  Cleaning xorg-xproto
--->  Fetching archive for xorg-libXau
--->  Attempting to fetch xorg-libXau-1.0.7_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch xorg-libXau-1.0.7_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing xorg-libXau @1.0.7_0
--->  Activating xorg-libXau @1.0.7_0
--->  Cleaning xorg-libXau
--->  Fetching archive for xorg-libXdmcp
--->  Attempting to fetch xorg-libXdmcp-1.1.1_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch xorg-libXdmcp-1.1.1_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing xorg-libXdmcp @1.1.1_0
--->  Activating xorg-libXdmcp @1.1.1_0
--->  Cleaning xorg-libXdmcp
--->  Fetching archive for xorg-libpthread-stubs
--->  Attempting to fetch xorg-libpthread-stubs-0.3_0.darwin_12.noarch.tbz2 from
--->  Attempting to fetch xorg-libpthread-stubs-0.3_0.darwin_12.noarch.tbz2.rmd160 from
--->  Installing xorg-libpthread-stubs @0.3_0
--->  Activating xorg-libpthread-stubs @0.3_0
--->  Cleaning xorg-libpthread-stubs
--->  Fetching archive for libxml2
--->  Attempting to fetch libxml2-2.8.0_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch libxml2-2.8.0_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing libxml2 @2.8.0_0
--->  Activating libxml2 @2.8.0_0
--->  Cleaning libxml2
--->  Fetching archive for xorg-xcb-proto
--->  Attempting to fetch xorg-xcb-proto-1.8_0+python27.darwin_12.noarch.tbz2 from
--->  Attempting to fetch xorg-xcb-proto-1.8_0+python27.darwin_12.noarch.tbz2.rmd160 from
--->  Installing xorg-xcb-proto @1.8_0+python27
--->  Activating xorg-xcb-proto @1.8_0+python27
--->  Cleaning xorg-xcb-proto
--->  Fetching archive for xorg-libxcb
--->  Attempting to fetch xorg-libxcb-1.9_0+python27.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch xorg-libxcb-1.9_0+python27.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing xorg-libxcb @1.9_0+python27
--->  Activating xorg-libxcb @1.9_0+python27
--->  Cleaning xorg-libxcb
--->  Fetching archive for xorg-libX11
--->  Attempting to fetch xorg-libX11-1.5.0_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch xorg-libX11-1.5.0_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing xorg-libX11 @1.5.0_0
--->  Activating xorg-libX11 @1.5.0_0
--->  Cleaning xorg-libX11
--->  Fetching archive for tk
--->  Attempting to fetch tk-8.6.0_1+quartz.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch tk-8.6.0_1+quartz.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing tk @8.6.0_1+quartz
--->  Activating tk @8.6.0_1+quartz
--->  Cleaning tk
--->  Fetching archive for py27-tkinter
--->  Attempting to fetch py27-tkinter-2.7.3_2.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch py27-tkinter-2.7.3_2.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing py27-tkinter @2.7.3_2
--->  Activating py27-tkinter @2.7.3_2
--->  Cleaning py27-tkinter
--->  Fetching archive for py27-pil
--->  Attempting to fetch py27-pil-1.1.7_6.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch py27-pil-1.1.7_6.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing py27-pil @1.1.7_6
--->  Activating py27-pil @1.1.7_6
--->  Cleaning py27-pil
--->  Fetching archive for py27-reportlab
--->  Attempting to fetch py27-reportlab-2.6_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch py27-reportlab-2.6_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing py27-reportlab @2.6_0
--->  Activating py27-reportlab @2.6_0
--->  Cleaning py27-reportlab
--->  Fetching archive for py27-biopython
--->  Attempting to fetch py27-biopython-1.61_0.darwin_12.x86_64.tbz2 from
--->  Attempting to fetch py27-biopython-1.61_0.darwin_12.x86_64.tbz2.rmd160 from
--->  Installing py27-biopython @1.61_0
--->  Activating py27-biopython @1.61_0
--->  Cleaning py27-biopython
--->  Updating database of binaries: 100.0%
--->  Scanning binaries for linking errors: 100.0%
--->  No broken files found.

command line tools of Xcode 4.4+

Started Xcode 4.4+, command line mode has to be manually installed.

Go to XCode->Preference

Then select "Command Line Tools" and click "Install".


macPort usage

    sudo port selfupdate 
Running this command on a regular basis is recommended -- it ensures your

MacPorts installation is always up to date. Afterwards, you may search for ports to install:

        port search <portname>

where <portname> is the name of the port you are searching for, or a partial name.

To install a port you've chosen, you need to run the port install command as the Unix superuser:

        sudo port install <portname>

  man port

Tuesday, February 19, 2013

Install GitHub with free GUI for a Mountain Lion computer

Goal: Install GitHub on a os 10.7.5 system (Mountain Lion).

From, it automatically downloaded  "git-".  Installed the pkg file.

From, download the free GUI. File "mac_GitHub for Mac" was downloaded. Unzip this file give the GitHub application.

This was shown to be an "Application", so I dragged it to "Application" folder. Double-click this application, the following welcome window was shown.

Then it asked for name and email that will be used in the commits. It seems that a public email address has to be used. So, I chose I am not sure whether the name is the Github username or not, I input my username.

I then click "Intall Command Line Interface", and the root password was asked.

Then, it indicated that github tool was installed at /usr/local/bin/github.
"Continue" and it ask for Github username and password.

I entered github username and password, click "log in",

Confirmed this, and Continue.

I chose test to check the installation.

After 'pushing' the commit, I saw the 'test' repository on my GitHub page. Good. The installation is completed.

I then want to clone my existing repository on GitHub. It worked. Now, how to make the local copy a master-repository? It seems it clone the repository as 'master' by default under my GitHub account, which can be seen at the right corner of the bottom panel of the GUI window. 

Although GUI-GitHub is easy to use, I had trouble to sync large folder using the GUI interface. In contrast, command line seem to work better.
 $ git push --force origin master

Monday, February 18, 2013

Screencast on Mountain Lion using Quicktime and iMoive

On mountain lion OS, Quicktime allow selection of screen area for screen cast. I use Gimp and a blackground picture and adjust the canvas to 4:3 in size for youtube. At the end of recoding, Quicktime will save the video in *.mov format. I then use iMovie to edit them, and share them to Youtube within iMovie.

On Maverick,  generated movie can crop some edges. In this case, "Fit" style can be selected. During editing, "fit" can be applied to different time points. This is probably a feature that can used to zoomin on sth.

Friday, February 15, 2013

osX empty trash error -8003

Error -8003 occurred when I try to empty the Trash bin on Snow leopard.

I 'mv' all file from .Trash/ to tmp/. I then 'rm -rf [a-Z]*', and deleted a lot of files. This enable me to find that files like "-BamBth.nwk" is the problem. The '-' at the start of these filenames were treated like switched. I then manually renamed all these files, and it solved the problem.

Thursday, February 14, 2013

ifconfig down and up in osX

To reset a nework interface in osX

sudo ifconfig en1down
sudo ifconfig en1 up

Saturday, February 9, 2013

Customerize a heatmap with clustering panel in R

pdf("_20130209.average.hclust.2.coat.pdf", height=5, width=5);
 mymethod = "average";
 hd =  hclust( dist(ctb2), mymethod); = cutree(hd, numclus )
 #col.palette = c("red","brown","blue","green");
 col.palette = c("blue","red"); #2013 Feb 9 change
 coat.color = col.palette[]

 hcol =  hclust(dist( t(ctb2)), method=mymethod )
 #hcol =  as.dendrogram( hclust(dist( t(ctb2)), method=mymethod ) )

 #hmcol = colorRampPalette(brewer.pal(5,"RdBu"))(16);

 #using the default heatmap function
 heatmap( ctb2, col=c("red","blue"), scale="none", margins = c(5,22),
 #Colv = NA,  ## no dedrogram
 #Colv = FALSE, ## use the input column order, 
 #Colv = as.dendrogram( hclust(dist( t(ctb2)), method=mymethod ) ),
 RowSideColors=coat.color, # ColSideColors = spec.colors, #20130209
 hclustfun = function(c) hclust( c, method=mymethod),
 cexRow=0.4, cexCol=0.6 );;

Friday, February 8, 2013

Spelman Phone Usage

  • To access voice mail off campus, dial 404-270-6500. Press #. Enter mail box number. Enter password, followed by #. 
  • To access voice mail on campus, dial 6500, enter password and #. 
  • For forward calls, press *2, enter extension; listen for 3 short beeps and then hang up. To cancel, lift receiver and press #2. 

Thursday, February 7, 2013

For Spelman students that want to take summer courses

Instruction for students to take summer courses, based on Dean Baxter's response. 

Students wanting to take summer school courses should check with their department chair if the course is required by the major and the chairperson of the department in which the course is offered.  If a student who is a biology major wants to take calculus, for example, she would need to talk to Chair of Biology Dept (Dr. Lee) and Chair of the math department (Dr. Ehme).   The student would need to identify the school (which has to be an accredited school) and provide a course description of the course to the chair-- Dr. Ehme in this case.   If it is a general education requirement, she will need to get the chair's approval (chair of the department in which the course is offered) and the approval of her advisor (you) and the academic dean.  Students can get the summer school application from the Registrar's Office (the academic calendar posted on the website typically lists the date forms are available) and a transient letter from the Dean's Office (It is a letter that is sent to the prospective school to verify the enrollment status of the Spelman student and to give the school permission to allow the Spelman student to register as a transient student.  Grades earned by transient students can be transferred to Spelman, thereby allowing the students to earn the credit (hours) and grade.  Simply put, here are the steps: 
1.  Student identifies accredited college ( 2 year, 4 year or community college) 
2.  Student gets a description of desired course from website or school's bulletin (catalog). 
3.  Student gets a summer school application from Registrar's Office once applications are available (see academic calendar for available date). 
4.  Student meets with chair of department in which course is offered and presents description of course. 
5.  If course is comparable, department chair will sign application to approve course. 
6.  Students then meets with her departmental chair or faculty advisor to secure permission to take course. 
7.  Students comes to Dean's Office (Rockefeller 103) to get final approval signature and transient letter. 
8.  Once student has completed the course, she must request an  official transcript of the grade (s) be sent to Spelman by deadline noted on academic calendar. 

Wednesday, February 6, 2013

Student evaluation on Lotus Note for Spelman College Faculty

Spelman Research Day 2013, April 19

The 2003 Spelman Rearch Day will occur on Friday, April 19th from 8:00 AM to 5:00 PM. Research Day embodies the capstone experiences of our students-their scholarly quest to inquire, discover, imagine, explore and create. Research Day is one of the liveliest events in the Spelman year, featuring students' scholarly and creative work , and the ideal opportunity for undergraduates to showcase their capstone research experience across all academic disciplines. Please encourage
your students to submit their abstracts/summaries of work by the deadline: 11:59 PM, Sunday, March 10th . Abstracts are limited to 250 words. The following link may be used for submissions effective today:

Please read the following key points for faculty and staff members:
  • If you have advised a student on a project, please encourage her to submit an abstract/summary of her work for Research Day. Please work closely with your student in the development of her abstract.
  • If you are the advisor to a student’s project, you will receive an email requesting your approval of her abstract once she submits her work. You will need to do this through Lotus Notes.
  • Please ensure that you have space in your email to receive notification that your student has submitted an abstract.
  • The deadline for you to approve students’ abstracts is March 10th.
  • Please announce Research Day 2013 to all of your students.

Research Day 2013 is an opportunity for students to showcase their academic accomplishments, and for many it is one of the first steps they take while at Spelman which illustrates academic excellence. We encourage each student to participate in Research Day 2013, and consider this as a true gateway to reaching excellence within her chosen field.

List of interesting cases for Bio380 critical analysis in biology

This is my working list.

west nile virus

arsenic apple juice

metric, american science literacy. Students seem to prefer this one.
NSF survey on scientific literacy

parents age and health (SAT score), probably not a politically correct one.

Konita BizHub printer set up, 10.6+ osX

The Konita Bizhub 601 diver can be found at:

or (used by the IT rep)

For my Snow Leopard Laptop, I chose Mac OS 10.6.x - Drivers, and downloaded file to my mac.

Unzip the downloaded files gave two folders: WW_Letter, and WW_A4. Each folder contains a file I chose WW_Letter, double-click the zipfile inside, and pkg file is generated. Double-click the pkg file, follow the prompt to install the driver.  Administrator's password was asked during the installation process. Then a green circle with check appears, "installation was successful". I closed the installation window.

Go to Systems Preference, choose Print and Fax. Click "+", choose "IP",
Protocol: Line Printer Daemon-LPG,
Name: Biology
Print Using: Konica Minolta 601 PS (This was chosen automatically after 1-2 seconds)

Then click "Add", I then chose for
Paper source unit: LU-405
Finisher: FS-524
Punch Z-fold Unit: None

Click "Add", and the printer appear in "Print and Fax"'s list of printers.

I tried to print a test page, but was unable to, because the authentication was never setup.

It turns the authentication is in print control.