Et (kodende) gen er en "oppskrift" på et protein. Gener kan grovt sett bli sett på som en organismes «kokebok». En DNA-streng inneholder gener, områder som regulerer gener, og områder som ikke har noen funksjon eller en funksjon vi ikke kjenner til. DNA er organisert i to komplementære strenger – de utfyller hverandre – med svake hydrogenbindinger mellom hverandre som kan sprettes opp som en glidelås, og således dele dem opp i to selvstendige strenger. DNA er kodet med fire utbyttbare «byggestener», kalt «baser», og kan forkortes A, T, C eller G, etter deres kjemiske betegnelser: denin, ymin, uanin og ytosin. Hver base danner par med kun en av de andre basene: A til T, T til A, C til G og G til C. Dette skyldes at og bindes sammen med to hydrogenbindinger, mens guanin og cytosin bindes sammen med hydrogenbindinger. Dersom vi har basen «A» på en streng på en dobbelttrådet DNA, vil den bare kunne kople seg sammen med en «T» på den andre, komplementære strengen. Rekkefølgen er viktig: A+T er ikke det samme som T+A, likeledes som C+G ikke er det samme som G+C. For øvrig, siden det bare er fire ulike kombinasjoner, er det vanlig å bare navngi basen på «hovedstrengen» for å beskrive sekvensen (rekkefølgen av basepar). Rekkefølgen av baser langs DNA-et er hva alt handler om. DNA-sekvensen er i seg selv det som beskriver genene. replikasjon – fordobling av én dobbeltrådet DNA-spiral til to dobbeltråde DNA-spiraler – foregår ved at dobbeltstrengen blir delt i to gjennom midten ved hjelp av en rekke kjemiske reaksjoner, og «den andre, komplementære halvparten» til hver av de to enkle DNA-strengene blir gjenoppbygget ved å «drukne» dem i en «suppe» av de fire basene. Siden hver base bare kan kombineres med én av de andre basene, vil basene på den gamle strengen bestemme hvilke baser som vil bli del av den nye strengen. På denne måten vil hver enkeltstreng sammen med basene den får fra suppen ideelt sett ende opp som et fullstendig kopi av originalen, med mindre en mutasjon oppstår. Mutasjoner er rett og slett kjemiske feilreaksjoner som oppstår i prosessen: en base blir ved et uhell hoppet over, satt inn feil, eller kjeden blir avkortet, eller tilføyd ekstra basesekvenser.