COMPARATIVE & ANCESTRAL GENOMICS
Can we tell what the genome of the first mammal looked like? Yes, with a clever analysis of genomes of extant species. We use inferred ancestral genomes and evolutionary scenarios to map the functional regions of the human genome and predict the impact of mutations.
PROTEIN-PROTEIN INTERACTION NETWORKS
These interactions occur when two or more proteins bind together to carry out their biological function. In collaboration with the Coulombe Lab, we are developing the experimental and computational techniques to map this network and the graph algorithms required to analyze it.
Two metres of DNA fit into the nucleus of each cell. The precise way DNA is packaged is highly organized, dynamic, and has major implications on how genes are expressed. In collaboration with the Dostie Lab, we investigate experimental and computational approaches.
We are investigating how to understand the meaning of a word, phrase, or entire passage using vector space models of semantics. The goal of our models is to make inferences about the state of the world based on the contents of the text.
Natural Language Generation
With the proliferation of smart devices, we will need more fluent and natural ways to receive information from automatic systems. We are working on methods to generate language of a particular style, whether it is formal text or a casual conversation.
Event Extraction and Understanding
What happens at a play? The audience enters the theatre, the lights go off, then the performance begins! We are developing computational models to extract typical sequences of events and their participants from text.
Quantum cryptographic systems take advantage of Heisenberg's uncertainty principle, according to which measuring a quantum system in general disturbs it and yields incomplete information about its state before the measurement.
Quantum teleportation allows the quantum state of a system to be transported from one location to another, without moving through the intervening space.
Connecting coding theory with cryptography,analyzing the sources of security in cryptographic protocols, the techniques for processing confidential data by several users that do not trust each other.
Explores the science and technologies for the interpretation of underwater video footage, the identification of underwater features, human-robot interaction, the modeling of 3D scenes using vision and acoustics, vehicle control, position estimation and mechanical design.
A synthetic fiducial marker used to visually encode information and provide controllable positioning. The Fourier tag is a synthetic target akin to a bar-code that specifies multi-bit information which can be efficiently and robustly detected in an image.
Graphical State Space Programming
GSSP is a framework that combines a software development paradigm, a software visualization technique, and a tool for robot programming. This infrastructure allows robot application programs to be decomposed and visualized within state-dependent views.
McLab: Extensible Compiler and VM Toolkit for MATLAB
The McLab project aims to provide languages, compilers and virtual machines for dynamic scientific languages. We are starting with the MATLAB language, and extensions of the MATLAB language such as AspectMatlab.
abc: The AspectBench Compiler for AspectJ
abc is a complete implementation of AspectJ (with some, mostly minor, differences to the original ajc compiler) that aims to framework for extensible Java compilation, the other an extension of the JastAddJ extensible Java compiler.
Soot: a Java Optimization Framework
Soot is a Java optimization framework. It provides four intermediate representations for analyzing and transforming Java bytecode. It can be used as a standalone tool to optimize or inspect class files, as well as a framework to develop optimizations or transformations on Java bytecode.
Mammoth is a massively multiplayer game research framework, whose goal is to provide an environment for experimentation in areas such as distributed systems, fault tolerance, databases, modeling and simulation, artificial intelligence and aspect-orientation. Mammoth has the industrial partners Quazal, Electronic Arts Montreal, and EJ-Technologies.
Reusable Aspect Models (RAM)
Reusable Aspect Models (RAM) is a novel approach to aspect-oriented modeling that makes scalable multi-view modeling possible. It allows the modeler to define stand-alone reusable aspect models, which support the modeling of structure (using UML class diagrams) and behavior (using UML state and sequence diagrams).
TouchRAM is a multi-touch enabled tool for aspect-oriented software design aimed at developing scalable and reusable software design models, giving the designer access to a vast library of reusable design models encoding essential recurring design concerns, featuring a multi-touch enabled user interface.
Volume Contact Constraints at Arbitrary Resolution
Introducing a new method for simulating frictional contact between volumetric objects using interpenetration volume constraints. When applied to complex geometries, the formulation results in dramatically simpler systems of equations than those of traditional mesh contact models.
Preserving Topology and Elasticity for Embedded Deformable Models
A new approach for the embedding of linear elastic deformable models. The technique results in significant improvements in the efficient physically based simulation of highly detailed objects.
Modal Locomotion: Animating Virtual Characters with Natural Vibrations
Presenting a general method to intuitively create a wide range of locomotion controllers for 3D legged characters. The key to the approach is the assumption that efficient locomotion can exploit the natural vibration modes of the body.
Specular Reflections, Shading, and Shape
How do we judge hills and valleys from smooth patterns reflected in a surface?
3D Cluttered Scenes
How do we use occlusions, size, and density to perceive a 3D layout of objects?
Texture and Focus
How do we use spatial arrangement, scale, and blur to perceive surface orientation and distance?
Beluga: Programming With Proofs
Beluga is a novel programming environment for trustworthy computing where programmers can specify sophisticated safety policies and weave proofs into programs. The goal is to establish safety of software systems via programming with proofs.
CORE: COntextual REasoning
Contextual reasoning plays a fundamental role in linguistics, artificial intelligence, logic, functional programming and theorem proving. This project investigates the logical foundation of contextual reasoning (i.e. contextual modal type theory) and explores its ramifications in meta-programming and meta-reasoning.
The goal of this international collaboration with INRIA, CMU and UMn is to develop a unified framework for specifying and certifying safety properties of computational systems, in particular distributed computation which are gaining prominence with the rise of security infrastructures and cloud computing.
SmartWheeler: Multi-modal intelligent wheelchair control
This project looks at customizing a robotic wheelchair such that it can be operated by a person with severe mobility impairements. The goal is to optimize a flexible multi-modal interface that allows high-level control of the wheelchair in a manner that is safe and effective
Adaptive Treatment Design
Deep brain stimulation is a new treatment for epilepsy, but existing devices do not adapt to the patient's condition - we create an improved class of devices with adaptive control.
Extracting Semantic Information from Wikipedia
Research in automatic suggestion of topics to augument text documents, completing Wikipedia's hyperlink structure through dimensionality reduction, and inferring semantic distances between concepts.
Recommending Adaptive Changes for Documentation Evolution
Programming technologies evolves rapidly and information about them can become outdated. We design techniques to automatically detect and repair inconsistencies.
Automatic Code Example Summarization
We are developing the idea of source code summarization to repackage existing open-source code fragments so that they cleanly illustrate programming concepts or patterns of interest.
TaskNav: Extracting Development Tasks to Navigate Software Documentation
With the TaskNav project, we are exploring the use of natural language processing to re-index programming tutorials so that they map to questions programmers have.
Organizations, governments, and companies are interested in understanding the people in groups they’re interacting with. We're developing new techniques for inferring the demographics of physical populations using data from online networks like Twitter and Facebook.
Like any living system, human communities are born, grow, decay, and dissipate. We're interested in observing and measuring these processes using computational and mathematical models. We hope that such knowledge aids in building more vibrant, constructive societies.
Origin of Biological Robustness: Why are Living thing hard to kill?
Despite the complex biochemical processes at work in cells, you can mess with a cell's DNA, douse it in toxins, and expose it to extreme temperatures and it will survive. We're working to uncover aspects of cellular design that evolution has used to make living systems so resilient.
PHYLO: human-based computing for bioinformatics
We abstract the multiple sequence alignment problem to a game where the goal will be to align words made by pieces of different color instead of letters representing the genetic code (A, C, G, T).
Ensemble Prediction of Protein Structures
We develop a framework for modeling and predicting ensembles of protein structures. Our algorithms are implemented in a suite of tools named partiFold, which aims to compute quickly (couple of minutes) accurate three-dimensional structure predictions of long polypeptides (several hundreds of residues) without using any template.
Mutational Analysis of Ribonucleic acids
We develop a computational framework named RNAmutants which aims to analyze the relationship between RNA sequences and structures (a.k.a. sequence-structure maps).