Technology Review: Liver Models Go to Market

Technology Review: Liver Models Go to Market:
'Only one of every ten compounds tested by pharmaceutical companies becomes a product, says Shuler, and half of the failures are due to toxicity.'


(There's the bottleneck which cheminformatics has not been able to widen.)

'"The liver is a complex organ that has many different cell types," says Tannenbaum. These cells exchange chemical signals and even exert mechanical forces on each other that help maintain their function...'

'"In order to get any functionality [in a model], you have to have multiple cell types organized into a structure like a liver," he says. When cells are taken out of the liver and cultured using traditional means, their gene-expression profiles change very quickly, and they begin to deteriorate in a few days.'
'For four to six weeks, [Hepregen's] cells maintain gene-expression profiles comparable to those of liver cells in the human body; they continue to produce the enzymes that break down and modify drugs; and they even form functioning bile ducts, important transport systems in the liver.'


MIT's News Office has a similar article.

Drug brings hope for a universal flu vaccine - health - 27 October 2007 - New Scientist

Drug brings hope for a universal flu vaccine - health - 27 October 2007 - New Scientist

Ordinary flu vaccine contains dead influenza A viruses from the H1 and H3 families. When the researchers put this, plus the RNA-like drug Ampligen, into the noses of mice, the mice made antibodies not only to the vaccine viruses but also to H5N1 bird flu - without ever having been exposed to it. Better, when groups of nasally vaccinated mice were exposed to different strains of live H5N1, [at least half] of each group survived... The team think antibodies in mucus reacting with proteins in the virus could be key.

Volcanic clay found to kill 99 per cent of MRSA superbugs

Volcanic clay found to kill 99 per cent of MRSA superbugs:
[Researchers] said that the clay was found to wipe out bug colonies in a day during laboratory experiments. They also revealed that control samples of MRSA, which were not treated with agricur, grew 45-fold over the same period.

The World health Organisation welcomed [the work of French doctor Line Brunet de Course] when she approached it in 2002 with 50 case studies. However, it denied her funding because of a lack of scientific evidence.
"It is possible that it is not one single element that is toxic to the bacteria."
The researchers also backed the possibility that the clay worked through a physical rather than a biochemical process, meaning that bacteria could never develop resistance. "It's fascinating. Here we are bridging geology, microbiology, cell biology. A year ago, I'd look at the clay and say, 'Well, that's dirt,'" Dr Haydel, a microbiologist, said.

CherryPy 3: interpreting error messages

I'm stubbing out a method in a nested CherryPy application object. I keep getting error messages of the form

File "/path/to/CherryPy-3.0.2-py2.5.egg/cherrypy/_cprequest.py", line 551, in respond
    cherrypy.response.body = self.handler()
File "/path/to/CherryPy-3.0.2-py2.5.egg/cherrypy/_cpdispatch.py", line 24, in __call__
    return self.callable(*self.args, **self.kwargs)
TypeError: 'Data' object is not callable

And the cause? Almost every time, in the browser I've mistyped the URL for my server's Ajax method. I might be invoking foo instead of bar, and the result is always this sort of error message.

Why don't I instead get the old "We didn't find anything"? Dunno. It's probably something in my configuration.

New Scientist: Cold weather really does spread flu

Cold weather really does spread flu - New Scientist Environment

Flu virus can spread without the aid of coughing/sneezing -- you just gotta breathe. It stays in suspension longer in cold, dry air than in warm, moist air. And it doesn't help that mucus flows more poorly in cold weather.

"...Virtually no lab animals get it the way humans do... The most useful animal has been the ferret... “They’re big, they’re expensive, and they bite,” Peter Palese of Mount Sinai Medical School in New York City told New Scientist.

In 1919, US Army doctors at Camp Cody in New Mexico reported (Journal of the American Medical Association, vol 72 p1056) that the 1918 flu pandemic had killed their guinea pigs – kept at the time for medical tests. “We didn’t know guinea pigs got flu,” says Palese. They are no longer popular lab animals, and no-one had tried them."


Bad news for air travelers:
"“It spread just in the air they exhaled,” says Palese. “Guinea pigs with flu don’t cough or sneeze.”"


Canon Scanners, Spotlight and OCR

When I scan receipts and invoices with my Canon LIDE 600F, OS X's Spotlight somehow, magically, is able to find them based on their text content. But I'm just scanning the documents, not running OCR software on them.

For example, this morning I scanned the receipt for my new MacBook, so I could send it in for a shipping rebate. Just for grins I then did a Spotlight search for "MacBook". There it was, near the top of the list.

mdls showed that "MacBook" didn't appear anywhere in the file's metadata. And the filename, "File0001.PDF", certainly didn't match. Yet somehow mdfind identified it as a match.

Searching for the string "MacBook" in the PDF turned up nothing. (Granted, I used 'strings -a' to extract the strings, and that command is ASCII only.)

Google, and David Creemer, provided the answer. Creemer also showed that the text in "CanoScanned" documents is selectable in Preview.app.

What's going on? It seems that the CanoScan Toolbox application is automatically performing OCR when it finishes scanning documents. For more info see zachary.com : Easy and cheap PDF Document Management (with OCR) on Mac OS X.

Synergy kudos to Canon and Apple!

Ted Leung summarizes Erlang

Some simple thoughts...:
Semantically, there is a lot to like about Erlang - the actor based concurrency model, hot code swapping, higher order functions, and (once one gets used to it) pattern matching. The OTP libraries have been refined by many years of production usage in demanding, commercial applications.

