True's beaked whale.jpg

Western spotted skunk

Hooded skunk

Yellow-throated Marten


Archive for February, 2009

Idea: clearing pre-cancerous cells

Tuesday, February 17th, 2009

Cells become cancerous through a multi-step process. The cells pick up several mutations, each clearing a natural limit on cell division and usually increasing the rate at which the cells divide. By the time a person gets old their body has many pre-cancerous clumps of cells, and cancer occurs when one of the cells in one of the clumps picks up a final mutation and becomes fully cancerous.

Cancer has proven very difficult to treat, but perhaps it is easier to treat at the pre-cancerous stage. The idea would be to treat healthy people at middle age or later and kill most of their pre-cancerous cells. This would make the pool of cells that can develop into cancer much smaller and reduce the incidence of cancer.

Chemical chemotherapy drugs would be a poor choice for this–I expect they are not effective on slowly dividing pre-cancerous cells and these drugs are also damaging.

Instead, it may be possible to trigger apoptosis (cell suicide) in pre-cancerous cells. These cells are losing their differentiation and activating abnormal signaling pathways. They are likely stressed and may already be primed to undergo apoptosis. One of the organism’s anti-cancer mechanisms is to trigger apoptosis in pre-cancerous cells. The idea here is to supercharge this mechanism.

So the idea would be to treat the person with a cocktail of drugs that induces apoptosis by activating the apoptotic signaling pathways. The treatment should be strong enough to trigger a wave of apoptosis in the most susceptible cells clearing most pre-cancerous cells from the body. There would be some normal cells killed as well but they will be replaced by normal tissue processes.

Picking traits in children

Tuesday, February 17th, 2009

There’s discussion on blogs today about an LA Times editorial highlighting the news that an LA fertility clinic is offering selection of a few non-health related traits in embryos.

This technology was first developed for and used to screen out dangerous genetic disease traits. Couples who both carry the allele for a deadly genetic disease have a 1 in 4 chance of having a child with the disease (in some situations the child would have a 1 in 2 chance). IVF combined with embryo testing allows these couples to have a healthy child. A couple has embryos created through IVF and then a cell from the 8-cell stage embryo is removed and tested for a trait. Apparently some fertility clinics now offer gender selection and will offer selection based on “eye color, hair color and complexion”.

This technology has inherent limits–embryos are being selected from a pool of 6-10 that are created by a round of IVF. So only simple, single gene traits can be picked. If you want a boy the pool is cut in half and now the parents are picking from 3-5 embryos. If both parents have the simplest eye color situation and both carry an allele for blue eyes, 1 in 4 embryos will have it. Parents get at most two choices of simple single gene traits and few traits are determined by a single gene.

Very little is known today about normal human genetics, that is what genes to test for, but that will change and is not an inherent limit to this technology. The curious fact that we know almost nothing about the genetics of normal human traits is a story for another day.

In a few years when we have a better understanding of medical genetics parents will be able to pick the embryos with the fewest and least severe set of disease gene alleles (and even then each embryo will have many bad traits). This choice will for almost all parents trump select of any other trait. Who would pick a green-eyed baby with a 90% lifetime risk of heart disease over a one with a 10% heart disease risk and brown eyes? So concern about IVF clinics offering this is wasted breath, it is a passing notion that will last a few years at most.

This technology has no prospect of offering more detailed choices for parents. More choices would require selecting among more embryos (or among more sperm and eggs), and nothing like that is on the horizon, i.e. it won’t happen in the next thirty years.

Rare as a total eclipse–a useful Slashdot article

Monday, February 9th, 2009

Today Slashdot had an ‘Ask Slashdot’ post asking the question “Mathematics Reading List For High School Students?” Slashdot reader comments usually start are typically dismal and often worse. The only useful comments I’ve seen come to questions both technical and obscure. Looking for a Scheme compiler for the Commodore 64 or tools for hacking a router and Slashdot commenters can help.

But today a rare gem, an interesting question of general interest on /. worth reading. Here’s a summary of the suggestions:

(the obvious: Flatland, GEB)

