5SOO_O 의 개발 공부 일지

[Python] [Rosalind] Calculating Expected Offspring 본문

자료구조 및 바이오 인포매틱스

[Python] [Rosalind] Calculating Expected Offspring

5soo_o 2022. 4. 12. 14:54

멘델의 제 1 법칙에 따라 우성 표현형을 가질 자손의 수를 계산하는 문제이다.

조건으로 모든 부부가 정확히 두 명의 자손을 갖는다는 가정 하에

다음 세대에서 우성 표현형을 나타내는 예상 자손 수를 구하라고 명시되어 있다.

유전자 조합 쌍이 문제에서 주어진다. 주어진 조합 쌍 순서대로 값을 입력해야 한다.

  1. AA-AA
  2. AA-Aa
  3. AA-aa
  4. Aa-Aa
  5. Aa-aa
  6. aa-aa

 

예를 들어 데이터에 담긴 값이 17727, 18175, 19468, 17788, 19917, 18823 라면

유전자형 조합이 AA-AA인 부모가 17727명 있다는 뜻이다.

 

# 각 유전자 조합 수가 담겨 있는 파일 열기
with open("rosalind_iev.txt") as file:
    num = [i.strip() for i in file.readlines()]	# 리스트에 담은 다음
    num = ''.join(num).split(' ')	# 하나의 문자열로 묶인 값 공백을 기준으로 나누고
    num = [int(n) for n in num]	# 문자열인 데이터 정수로 바꾸기

print(num)

 

 

def calculate_offspring(a, b, c, d, e, f):
    x1 = a
    x2 = b
    x3 = c
    x4 = 0.75 * d
    x5 = 0.5 * e
    x6 = 0 * f

    return sum([x1, x2, x3, x4, x5, x6]) * 2

print(run(num[0], num[1], num[2], num[3], num[4], num[5]))

 

값이 잘 나왔다!

728x90