Python - Rotation Angle of an Alpha Helix

by matt392 in Circuits > Software

130 Views, 1 Favorites, 0 Comments

Python - Rotation Angle of an Alpha Helix

rotationanglealphahelix.jpg
alphahelix3.png
alphahelixformula.png

Python program that calculates the rotation angle of an alpha helix protein.
Also attached is a PDF that diagrams the formula being broken down into Python code. Code is below and attached.

print ("This program will calculate the rotation angle of an alpha helix.")

import math

#  Formula for calculating the rotation angle of an alpha helix:
#  RotationAngleAlphaHelix = arccos((1-(4 * (((cos((DihedralAngleOne + DihedralAngleTwo)/2)))**2)))/3)
###########################################

# 1 function: solve for the rotation angle
# math.cos(x in radians) - returns cosine of "x in radians"
# math.acos(x in radians) - returns arccosine of "x in radians"
# Function to solve for rotation angle
# Enter the Dihedral Angle #1 and Dihedral Angle #2
# RotationAngleAlphaHelix = arccos((1-(4 * (((cos((DihedralAngleOne + DihedralAngleTwo)/2)))**2)))/3)


def SolveForRotationAngleAlphaHelix():
	print ("Solving for the rotation angle of an alpha helix.")
	#  math.cos(x in radians) - returns cosine of "x in radians"

	# Enter the Dihedral Angle #1 and Dihedral Angle #2
	DihedralAngleOne = float(input("Enter the 1st dihedral angle: ") )
	DihedralAngleTwo = float(input("Enter the 2nd dihedral angle: ") )

	AngleOnePlusAngleTwoOver2 = ((DihedralAngleOne + DihedralAngleTwo)/2)

	# Now convert degrees to radians so that we can use the math.cos() function
	# Use math.radians() to convert degrees to radians
	TopInRadians = math.radians(AngleOnePlusAngleTwoOver2)
	print(AngleOnePlusAngleTwoOver2, "degrees in radians is: ", TopInRadians)

	# 	Now find cosine
	CosineOfTop = math.cos(TopInRadians)
	print("The cosine of ", AngleOnePlusAngleTwoOver2, "is: ", CosineOfTop)

	# 	Square the cosine
	CosineOfTopSquared = (CosineOfTop**2)

	#	Finish the top part of the formula
	FourTimesCosineSquared = (4*CosineOfTopSquared)
	OneMinusFourTimesCosineSquared = (1 - FourTimesCosineSquared)

	#	Divide by 3
	DividedBy3 = (OneMinusFourTimesCosineSquared/3)

	#	Finally, compute acrcos and get result in radians
	AcosInRadians = math.acos(DividedBy3)
	# Convert radians to degrees
	RotationAngle = math.degrees(AcosInRadians)
	print("The rotation angle is: ", RotationAngle)

ContinueCalculations = "y"

# Check to see if the user wants to continue to calculate the rotation angle of an alpha helix
while (ContinueCalculations=="y"):
    SolveForRotationAngleAlphaHelix()
    ContinueCalculations = input("Would like to do another calculation for the rotation angle of an alpha helix? (y/n): ")

print("==================================")
print ("Thank you to www.fxsolver.com & Wikipedia for assistance with this formula.")
print ("Also thank you to the book: \"Introduction to Peptides and Proteins\", page 40 for additional information. ")

Supplies

Used the Geany text editor and IDLE.