How to Lie with Statistics by Darrell Huff, 1954
Men of Mathematics by E. T. Bell
How to Think Like a Mathematician: A Companion to Undergraduate Mathematics by Kevin Houston
All the Mathematics You Missed But Need to Know for Graduate School by Thomas A. Garrity
Prisoner’s Dilemma by William Poundstone
Schaum’s Outline of Linear Algebra by Seymour Lipschutz
The Feynmann Lectures on Physics by Richard Feynman, Robert Leighton, and Matthew Sands
Surely You’re Joking, Mr. Feynman by Richard Feynman
Bringing Down the House: The Inside Story of Six M.I.T. Students Who Took Vegas for Millions by Ben Mezrich
The Golden Ratio: The Story of PHI, the World’s Most Astonishing Number by Mario Livio
Fermat’s Last Theorem by Simon Singh
The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography by Simon Singh
The Codebreakers: The Comprehensive Story of Secret Communication from Ancient Times to the Internet by David Kahn
Against the Gods: The Remarkable Story of Risk by Peter Bernstein
Knots : Mathematics with a Twist by A. B. Sossinsky
The Little Schemer by Daniel P. Friedman and Matthias Felleisen
The Pleasures of Counting by Thomas William Körner
Innumeracy and A Mathematician reads the Newspaper by John Allen Paulos
The Shape of Space by Jeff Weeks
‘e’: The Story of A Number by Eli Maor
What is mathematics? by Courant and Robbins
A Pathway Into Number Theory by R. P. Burn
Zero: The Biography of a Dangerous Idea by Charles Seife
A Long Way From Euclid by Constance Reid

and to add a few not mentioned:
Chaos by James Gleick
Five Equations That Changed the World: The Power and Poetry of Mathematics by Michael Guillen
Mathematical People: Profiles and Interviews by Donald J. Albers and Gerald L. Alexanderson

And last and best, any of the books of Martin Gardner’s Recreational Mathematics columns from Scientific American.

Spelunking partition tables with testdisk

Friday, February 6th, 2009

I have my home directories on a separate drive from the OS, and after upgrading Fedora I went to remount my home directory and ran into problems. First off, the new Fedora had renamed hda as sda and so all the drive naming was off. I had my home directory disk mirrored in RAID 1, but some months ago one the the drives went bad and I dropped it from the array but left it plugged in until I had time to deal with it.

So I looked around for my home directory disk and mounted the one that had gone bad. It was working fine when I mounted it, so I didn’t notice until a few days later when it I noticed recently created files were missing and eventually figured it out.

So I could find the ‘good’ home directory disk and mount it, right? Not so easy, it turned out to have a small ext2 partition and a large LVM partition. Which is not the way it should be, it should have one partition. I mount the small one, and it throws ‘read past end of disk’ errors. It takes quite a while to figure out how to mount and read the LVM partitions. LVM is a really, really idea. The LVM tools couldn’t find a filesystem on the LVM partition, and after much hair pulling I realized that there really *wasn’t* one, that the partition shouldn’t exist. Because it was LVM, this took about 10X longer than it should have.

Now running with the hypothesis that the home directory disk had picked up a disk error in the partition table (Argg^&@$#@!), I made a backup image of the drive using dd:

dd if=/dev/hdc of=/data/hdc_copy.bin

Then I mounted the image as a loopback device:

losetup /dev/loop0 /data/hdc_copy.bin

And started working with the image to repair it. Looking around, testdisk seemed promising, so I installed it, ran it. Testdisk finds potential partitions on the disk, and lets you view the files in them to see if it has guessed right. After a few tries I found a testdisk partition that contained my home directories. At this point I used testdisk’s copy function to save the most critical recently (no backup) changed directories. This worked and I was hopeful. Then I had testdisk write the partition it had found to the disk image.

Now running fdisk on /dev/loop0 shows the single partition (/dev/loop0p1) spanning the whole disk as expected. /dev/loop0 can’t be mounted by itself as it is an image of the disk, not a file system (/dev/loop0p1 isn’t a device in /dev, just a fdisk label). So I had to mount the partition as a second loopback device using the info from fdisk to find the correct offset:

Disk /dev/loop0: 203.9 GB, 203928109056 bytes
1 heads, 1 sectors/track, 398297088 cylinders, total 398297088 sectors
Units = cylinders of 1 * 512 = 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/loop0p1 64 398283327 199141632 83 Linux

So I tried an offset of 64 * 512 = 32768:

losetup -o 32768 /dev/loop1 /dev/loop0

and then ran e2fsck on /dev/loop0. But e2fsck wasn’t happy, and none of the alternate superblocks worked either. Finally I found a reference to doing this that mentioned setting fdisk to sectors first:

Command (m for help): u
Changing display/entry units to sectors

Command (m for help): p

Disk /dev/loop0: 203.9 GB, 203928109056 bytes
1 heads, 1 sectors/track, 398297088 cylinders, total 398297088 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/loop0p1 63 398283326 199141632 83 Linux

Ah ha, the sector offset is *really* 63, so 63 * 512 = 32256 bytes, and after

losetup -o 32256 /dev/loop1 /dev/loop0

e2fsck now sees the file system and works! BTW sending e2fsck the SIGUSR1 signal makes it show a progress bar:

kill -s SIGUSR1 <e2fsck pid>

and after e2fsck completes I can mount the now good file system:

mount /dev/loop1 /mnt/home_recover
and it works!

With a good copy of the home directory filesystem I now was willing to risk changing the original drive, and ran testdisk and e2fsck on it following the same course. I was able to fix the partition table, clean the filesystem, and mount it! My home directories are all back!