Skip to content

ISG-Edu20-5 #
Find similar titles

제5회 재직자 재교육 단기과정 유전체데이터 분석교육

파이썬 실무 활용과 기계학습

개요 #

  • 일시: 2020-08-10 ~ 2020-08-23
  • 장소: 웨비나

1일차 #

파이썬 개요와 기본 문법 (이채민) #

교육자료

파이썬 실무활용 팁 모음 (이경표) #

교육자료

파이썬 테스트주도개발(TDD)과 객체지향프로그래밍(OOP) (김형용) #

교육자료

테스트 주도 개발 준비

#!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를 활용한 데이터 분석 (형기은) #

강의자료

파이썬 기계학습 사례분석 (김형용) #

강의자료

영상데이터를 활용한 딥러닝 (권영인) #

만족도 설문조사 #

아래의 만족도 설문조사까지 완료를 해주셔야 수료증 발급이 가능합니다.
* http://naver.me/5NF5VcWw

0.0.1_20140628_0