제5회 재직자 재교육 단기과정 유전체데이터 분석교육
파이썬 실무 활용과 기계학습
Table of Contents
개요 #
- 일시: 2020-08-10 ~ 2020-08-23
- 장소: 웨비나
1일차 #
파이썬 개요와 기본 문법 (이채민) #
교육자료
파이썬 실무활용 팁 모음 (이경표) #
교육자료
파이썬 테스트주도개발(TDD)과 객체지향프로그래밍(OOP) (김형용) #
교육자료
- 슬라이드: 20200827_BioCom_파이썬실무활용과기계학습_part3.pdf
- 예시용 파일: test.fasta
테스트 주도 개발 준비
#!python
import unittest
class MyTest(unittest.TestCase):
def test1(self):
pass
if __name__ == '__main__':
unittest.main()
테스트 주도 개발 팩토리얼
#!python
import unittest
def fact(n):
if n < 0:
raise AssertionError
if n > 1:
return n * fact(n -1)
return n
class MyTest(unittest.TestCase):
def test1(self):
self.assertEqual(1, fact(1))
self.assertEqual(2, fact(2))
self.assertEqual(6, fact(3))
self.assertEqual(24, fact(4))
self.assertRaises(AssertionError, fact, -1)
if __name__ == '__main__':
unittest.main()
테스트 주도 개발 FASTA reverse complement
#!python
import unittest
import io
class Fasta:
def __init__(self, name, seq):
self.name = name
self.seq = seq
def get_reverse_complement(self):
return ''.join(self.base_pairs[c] for c in self.seq[::-1])
def to_fasta(self, cols=60):
result = []
result.append(f">{self.name}")
seq = self.seq
while seq:
result.append(seq[:cols])
seq = seq[cols:]
return "\n".join(result) + "\n"
@classmethod
def dna_from_fasta(cls, astr):
lines = astr.splitlines()
name = lines[0][1:]
seq = ''.join(lines[1:])
return cls(name, seq)
@classmethod
def parse_fasta(cls, afile):
lines = [next(afile)]
for line in afile:
if line.startswith('>'):
yield cls.dna_from_fasta('\n'.join(lines))
lines = [line]
else:
lines.append(line)
yield cls.dna_from_fasta('\n'.join(lines))
class DNA(Fasta):
base_pairs = {
'A': 'T',
'T': 'A',
'G': 'C',
'C': 'G',
}
class RNA(Fasta):
base_pairs = {
'A': 'U',
'U': 'A',
'G': 'C',
'C': 'G',
}
def main():
import sys
for dna in DNA.parse_fasta(sys.stdin):
dna.seq = dna.get_reverse_complement()
sys.stdout.write(dna.to_fasta())
class DNATest(unittest.TestCase):
def test_object(self):
dna = DNA('mydna', 'AGTCAA')
self.assertEqual('mydna', dna.name)
self.assertEqual('AGTCAA', dna.seq)
def test_reverse_complement(self):
dna = DNA('mydna', 'AGTCAA')
self.assertEqual('TTGACT', dna.get_reverse_complement())
def test_fasta(self):
input = """\
>test1
AGTCAA
AGTCAA
"""
dna = Fasta.dna_from_fasta(input)
self.assertEqual('test1', dna.name)
self.assertEqual('AGTCAAAGTCAA', dna.seq)
def test_multiple_fasta(self):
input = io.StringIO("""\
>test1
AGTCAA
AGTCAA
>test2
AGTCAA
GG
""")
it = DNA.parse_fasta(input)
dna1 = next(it)
dna2 = next(it)
self.assertEqual('test1', dna1.name)
self.assertEqual('AGTCAAAGTCAA', dna1.seq)
self.assertEqual('test2', dna2.name)
self.assertEqual('AGTCAAGG', dna2.seq)
def test_print_fasta(self):
dna = DNA('mydna', 'AGTCAGTC')
expected = """\
>mydna
AGTC
AGTC
"""
self.assertEqual(expected, dna.to_fasta(cols=4))
def test_rna(self):
rna = RNA('myrna', 'AGUC')
self.assertEqual('myrna', rna.name)
self.assertEqual('AGUC', rna.seq)
self.assertEqual('GACU', rna.get_reverse_complement())
if __name__ == '__main__':
unittest.main()
#main()
2일차 #
Jupyter와 Pandas를 활용한 데이터 분석 (형기은) #
강의자료
파이썬 기계학습 사례분석 (김형용) #
강의자료
- 슬라이드: 20200828_BioCom_파이썬실무활용과기계학습_part2.pdf
- 주피터 노트북: ml-practice.ipynb
- 예시용 자료
- colab에 로컬 파일 업로드 : file_upload.ipynb
영상데이터를 활용한 딥러닝 (권영인) #
만족도 설문조사 #
아래의 만족도 설문조사까지 완료를 해주셔야 수료증 발급이 가능합니다.
* http://naver.me/5NF5VcWw