Posting Syntax-Highlighted Code to the Web, Redux

Following up on July's post, I've modified my TextMate 'rawhtml' command so it no longer generates inline <style> sections. (They may work, but AFAIK <style> should appear only in a document's <head>.)

Instead, the command now wraps its output in a div of class SourceCode, and it expects the containing web page to include an appropriate <style> section.

Here's a test to see if this works :) I've added the following CSS to the Bottled Text template HTML:

div.SourceCode {
  font-family: "Bitstream Vera Sans Mono", "Monaco", monospace;
  font-size: 12px;
  width: 500px;
  overflow: auto;
  margin: auto;
  white-space: nowrap;
  padding: 4px;
  background-color: #ffffff;
  border: 1px solid #777788;
}
div.SourceCode .comment {
  font-style: italic;
  color: #888;
}
div.SourceCode .keyword {
  font-weight: bold;
}
div.SourceCode .string {
  color: #00F;
}
div.SourceCode .entity {
  text-decoration: underline;
}
div.SourceCode .storage {
  color: #888;
}
div.SourceCode .support {
  color: #0b0;
}
div.SourceCode .constant, div.SourceCode .variable {
  color: #F0F;
}

The "rawhtml" command script now looks like this:

#!/bin/sh
cat <
HTML perl -pe 's/<\/[^>]+>/<\/span>/g' \ | perl -pe 's/<([^\/.>]+)[^>]*>//g' \ | perl -pe 's/\t/   /g' echo "
"

To get a realistic preview in MarsEdit, click the "Edit Template" button in the preview window and add a <style> section to the preview template for your blog. Paste in the CSS above and you're good to go.

Posting Syntax-Highlighted Code to the Web

Awhile back I noted some ways to copy syntax-highlighted text from TextMate to other applications like VoodooPad and MarsEdit. In some cases it was a simple procedure of two or three steps. But getting syntax-highlighted text into MarsEdit was comparatively tedious.

In all cases the procedure started with the Experimental -> View Document as HTML bundle. This morning I finally got around to browsing that bundle's definition and lo! it's just a simple Perl script invocation.

Better yet, it can act on either a complete document or just the text you've selected within that document. So if you want to post a code snippet? No problem.

It's also easy to make a copy of the bundle which, instead of creating a new HTML document, creates a plaintext document containing the HTML mark-up. You can copy the contents of this document and paste it directly into MarsEdit. (With a few caveats, i.e. you need to modify the stylesheet to avoid affecting the appearance of your entire post.)

The steps are simple:


  1. Select Bundles->Bundle Editor->Show Bundle Editor...

    Picture 4.png

  2. Browse into Experimental and select the View Document as HTML command

    Picture 5.png

  3. Click the "double-plus" button at the bottom of the window to make a copy of the command

    Picture 6.png

  4. Drag the command to some other bundle. I like to keep custom snippets, commands and templates in an @My Stuff bundle, which won't get overwritten when I upgrade TextMate

  5. Select the copied command. Rename it as you see fit, e.g. Format as Raw HTML

  6. Change the Output popup menu's value from Show as HTML to Create New Document

    Picture 8.png



That's it! Now you can select some code which you want to post, select your new command from the Bundles menu, and get a window with (almost) ready-to-post HTML markup.

Next Steps


Keyboard Navigation


If you come from (X)Emacs and wish you could invoke the bundle without having to navigate through a menu hierarchy, you can. Just use Control-Command-T to bring up the Select Bundle Item command window. Then type in the name of your new command, and hit return.

Picture 11.png

If you want to feel even more at home you can give your bundle a name which "feels like" an Emacs command. I've been trying single-word "command name" prefixes, like "rawhtml - Format as Raw HTML". The idea is to give your command both a quick-to-type "command" name, so you can get to it quickly in the command window, and a human-readable name so you can remember what it does :)

Limiting the Scope of the Styling


I haven't had time to do further customizations to the command. The next thing to tackle will be the stylesheet which it generates -- it's written to address an entire document, so it applies styles to e.g. the body element. I'd like to customize the generated HTML so it puts everything into a div with a unique timestamp for its id, and to modify the CSS so it applies only to that div. That'll make it easier to create markup that can be dumped directly into a blog regardless of what else might be on the blog page.


Update:
Turns out it was easy to modify the generated styesheet, and to wrap the output in a timestamped div. I'm not sure how righteous it is to include a style block inside the body of a blog post, rather than the head, but it renders okay in WebKit and Firefox 2.



Here's the source code for the command, as rendered by itself :)

[Not any more; this is a pre "prettyprint" div. -- Mitch 20151116]

<><>

#!/bin/sh
now=date +'%Y%m%d%H%M%S'

cat <
   #source_${now} {
font-family: "Bitstream Vera Sans Mono", "Monaco", monospace;
font-size: 12px;
width: 400px;
overflow: auto;
margins: auto;
padding: 4px;
background-color: #ffffff;
border: 1px solid #777788;
}
   #source_${now} .comment {
font-style: italic;
color: #888;
}
   #source_${now} .keyword {
font-weight: bold;
}
   #source_${now} .string {
color: #00F;
}
   #source_${now} .entity {
text-decoration: underline;
}
   #source_${now} .storage {
color: #888;
}
   #source_${now} .support {
color: #0b0;
}
   #source_${now} .constant, #source_${now} .variable {
color: #F0F;
}

HTML perl -pe 's/<\/[^>]+>/<\/span>/g' \ | perl -pe 's/<([^\/.>]+)[^>]*>//g' \ | perl -pe 's/\t/   /g' echo "
"