PROG0136 - Inverse complement

no tags 

A DNA sequence can be represented as a string consisting only of the letters (bases) A, G, C and T. The inverse complement of a DNA sequence is obtained by first replacing every occurrence of the base A with the complementary base T (and vice versa), and replacing every occurrence of the base G with the complementary base C (and vice versa), and finally reversing the sequence of characters.

Assignment

  1. Write a function complement which returns the complement for a given base that is passed as a parameter to the function. For example, the function is to return the letter G, if the letter C is passed to the function. Think of how you can best use a dictionary to implement this function.
  2. Use the function complement to write the function inverseComplement, which returns the inverse complement of a given DNA sequence which is to be passed to the function as a parameter. Use a list comprehension to return the inverse complement in a single return statement. Thus, the function must return the string AAGTTATTG for the given DNA sequence CAATAACTT.

Example

>>> complement('A')
'T'
>>> complement('C')
'G'
>>> complement('G')
'C'
>>> complement('T')
'A'
>>> inverseComplement('CAATAACTT')
'AAGTTATTG'
>>> inverseComplement('GAACCTTGT')
'ACAAGGTTC'
>>> inverseComplement('TAACCGAAGGAATC')
'GATTCCTTCGGTTA'
>>> inverseComplement('CTTAGCTGCCCGATTACATACACAC')
'GTGTGTATGTAATCGGGCAGCTAAG'
>>> inverseComplement('TTAATTGGG')
'CCCAATTAA'

Een DNA sequentie kan voorgesteld worden als een string die enkel bestaat uit de letters (basen) A, G, C en T. Het invers complement van een DNA sequentie bekomt men door eerst elk voorkomen van de base A te vervangen door de complentaire base T (en andersom) en elk voorkomen van de base G te vervangen door de complementaire base C (en andersom) en vervolgens de volgorde van de letters om te keren.

Opgave

  1. Schrijf een functie complement die het complement teruggeeft voor een gegeven base die als parameter aan de functie wordt doorgegeven. Zo moet de functie de letter G teruggeven indien de letter C aan de functie doorgegeven wordt. Denk na hoe je best gebruik kan maken van een dictionary om deze functie te implementeren.
  2. Gebruik de functie complement om een functie inversComplement te schrijven, die het invers complement teruggeeft van een gegeven DNA sequentie die als parameter aan de functie moet doorgegeven worden. Maak gebruik van een list comprehension om het invers complement in één enkel return statement terug te geven. Zo moet de functie voor de gegeven DNA sequentie CAATAACTT de string AAGTTATTG teruggeven.

Voorbeeld

>>> complement('A')
'T'
>>> complement('C')
'G'
>>> complement('G')
'C'
>>> complement('T')
'A'
>>> inversComplement('CAATAACTT')
'AAGTTATTG'
>>> inversComplement('GAACCTTGT')
'ACAAGGTTC'
>>> inversComplement('TAACCGAAGGAATC')
'GATTCCTTCGGTTA'
>>> inversComplement('CTTAGCTGCCCGATTACATACACAC')
'GTGTGTATGTAATCGGGCAGCTAAG'
>>> inversComplement('TTAATTGGG')
'CCCAATTAA'


Added by:Peter Dawyndt
Date:2011-08-08
Time limit:10s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None