I am a professor of machine learning in the group for Scientific Computation and Machine Learning at the Department of Informatics (IFI), University of Oslo (UiO).
I work with machine learning methods inspired by big real-world challenges, mainly in life sciences. Right now, I’m especially focused on two main areas: (1) understanding how immune cells recognize and respond to foreign threats, and (2) building models that capture how climate affects disease incidence, with the goal of providing early warnings for outbreaks.
Methodologically, I’m particularly interested in making machine learning models generalize well, incorporating mechanistic and causal knowledge into models, and developing domain-specific software platforms. I also work on methods for multiple-instance learning.
In the immunology work, I focus on identifying sequence patterns in immune cells that are linked to disease. This involves developing new deep learning approaches, rigorously benchmarking models, and building the integrated software platform immuneML.
For climate-sensitive diseases, I work on learning multi-variable, spatiotemporal models of disease incidence in collaboration with the HISP center at UiO. A key focus here is developing a machine learning platform Chap that enable solid side-by-side benchmarking, encourage method reuse, and make it easier to move from pilot models to fully operational early warning systems—while ensuring local ownership and control of the whole process.
Beyond these main areas, I’m also involved in projects related to pharmacoepidemiology and detecting money laundering.
I previously worked on statistical genome analysis and motif discovery in DNA. I also have a strong interest for teaching and supervision.
Research group
We are a machine learning group located at the computer science department in Oslo. More information on my team and our ongoing research is provided in the web pages for my research group.
As a computational lab, our only asset is the codebases and accompanying experiences (competencies) we build up through research projects and learning activities. In line with this, our foremost priority is to create a working environment where all members learn, grow and enjoy their work. Our main approach to ensure high quality work is very traditional: working towards papers in leading peer-reviewed journals that will stand the test of time. In addition to this, we try to be deliberate in devising work processes and training activities that provides team members with a comprehensive selection of experiences for a career in bioinformatics or computer science.
Our approach to research
To do good science, one mainly needs to gain a unique research expertise and find the right research questions to address. This is in reality extremely challenging, touches on several dilemmas, and forms a main motivation for how we work in our group.
How we build a unique research competence:
- Try to be strategic in terms of long-term competence building when selecting research projects and collaborations
- Use team collaboration to allow each member to build a niche competence
- Emphasize reproducibility and reuse of code between projects
- Provide opportunities for both simple scripting and advanced software development
How we position ourselves to find good research questions:
- Work in areas of open and difficult problems
- Collaborate with biomedical groups that bring unique computational challenges
Our approach to training
An education at master level forms a good fundament for doing research, but much more is required to do good science. This is particularly apparent in an interdisciplinary field like bioinformatics. Many aspects are learnt best while doing real research. Other aspects are learnt more effectively through dedicated training. A main priority of our group is to establish infrastructure and work together so as to provide a comprehensive suite of learning opportunities for each member. We aim to provide the infrastructure and guidance to let every team member to get experience with:
- Appropriate programming styles to match the variety of scenarios relevant for computational science, ranging from rapid prototyping of small scripts to development of high quality code for large systems
- Effective software development processes, including use of empowering infrastructure and tools such as using tailored system setups and exploiting capabilities of IDEs.
- Software architecture and software design, as a distinct and often very useful phase prior to coding
- Computational modeling, specifically how to develop mathematically precise problem formulations and corresponding solutions for biomedical problems
- Practices that promote reproducibility of performed analyses and reuse of developed methodology
- Solving algorithmically challenging problems, including considerations of computational efficiency where necessary
- Writing grant applications
- Develop methodology and software in tight collaboration with peers, so as to get exposed to alternative ways of thinking and working at a very detailed level.
- Interact with a relevant international community, so as to ensure that one stays on top of ones field both with respect to science and technological developments