Please help me fix my python program: (see image attached for error message) import random def nucleotide(str1, X): #1. Take two parameters, a nucleotide sequence as a string, and an integer. #2. Check for invalid characters (not ATCG). for i in str1: if i != 'A' or i != 'T' or i != 'G' or i != 'C': sys.exit("Invalid nucleotide") #2. If invalid character is found, exit function #3. Make the entire string lower case str1 = str1.lower() lst = list(str1) #Convert string to list #4. for i in range(0,X): num = len(str1) charPosition = random.randint(0,num-1) #Choose a character position in the string at random charNucleotide = lst[charPosition] #Determine which nucleotide is at that position. randomNucleotide = lst[random.randint(0,3)] #At random, select a different nucleotide and replace the previous nucleotide with the new one. lst[charPosition] = randomNucleotide.upper() listToStr = ''.join(map(str, lst)) #Convert list to string. return listToStr #6. Return the new string #5. Test your code str1 = nucleotide("ATGCGTACTG", 4) print("Orignal nucleotide: ATGCGTACTG") print ("New nucleotide:",str1) This is the guideline in making the code above: I need help to write a function that: 1. Take two parameters, a nucleotide sequence as a string, and an integer. 2. Check for invalid characters (not ATCG). If invalid character is found, exit function 3. Make the entire string lower case 4. For X iterations, where x is the integer parameter - Choose a character position in the string at random - Determine which nucleotide is at that position. At random, select a different nucleotide and replace the previous nucleotide with the new one. Use String splicing, or list() and "".join() -The new nucleotide should be uppercase so that the substitution is clear and obvious. 5. Test your code to make sure this behavior works as intended. Keep the number of iterations low, and add in a reporting mechanism that makes it clear what is happening (what position was chosen, what new nucleotide was chosen, etc). Comment out this out once you're sure the function works as it should. 6. Return the new string
Please help me fix my python program: (see image attached for error message)
import random
def nucleotide(str1, X): #1. Take two parameters, a nucleotide sequence as a string, and an integer.
#2. Check for invalid characters (not ATCG).
for i in str1:
if i != 'A' or i != 'T' or i != 'G' or i != 'C':
sys.exit("Invalid nucleotide") #2. If invalid character is found, exit function
#3. Make the entire string lower case
str1 = str1.lower()
lst = list(str1) #Convert string to list
#4.
for i in range(0,X):
num = len(str1)
charPosition = random.randint(0,num-1) #Choose a character position in the string at random
charNucleotide = lst[charPosition] #Determine which nucleotide is at that position.
randomNucleotide = lst[random.randint(0,3)] #At random, select a different nucleotide and replace the previous nucleotide with the new one.
lst[charPosition] = randomNucleotide.upper()
listToStr = ''.join(map(str, lst)) #Convert list to string.
return listToStr #6. Return the new string
#5. Test your code
str1 = nucleotide("ATGCGTACTG", 4)
print("Orignal nucleotide: ATGCGTACTG")
print ("New nucleotide:",str1)
This is the guideline in making the code above:
I need help to write a function that:
1. Take two parameters, a nucleotide sequence as a string, and an integer.
2. Check for invalid characters (not ATCG). If invalid character is found, exit function
3. Make the entire string lower case
4. For X iterations, where x is the integer parameter
- Choose a character position in the string at random
- Determine which nucleotide is at that position. At random, select a different nucleotide and replace the previous nucleotide with the new one. Use String splicing, or list() and "".join()
-The new nucleotide should be uppercase so that the substitution is clear and obvious.
5. Test your code to make sure this behavior works as intended. Keep the number of iterations low, and add in a reporting
6. Return the new string
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images