Hey, do you want to make projects that make you stand out in your career and to make your craft to the next level!. This tutorial will help to achieve what you want.
Today, we’re making a DNA (Deoxyribonucleic Acid) visualization which will look like this!.
Before you jump into the project read this!
DNA is a tiny molecule that exists in every cell of our bodies and contains the blueprint for how our bodies grow.
It looks like a double helix(a twisted ladder a like) of pairs of nucleotide molecules:
- guanine
- cytosine
- adenine
- and thymine
In this project these are shown like this:
- Guanine = G
- Cytosine = C
- Adenine = A
- Thymine = T
This program is a simple animation of DNA
How this actually work!!
This program create a scrolling animation by printing the strings from the ROWS list. The AT and CG pairs are inserted into each string with the format() string method.
Let’s Go!
First code then the “how” part
CODE / Discussion
import randomimport sysimport timePAUSE = 0.15 # Change it 0.0 and see what happenimport random import sys import time PAUSE = 0.15 # Change it 0.0 and see what happenimport random import sys import time PAUSE = 0.15 # Change it 0.0 and see what happen
Enter fullscreen mode Exit fullscreen mode
Discussion
- Imported random, sys and time for the use. You can also write these in shorthand like
import random, sys, time
it will also work. -
PAUSE
!Try to change it 0.0 and see what happens when change it. First use 0.15 as default then change it.
# below are the rows of DNA animationROWS = [' ##',' #{}-{}#',' #{}---{}#',' #{}-----{}#',' #{}------{}#',' #{}------{}#',' #{}-----{}#',' #{}---{}#',' #{}-{}#',' ##',' #{}-{}#',' #{}---{}#',' #{}-----{}#',' #{}------{}#',' #{}------{}#',' #{}-----{}#',' #{}---{}#',' #{}-{}#',]#123456789 use this to measure the number of spaces# below are the rows of DNA animation ROWS = [ ' ##', ' #{}-{}#', ' #{}---{}#', ' #{}-----{}#', ' #{}------{}#', ' #{}------{}#', ' #{}-----{}#', ' #{}---{}#', ' #{}-{}#', ' ##', ' #{}-{}#', ' #{}---{}#', ' #{}-----{}#', ' #{}------{}#', ' #{}------{}#', ' #{}-----{}#', ' #{}---{}#', ' #{}-{}#',] #123456789 use this to measure the number of spaces# below are the rows of DNA animation ROWS = [ ' ##', ' #{}-{}#', ' #{}---{}#', ' #{}-----{}#', ' #{}------{}#', ' #{}------{}#', ' #{}-----{}#', ' #{}---{}#', ' #{}-{}#', ' ##', ' #{}-{}#', ' #{}---{}#', ' #{}-----{}#', ' #{}------{}#', ' #{}------{}#', ' #{}-----{}#', ' #{}---{}#', ' #{}-{}#',] #123456789 use this to measure the number of spaces
Enter fullscreen mode Exit fullscreen mode
Discussion:
-
ROWS
contain a list and in this a all the structure of the DNA is in a string. - Use this formula for better result
123456789
. - The first
##
at9
then going down. - At the tenth number
##
again starts but now going to right side rather left side.
try:print('DNA Visualization || Ihtesham Haider')print('Press CTRL-C on Keyboard to quit....')time.sleep(2)rowIndex = 0#Main loop of the program || Startedwhile True:#incrementing for to draw a next row:rowIndex = rowIndex +1if rowIndex == len(ROWS):rowIndex = 0# Row indexes 0 and 9 don't have nucleotides:if rowIndex == 0 or rowIndex ==9:print(ROWS[rowIndex])continuetry: print('DNA Visualization || Ihtesham Haider') print('Press CTRL-C on Keyboard to quit....') time.sleep(2) rowIndex = 0 #Main loop of the program || Started while True: #incrementing for to draw a next row: rowIndex = rowIndex +1 if rowIndex == len(ROWS): rowIndex = 0 # Row indexes 0 and 9 don't have nucleotides: if rowIndex == 0 or rowIndex ==9: print(ROWS[rowIndex]) continuetry: print('DNA Visualization || Ihtesham Haider') print('Press CTRL-C on Keyboard to quit....') time.sleep(2) rowIndex = 0 #Main loop of the program || Started while True: #incrementing for to draw a next row: rowIndex = rowIndex +1 if rowIndex == len(ROWS): rowIndex = 0 # Row indexes 0 and 9 don't have nucleotides: if rowIndex == 0 or rowIndex ==9: print(ROWS[rowIndex]) continue
Enter fullscreen mode Exit fullscreen mode
Discussion:
- If you’re not familiar with
try
andexcept
, I will explain it to you in just a minute. - It is simply used for Error handling. The try block lets you test a block of code for errors.The except block lets you handle the error.
- while loop is the main loop which will be used for incrementing the string one after the other consecutively.
randomSelection = random.randint(1,4)if randomSelection ==1:leftNucleotide, rightNucleotide = 'A', 'T'elif randomSelection ==2:leftNucleotide, rightNucleotide = 'T', 'A'elif randomSelection ==3:leftNucleotide, rightNucleotide = 'C', 'G'elif randomSelection ==4:leftNucleotide, rightNucleotide = 'G', 'C'# priting the rowprint(ROWS[rowIndex].format(leftNucleotide, rightNucleotide))time.sleep(PAUSE)randomSelection = random.randint(1,4) if randomSelection ==1: leftNucleotide, rightNucleotide = 'A', 'T' elif randomSelection ==2: leftNucleotide, rightNucleotide = 'T', 'A' elif randomSelection ==3: leftNucleotide, rightNucleotide = 'C', 'G' elif randomSelection ==4: leftNucleotide, rightNucleotide = 'G', 'C' # priting the row print(ROWS[rowIndex].format(leftNucleotide, rightNucleotide)) time.sleep(PAUSE)randomSelection = random.randint(1,4) if randomSelection ==1: leftNucleotide, rightNucleotide = 'A', 'T' elif randomSelection ==2: leftNucleotide, rightNucleotide = 'T', 'A' elif randomSelection ==3: leftNucleotide, rightNucleotide = 'C', 'G' elif randomSelection ==4: leftNucleotide, rightNucleotide = 'G', 'C' # priting the row print(ROWS[rowIndex].format(leftNucleotide, rightNucleotide)) time.sleep(PAUSE)
Enter fullscreen mode Exit fullscreen mode
Discussion:
- This program will randomly select random nucleotide pairs, guanine-cytosine and adenine-thymine.
- For this purpose we have used
random.randit(1,4)
1 to 4 - Then we used
if elif
conditions to check the program for us and values at the right place. - After
conditions = if -elif
we printed out the row and then a time module is used which we have imported and used pause for it. # The time.sleep will add a slight pause.
except KeyboardInterrupt:sys.exit() #This will end the program when click CTRL-Cexcept KeyboardInterrupt: sys.exit() #This will end the program when click CTRL-Cexcept KeyboardInterrupt: sys.exit() #This will end the program when click CTRL-C
Enter fullscreen mode Exit fullscreen mode
Discussion:
- At last we use except for checking and executing the code.
- sys.exit() is used to end the program for us… whenever someone click CTRL-C on keyboard.
You can download or check the code by click on this DOWNLOAD
MY SOCIAL HANDLES:
Linkedin Medium Twitter
If you have any problem regarding programming and management I free for you to help you!.
Thanks! wish you Best Of Luck.
暂无评论内容