Adaptive Immunity & Cancer Neoantigens: a primer

Here I attempt to explain the basics of adaptive immunity and cancer neoantigens in a generally accessible way. Not being formally trained in immunology, I have striven to just cover the key concepts required for understanding the basic principals behind cancer neoantigens.

Adaptive Immunity

The adaptive immune system evolved as a method of detecting and destroying foreign pathogens, such as virus and bacteria. One of the key principles behind the adaptive immune system is that no prior knowledge of these foreign invaders is required; as a system it is prepared to handle any potential foreign entity.

One of the key players in the adaptive immune system is the T cell, named due to its maturation in the thymus. T cells have receptors on their cell surface called T cell receptors (TCRs) which are what recognize foreign proteins. All cells in the human body have identical copies of your DNA (well, aside from sperm and egg cells, but we will ignore those). All cells, except for T cells. During T cell development, the genes in the TCR locus get rearranged, or mixed up, creating diversity in this region. In addition to cutting and pasting genes around, nucleotides get randomly deleted and added, further increasing the diversity. All this mixing up results in a TCR which is essentially unique to that specific cell. Importantly, any T cell which would react to a self-protein (something non-foreign) is destroyed during development. This results in each person having a repertoire of over 1,000,000 different T cells each with different TCRs moving through their body, constantly looking for foreign proteins.

What is it that T cells actually recognize? In every cell of the body, genes in the DNA are expressed as proteins (chains of amino acids, typically hundreds to thousands of amino acids) inside the cell. Proteins do not last forever; there is an equilibrium that exists between proteins being created and degraded in the cell, so all proteins will eventually be broken down into short peptide fragments (shorter chains of amino acids, typically tens of amino acids). These peptides are transported into the endoplasmic reticulum where they are shortened some more, and may bind to waiting MHC molecules. MHC molecules have the job of presenting these short peptides (at this point 8-11 amino acids in length) to T cells. Once a peptide has bound to an MHC molecule, the peptide-MHC complex moves to the surface of the cell. Since, in the example shown below, the peptide is derived from a self-protein, T cells will survey the peptide-MHC complex, but none will recognize it as foreign, and the presenting cell gets left alone.

A quick note on MHC molecules: these are encoded by the most polymorphic regions of the genome (the HLA locus), resulting in thousands of different MHC molecules existing in Earth’s population. Each individual will have at most six of these different variants, and each variant can present only a subset of all peptides.

Returning to our cell example, if this cell is infected by a virus, this cell will now contain foreign proteins. Like self-proteins, these proteins will be broken down, transported into the endoplasmic reticulum, and may bind to an MHC molecule. When this foreign peptide-MHC complex is transported to the cell surface, one of the many T cells in the repertoire will recognize this peptide as foreign, and will initiate killing of the presenting cell.

After the T cell has killed the virally-infected cell, it will replicate itself, making more cells having that same TCR, allowing there to be a larger attack force of T cells able to hunt down other cells that have been infected by this same type of virus.

Cancer Neoantigens

Cancer is a disease of the genome. It is characterized by changes to cell’s DNA. Some of these changes are “silent” – they do not effect changes in proteins. However, many are “non-silent” – they cause a change in the protein sequence of self-proteins.

A subset of these mutations will be present in the broken down peptides that bind to the MHC molecules. These will be presented on the surface of the cell, and, due to the mutation, have the potential to be identified as foreign by T cells.

Importantly, these mutations are only present on cancer cells, so the immune response driven by the T cells will be specific for these cancer cells and should leave the rest of the normal cells alone.

This is the basis for many cancer immunotherapies, including:

  • Checkpoint blockade – helping existing T cells perform their attack
  • Cancer vaccines – vaccinating with the mutant peptides to “show” the T cells what to look for
  • Autologous T cell therapies – isolating T cells from a patient and selectively replicating the one(s) that recognize the cancer mutations before re-administering them into the same patient

Cancers can have many hundreds of mutations, so it becomes challenging to identify which subset of those mutations would make the best targets for these types of therapies. This is an active field of research, and one I am involved in.

An overly complex, yet elegant, solution to apartment building enterphone limitations

Sometimes, I over-engineer things. I get it from my father.

My girlfriend and I recently moved into an apartment building. Oddly, while the enterphone system is advanced enough to allow calling to cellphones (rather than landlines wired into the building), it only allows a single number per apartment. Ninety percent of the time this is just fine, but if one of us is unreachable (at work during the day, travelling, etc), the other loses the convenience of buzzing a visitor into the building.

I was determined to find a solution!

I came across a service called Twilio, which allows interactions with a phone number to be directed to a webserver and handled as you specify using their API. A lightbulb went on in my head – this could work perfectly!

I set up an account, acquired a local phone number, and got to testing. The Twilio service allows you to set up and run simple code (in TwiML, a variant of XML) directly from their console, but for more complex solutions you must point the inbound calls to a web server. I decided to finally give Amazon AWS a try. A free account and some brief setup, and I was in business!

When a visitor enters our buzzer number, the system makes an outbound call to the number we provided and allows us to talk to the front door and dial a key to unlock the door. My first strategy was to have this outbound call caught by our webserver, and have it ask the visitor who they wanted to contact (“Press 1 for me, 2 for her”). Unfortunately, after testing we learned that the enterphone does not allow further key presses once the call has been made.

Strategy number 2 was to take advantage of Twilio’s speech recognition functionality. Instead of having visitors press a key, they just needed to say either of our names. Unfortunately, the speaker on the enterphone is very quiet, and with loud traffic nearby, the visitor would be unlikely to hear the instructions, and Twilio had a hard time understanding what was being said. A more passive solution was required.

Finally I settled on using the Conference feature. When a visitor buzzes us, the call is put into a conference room on hold:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial>
        <Conference startConferenceOnEnter="false" waitMethod="GET" waitUrl="ring_loop_compressed.mp3">Buzzer conference</Conference>
    </Dial>
</Response>

This initiates two calls, one to myself and one to my girlfriend. When one of us picks up, we are served the following:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Gather action="/accepted" method="POST" numDigits="1" timeout="5">
        <Say>Ding dong. Press 1.</Say>
    </Gather>
</Response>

Pressing 1 accepts the call, ends the parallel outgoing call to the other person (to avoid empty voicemails or dead air), and patches you in to the conference. We can then proceed as usual, finding out who is there and letting them in.

The icing on the cake? The “on hold” music is the sound of a phone ringing, so they don’t even know anything fancy is going on!

And it all happens very quickly; there is about 1 ring’s worth of delay compared to having the enterphone dial our number directly.

There you have it – an over-engineered solution to a simple, yet frustrating problem. And in case you were wondering, my dad is proud.