What is a complementary strand?
DNA (deoxyribonucleic acid) is made up of pentose Sugar, nitrogenous bases, and phosphate. DNA has a backbone of sugar and phosphate. As we all know DNA is a double helical structure (Watson & crick model) and both the strand of DNA are complementary of each other.
So, what does it mean to be a complementary strand (cDNA)?
Suppose we have a DNA strand 5’ GGTACTTGCCAT 3’ for this strand of DNA the complementary strand is 3’ CCATGAACGGTA 5’. This is because we all know that there are 4 base pairs in DNA: Adenine (A), Guanine (G), Cytosine (C), and Thymine (T), these base pairs bonds together these bonds follow the lock and key principle.
in DNA A=T and G≡C (where A, G are purines and T, C are pyrimidines)
In the process of DNA Replication, both of the strands are unzipped by an enzyme named helicase and both of them serve as a template strand for new DNA (semiconservative nature of DNA).
IUPAC Degeneracies
Base | Name | Bases Represented | Complementary Base |
A | Adenine | A | T |
T | Thymidine | T | A |
U | Uridine (in RNA) | U | A |
G | Guanidine | G | C |
C | Cytidine | C | G |
Y | pyrimidine | C T | R |
R | purine | A G | Y |
Let’s see the methods for solving this:
Method 1: using the concept of if-elif-else conditional statements.
Below is the implementation:
# method 1: # Define a function for finding # complementary strand of given # DNA strand def complementary_strand_find(dna_strand): # empty string define complementary_strand = "" # looping through the # given DNA strand one # by one character at # a time for base in dna_strand: # using if-elif-else # conditional statement if base == "A" : # string concatenation complementary_strand += "T" elif base == "T" : complementary_strand += "A" elif base == "U" : complementary_strand += "A" elif base == "G" : complementary_strand += "C" elif base == "C" : complementary_strand += "G" elif base == "Y" : complementary_strand += "R" elif base == "R" : complementary_strand += "Y" else : print("Wrong input") # assigning None to the variable # if wrong input is given complementary_strand = None # break out of the loop # if wrong input is given break # return final result return complementary_strand # main code if __name__ == "__main__": # input the DNA strand dna_strand = "GGTACTTGCCAT" print("DNA strand is:", dna_strand) # function call and printing # the result print("complementary strand is:", complementary_strand_find(dna_strand))
Output:
DNA strand is: GGTACTTGCCAT complementary strand is: CCATGAACGGTA
Method 2: Using the concept of Dictionary.
Below is the implementation:
# Define a function for finding # complementary strand of given # DNA strand def complementary_strand_find(dna_strand): # create a dictionary for # storing conversion pairs conversion_dictionary = { "A" : "T", "T" : "A", "U" : "A", "G" : "C", "C" : "G", "Y" : "R", "R" : "Y" } # empty string define complementary_strand = "" # looping through the # given DNA strand one # by one character at # a time for base in dna_strand: # checking base is present in # dictionary or not # if not then error input # is given if base in conversion_dictionary: # string concatenation complementary_strand += conversion_dictionary[base] else : print("Wrong input") # assigning None to the variable # if wrong input is given complementary_strand = None # break out of the loop # if wrong input is given break # return final result return complementary_strand # main code if __name__ == "__main__": # input the DNA strand dna_strand = "GGTACTTGCCAT" print("DNA strand is:", dna_strand) # function call and printing # the result print("complementary strand is:", complementary_strand_find(dna_strand))
Output:
DNA strand is: GGTACTTGCCAT complementary strand is: CCATGAACGGTA
When I saw this page was like wow. Thanks for putting your effort in publishing this article.
Ive wanted to post about something like this on one of my blogs which has given me an idea. Thanks.
I thought it was gonna be some boring old publish, but it in truth paid out for my time. I will article a link to the page in my weblog. I am sure my personal guests will unearth that invaluable. . . .
I guess you have made many really interesting points. Not as well many ppl would actually think about it the direction you just did. I am really impressed that there is so much about this subject that has been uncovered and you made it so nicely, with so considerably class. Top-notch one, man! Very special things right here.
Thank you for that smart critique. Me & my neighbour were preparing to do some research about that. We received a very good book on that matter from our local library and most books exactly where not as influensive as your information. Im quite glad to see this kind of information which I was searching for a long time.
I don’t even know the way I finished up right here, but I assumed this post used to be great. I do not recognize who you might be however definitely you are going to a well-known blogger if you arent already 😉 Cheers!
Extremely helpful information specially the last part 🙂 I care for such info a lot. I was seeking this particular info for a long time. Thank you and best of luck.
I have been reading the posts, and I absolutely concur with what Sam said.