MIT Research News' Journal
 
[Most Recent Entries] [Calendar View]

Wednesday, October 16th, 2013

    Time Event
    4:00a
    Dude, where’s my code?
    Compilers are computer programs that translate high-level instructions written in human-readable languages like Java or C into low-level instructions that machines can execute. Most compilers also streamline the code they produce, modifying algorithms specified by programmers so that they’ll run more efficiently.

    Sometimes that means simply discarding lines of code that appear to serve no purpose. But as it turns out, compilers can be overaggressive, dispensing not only with functional code but also with code that actually performs vital security checks.

    At the ACM Symposium on Operating Systems Principles in November, MIT researchers will present a new system, dubbed Stack, that automatically combs through programmers’ code, identifying just those lines that compilers might discard but which could, in fact, be functional. Although the paper hasn’t appeared yet, commercial software engineers have already downloaded Stack and begun using it, with encouraging results.

    As strange as it may seem to nonprogrammers — or people whose only experience with coding is on small, tightly managed projects — large commercial programs are frequently full of instructions that will never be executed, known as “dead code.” When hundreds of developers are working on an application with millions of lines of code that have been continually revised for decades, one of them may well end up inserting a seemingly innocuous condition that ensures that a function thousands of lines away, written by someone else, never gets executed. Dead code is ubiquitous, and compilers should remove it.

    Problems arise when compilers also remove code that leads to “undefined behavior.” “For some things this is obvious,” says Frans Kaashoek, the Charles A. Piper Professor in the Department of Electrical Engineering and Computer Science (EECS). “If you’re a programmer, you should not write a statement where you take some number and divide it by zero. You never expect that to work. So the compiler will just remove that. It’s pointless to execute it anyway, because there’s not going to be any sensible result.”

    Defining moments

    Over time, however, “compiler writers got a little more aggressive,” Kaashoek says. “It turns out that the C programming language has a lot of subtle corners to the language specification, and there are things that are undefined behavior that most programmers don’t realize are undefined behavior.”

    A classic example, explains Xi Wang, a graduate student in EECS and first author on the new paper, is the assumption that if a program attempts to store too large a number at a memory location reserved for an integer, the computer will lop off the bits that don’t fit. “In machines, integers have a limit,” Wang says. “Whenever you exceed that limit, the input value basically wraps around to a smaller value.”

    Seasoned C programmers will actually exploit this behavior to verify that program inputs don’t exceed some threshold. Rather than writing a line of code that, say, compares the sum of two numbers to the known threshold for an integer (“if a + b < int_max”), they’ll check to see whether the sum of the numbers is smaller than one of the addends (“if a + b > a”) — whether, that is, the summation causes the integer to wrap around to a smaller value.

    According to Wang, programmers give a range of explanations for this practice. Some say that the intent of the comparison — an overflow check — is clearer if they use integer wraparound; others say that the wraparound comparison executes more efficiently than the more conventional comparison; and some maintain that it avoids cluttering up their code with unneeded terminology (like “int_max”). But whatever the reason, while the wraparound check works fine with unsigned integers — integers that are always positive — it is, according to the C language specification, undefined for signed integers — integers that can be either positive or negative.

    As a consequence, some C compilers will simply discard the wraparound comparison. And sometimes, that can mean dispensing with a security check that guarantees the program’s proper execution.

    The fine print

    Complicating things further is the fact that different compilers will dispense with different undefined behaviors: Some might permit wraparound checks but prohibit other programming shortcuts; some might impose exactly the opposite restrictions.

    So Wang combed through the C language specifications and identified every undefined behavior that he and his coauthors — Kaashoek and his fellow EECS professors Nickolai Zeldovich and Armando Solar-Lezama — imagined that a programmer might ever inadvertently invoke. Stack, in effect, compiles a program twice: once just looking to excise dead code, and a second time to excise dead code and undefined behavior. Then it identifies all the code that was cut the second time but not the first and warns the programmer that it could pose problems.

    The MIT researchers tested their system on several open-source programs. In one case, the developers of a program that performs database searches refused to believe that their code had bugs, even after they’d examined the instructions flagged by Stack. “Xi sent them a one-line SQL statement that basically crashed their [application], by exploiting their ‘correct’ code,” Kaashoek says.

    Mattias Engdegård, an engineer at Intel, is one of the developers who found Stack online and has already applied it to his company’s code. “Stack is very carefully designed to have a very low false-positive ratio,” Engdegård says. Nonetheless, “it found some errors that no other static-analysis tool had found before,” he says, resulting in “one or two dozens of instances of code changes.”

    “This could be some kind of harbinger of things to come,” Engdegård adds. “I think static analyzers are going to focus on these sort of things in the future.”
    4:00a
    Finding blood clots before they wreak havoc
    Life-threatening blood clots can form in anyone who sits on a plane for a long time, is confined to bed while recovering from surgery, or takes certain medications.

    There is no fast and easy way to diagnose these clots, which often remain undetected until they break free and cause a stroke or heart attack. However, new technology from MIT may soon change that: A team of engineers has developed a way to detect blood clots using a simple urine test.

    The noninvasive diagnostic, described in a recent issue of the journal ACS Nano, relies on nanoparticles that detect the presence of thrombin, a key blood-clotting factor.

    Such a system could be used to monitor patients who are at high risk for blood clots, says Sangeeta Bhatia, senior author of the paper and the John and Dorothy Wilson Professor of Biochemistry.

    “Some patients are at more risk for clotting, but existing blood tests are not consistently able to detect the formation of new clots,” says Bhatia, who is also a senior associate member of the Broad Institute and a member of MIT’s Koch Institute for Integrative Cancer Research and Institute for Medical Engineering and Science (IMES).

    Lead authors of the paper are Kevin Lin, a graduate student in chemical engineering, and Gabriel Kwong, a postdoc in IMES. Other authors are Andrew Warren, a graduate student in Health Sciences and Technology (HST), and former HST postdoc David Wood.

    Sensing thrombin

    Blood clotting is produced by a complex cascade of protein interactions, culminating in the formation of fibrin, a fibrous protein that seals wounds. The last step of this process — the conversion of fibrinogen to fibrin — is controlled by an enzyme called thrombin.

    Current tests for blood clotting are very indirect, Bhatia says. One, known as the D-dimer test, looks for the presence of fibrin byproducts, which indicates that a clot is being broken down, but will not detect its initial formation.

    Bhatia and her colleagues developed their new test based on a technology they first reported last year for early detection of colorectal cancer. “We realized the same exact technology would work for blood clots,” she says. “So we took the test we had developed before, which is an injectable nanoparticle, and made it a thrombin sensor.”

    The system consists of iron oxide nanoparticles, which the Food and Drug Administration has approved for human use, coated with peptides (short proteins) that are specialized to interact with thrombin. After being injected into mice, the nanoparticles travel throughout the body. When the particles encounter thrombin, the thrombin cleaves the peptides at a specific location, releasing fragments that are then excreted in the animals’ urine.

    Once the urine is collected, the protein fragments can be identified by treating the sample with antibodies specific to peptide tags included in the fragments. The researchers showed that the amount of these tags found in the urine is directly proportional to the level of blood clotting in the mice’s lungs.

    In the previous version of the system, reported last December in Nature Biotechnology, the researchers used mass spectrometry to distinguish the fragments by their mass. However, testing samples with antibodies is much simpler and cheaper, the researchers say.

    Rapid screening

    Bhatia says she envisions two possible applications for this kind of test. One is to screen patients who come to the emergency room complaining of symptoms that might indicate a blood clot, allowing doctors to rapidly triage such patients and determine if more tests are needed.

    “Right now they just don’t know how to efficiently define who to do the more extensive workup on. It’s one of those things that you can’t afford to miss, so patients can get an unnecessarily expensive workup,” Bhatia says.

    Another application is monitoring patients who are at high risk for a clot — for example, people who have to spend a lot of time in bed recovering from surgery. Bhatia is working on a urine dipstick test, similar to a pregnancy test, that doctors could give patients when they go home after surgery.

    “If a patient is at risk for thrombosis, you could send them home with a 10-pack of these sticks and say, ‘Pee on this every other day and call me if it turns blue,’” she says.

    The technology could also be useful for predicting recurrence of clots, says Henri Spronk, an assistant professor of biochemistry at Maastricht University in the Netherlands.

    “High levels of activation markers have been related to recurrent thrombosis, but they don’t have good sensitivity or specificity. Through application of the nanoparticles, if proven well-tolerated and nontoxic, alterations in the normal low levels of physiological thrombin generation might be easily detected,” says Spronk, who was not part of the research team.

    Bhatia plans to launch a company to commercialize the technology, with funding from MIT’s Deshpande Center for Technological Innovation. Other applications for the nanoparticle system could include monitoring and diagnosing cancer. It could also be adapted to track liver, pulmonary, and kidney fibrosis, Bhatia says.

    The research was funded by the Koch Institute Frontier Research Fund, the Kathy and Curt Marble Cancer Research Fund, the Mazumdar-Shaw International Oncology Fellows Program, the Burroughs Wellcome Fund, and the Deshpande Center.
    4:00p
    Schizophrenia linked to abnormal brain waves
    Schizophrenia patients usually suffer from a breakdown of organized thought, often accompanied by delusions or hallucinations. For the first time, MIT neuroscientists have observed the neural activity that appears to produce this disordered thinking.

    The researchers found that mice lacking the brain protein calcineurin have hyperactive brain-wave oscillations in the hippocampus while resting, and are unable to mentally replay a route they have just run, as normal mice do.

    Mutations in the gene for calcineurin have previously been found in some schizophrenia patients. Ten years ago, MIT researchers led by Susumu Tonegawa, the Picower Professor of Biology and Neuroscience, created mice lacking the gene for calcineurin in the forebrain; these mice displayed several behavioral symptoms of schizophrenia, including impaired short-term memory, attention deficits, and abnormal social behavior.

    In the new study, which appears in the Oct. 16 issue of the journal Neuron, Tonegawa and colleagues at the RIKEN-MIT Center for Neural Circuit Genetics at MIT’s Picower Institute for Learning and Memory recorded the electrical activity of individual neurons in the hippocampus of these knockout mice as they ran along a track.

    Previous studies have shown that in normal mice, “place cells” in the hippocampus, which are linked to specific locations along the track, fire in sequence when the mice take breaks from running the course. This mental replay also occurs when the mice are sleeping. These replays occur in association with very high frequency brain-wave oscillations known as ripple events.

    In mice lacking calcineurin, the researchers found that brain activity was normal as the mice ran the course, but when they paused, their ripple events were much stronger and more frequent. Furthermore, the firing of the place cells was abnormally augmented and in no particular order, indicating that the mice were not replaying the route they had just run.

    This pattern helps to explain some of the symptoms seen in schizophrenia, the researchers say.

    “We think that in this mouse model, we may have some kind of indication that there’s a disorganized thinking process going on,” says Junghyup Suh, a research scientist at the Picower Institute and one of the paper’s lead authors. “During ripple events in normal mice we know there is a sequential replay event. This mutant mouse doesn’t seem to have that kind of replay of a previous experience.”

    The paper’s other lead author is David Foster, a former MIT postdoc. Other authors are Heydar Davoudi and Matthew Wilson, the Sherman Fairchild Professor of Neuroscience at MIT and a member of the Picower Institute.

    The researchers speculate that in normal mice, the role of calcineurin is to suppress the connections between neurons, known as synapses, in the hippocampus. In mice without calcineurin, a phenomenon known as long-term potentiation (LTP) becomes more prevalent, making synapses stronger. Also, the opposite effect, known as long-term depression (LTD), is suppressed.

    “It looks like this abnormally high LTP has an impact on activity of these cells specifically during resting periods, or post exploration periods. That’s a very interesting specificity,” Tonegawa says. “We don’t know why it’s so specific.”

    The researchers believe the abnormal hyperactivity they found in the hippocampus may represent a disruption of the brain’s “default mode network” — a communication network that connects the hippocampus, prefrontal cortex (where most thought and planning occurs), and other parts of the cortex.

    This network is more active when a person (or mouse) is resting between goal-oriented tasks. When the brain is focusing on a specific goal or activity, the default mode network gets turned down. However, this network is hyperactive in schizophrenic patients before and during tasks that require the brain to focus, and patients do not perform well in these tasks.

    Further studies of these mice could help reveal more about the role of the default mode network in schizophrenia, Tonegawa says.

    The research was funded by the RIKEN Brain Science Institute, the National Institutes of Health, an Alfred P. Sloan Research Fellowship, a NARSAD Young Investigator Award, and the Johns Hopkins Brain Science Institute.
    9:00p
    Separating the good from the bad in bacteria
    There are good bacteria and there are bad bacteria — and sometimes both coexist within the same species.

    Take, for instance, Pseudomonas aeruginosa, a microbe common in soil and water. This bacterium has been found to colonize medical equipment in hospitals and clinics around the world, and can live benignly in healthy individuals. But the bug poses a risk to those with weakened immune systems, and can turn pathogenic in patients with cystic fibrosis, forming thick layers of mucus in the lungs.

    However, determining whether a bacterium is harmful typically requires growing cultures from samples of saliva or blood — a time-intensive laboratory procedure.

    Now MIT researchers have developed a new microfluidic device that could speed the monitoring of bacterial infections associated with cystic fibrosis and other diseases.

    The new microfluidic chip is etched with tiny channels, each resembling an elongated hourglass with a pinched midsection. Researchers injected bacteria through one end of each channel, and observed how cells travel from one end to the other.

    The cells were propelled by a technique called dielectrophoresis, in which voltage exerts a force on a particle. But depending on the cells’ exterior composition, or phenotype, they either passed through the channel’s narrow section or were trapped at the opening.

    Cullen Buie, the Mitsui Career Development Assistant Professor of Mechanical Engineering at MIT, says a bacterium’s reaction to voltage serves as a “fingerprint” for its phenotype, which in turn is a clue to how virulent that particular bacterium can be.

    “Even within one species, we can distinguish different physical characteristics resulting from individual genes, which can cause different levels of disease,” says Buie, who heads the Laboratory for Energy and Microsystems Innovation. “This could help doctors prescribe medication and understand quickly the health of the patient and where the disease is going.”

    Buie, MIT graduate student William Braff, and colleagues Korneel Rabaey at Ghent University, in Belgium, and Dana Willner and Phil Hugenholtz at the University of Queensland, in Australia, have published their results in the journal PLOS ONE.

    Putting up a bacterial force field

    Buie says the outer surface of a cell can tell you a lot about its activity — or, in the case of bacteria, its potential danger. For instance, P. aeruginosa can express hairlike extensions, or pili, on its surface that help the organism swim through its environment and grab onto other cells, forming large, thick films of mucus.

    “For bacteria that cause disease, there’s a lot happening on the outer surface,” Buie says. “They basically change their outer surface, and that can be an indicator of how dangerous they might be.”

    To distinguish among bacterial subtypes, the team first fabricated a millimeter-thick chip, which they then etched with multiple tiny channels. The widest portion of each channel measures 500 microns, about five times the width of a human hair. The channel’s constriction is a much narrower 50 microns.

    The researchers obtained ordinary strains of P. aeruginosa, along with mutant strains that were missing certain genes required to make dangerous biofilms. The team fed the cells through each channel, applying a low voltage. The resulting electric field was much more intense at the narrowest part of each channel, creating a dielectrophoretic force that repels certain cells, depending on their phenotype.

    From their experiments, the researchers found that their device is able to distinguish benign cells from those that are better able to form biofilms.

    The team has yet to test the device using samples that are not pristine: The collected bacteria came from pure cultures, not bodily fluids. Once the researchers make that leap, Buie sees many clinically important applications for the device.

    “A potential implementation could be to run this assay, which tells you, ‘Are the bacteria shifting towards more dangerous strains, or are they still less virulent?’ — and maybe tell you that before the patient starts to exhibit some symptoms,” Buie says.

    A portable test bed

    The team envisions the device may one day be incorporated into a portable, disposable system for clinical use, providing fast results without lengthy lab work.

    Scientists often have to grow several rounds of bacterial cultures before they can determine strains’ phenotypes — but over successive generations, bacterial properties may change.

    The team’s microfluidic device, in contrast, would require no time-consuming culturing, which, in theory, would provide a more accurate picture of how bacteria actually behave in the body.

    Amy Herr, an associate professor of bioengineering at the University of California at Berkeley, says the chip’s ability to separate bacterial strains makes “important contributions to both engineering design and quantitative biology.”

    “On the engineering side, the team has pushed the envelope on dielectrophoresis,” says Herr, who was not involved in the study. “On the biological tools side, the team’s efforts allow striking measurements of bacterial phenotype that provide a new means to differentiate between strains of bacteria, [which is] relevant to health.”

    << Previous Day 2013/10/16
    [Calendar]
    Next Day >>

MIT Research News   About LJ.Rossia.org