(<-)

[../2006-02]

[../2006-04]

(->)

2006 / March
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
-1- -2- -3- -4-
공휴일
-5- -6- -7- -8- -9- -10- -11-
-12- -13- -14- -15- -16- -17- -18-
-19- -20- -21- -22- -23- -24- -25-
-26- -27- -28- -29- -30- -31-
리눅스시험2시
1000일^^


2006-03-28

빌게이츠의 인생충고 10가지...

  1. 인생이란 원래 공평하지 못하다. 그런 현실에 대하여 불평할 생각하지 말고 받아들여라.
  2. 세상은 네 자신이 어떻게 생각하든 상관하지 않는다. 세상이 너희들한테 기대하는 것은 네가 스스로 만족한다고 느끼기 전에 무엇인가를 성취해서 보여 줄 것을 기다리고 있다.
  3. 대학 교육을 받지 않은 상태에서 연봉이 4만 달러가 될 것이라고는 상상도 하지 말라.
  4. 학교 선생님이 까다롭다고 생각되거든 사회 나와서 직장 상사의 진짜 까다로운 맛을 한 번 느껴 봐라.
  5. 햄버거 가게에서 일하는 것을 수치스럽게 생각하지 마라. 너희 할아버지는 그 일을 기회라고 생각하였다.
  6. 네 인생을 네가 망치고 있으면서 부모 탓을 하지 마라. 불평만 일삼을 것이 아니라 잘못한 것에서 교훈을 얻어라.
  7. 학교는 승자나 패자를 뚜렷이 가리지 않을지 모른다. 어떤 학교에서는 낙제 제도를 아예 없애고 쉽게 가르치고 있다는 것을 잘 안다. 그러나 사회 현실은 이와 다르다는 것을 명심하라.
  8. 인생은 학기처럼 구분되어 있지도 않고 여름 방학이란 것은 아예 있지도 않다. 네가 스스로 알아서 하지 않으면 직장에서는 가르쳐 주지 않는다.
  9. TV는 현실이 아니다. 현실에서는 커피를 마셨으면 일을 시작하는 것이 옳다.
  10. 공부 밖에는 할 줄 모르는 '바보'한테 잘 보여라. 사회 나온 다음에는 아마 그 '바보' 밑에서 일하게 될지 모른다.


2006-03-27

강의 : 이화여대 이상혁 교수님

세번째 강의...

분자생물학에 대한 개괄적인 내용이었다. central dogma...and informatics적인 central dogma


2006-03-23

Django tutorial 1 번역중...

Django 실습

  • python manage.py runserver -> Django 서버가 돌아간다.

  • python manage.py runserver 0.0.0.0:8000 -> 원격지에서 확인하고 싶으면...

  • sqlite3 test.db -> sqlite3는 파일 하나로 db를 만든다.

  • vi settings.py

    -> DATABASE_ENGINE에 sqlite3

    -> DATABASE_NAME에 만든 데이타베이스 이름, 단 sqlite3는 db 파일경로

  • python manage.py init ->

  • apt-cache search pysqlite2 ->

  • apt-get install python2.4-pysqlite2 ->


2006-03-20

이번주 일요일에 리눅스마스타 1급1차 시험보는 장소

linux.jpg


2006-03-16

Introduction to Bioinformatics 2

강의 : 이화여대 이상혁 교수님

두번째 강의...


2006-03-14

Introduction to Bioinformatics 1

강의 : 이화여대 이상혁 교수님

첫 주 강의 시작...


2006-03-06

EightQueenProblem

  • 고전적 퍼즐게임. 체스판위의 Queen은 장기의 차처럼 전후좌우 이동이 가능하며, 대각선으로도 가능하다. 총 8*8 크기의 체스판위에 Queen 8개를 올려놓고 이들이 서로 공격하지 않도록 자리배치하는 문제.


2006-03-03

어제에 이어서...

1. classmethod : single fasta file을 title과 sequence 부분으로 나눠줄때 사용했다.

  • 일반 메쏘드가 첫 인수(self)로 인스턴스 객체를 받는 것에 비해서 클래스 메쏘드는 첫 인수로 클래스 객체를 받는다. 메쏘드를 클래스 메쏘드로 변환하기 위해서 classmethod()를 호출해야 한다. 클래스 메쏘드 호출시 첫 번째 인수로 자동으로 해당 클래스 객체가 전달된다.

@classmethod
    def FastaParsing(klass, aStr):
        fasta = klass()
        lines = aStr.splitlines()
        fasta.title = lines[0][1:]
        fasta.sequence = ''.join(lines[1:])
        return fasta
  • 이 함수는 DNA 클래스 안에 있다. DNA 클래스 밖으로 뺐더니 TypeError: 'classmethod' object is not callable 에러가 발생했다.

2. TypeError: unbound method FastaParsing() must be called with DNA instance as first argument (got str instance instead)

  • FastaParsing()을 classmethod를 사용하지 않고 했더니 이와 같은 에러 메세지가 발생했다.

3. Unbound Class Method : 클래스 객체를 이용하여 메쏘드를 호출하는 것. 예) MyClass.set(c, 'egg'))

4. 질량 리스트를 질량이 작은 순으로 출력하기

  • ', '.join('%.2f'%mass for mass in sorted(masses))


2006-03-02

어제에 이어서...

1. enumerate() : peptide list들의 질량 list값들을 unittest에서 test할때 사용했다. 하나의 int값을 test할때는 assertAlmostEqual을 사용

  • for문을 이용할 때 요소의 값뿐만 아니라 인덱스 값도 함께 필요할 때 사용한다. (인덱스, 요소값)튜플 자료를 반복적으로 넘겨준다.
  • 문제점 발견) Protein() 안에 있는 RestrictionEnzymes를 깔끔하게 하기 위해서 밖으로 뺐더니 NameError: name 'Trypsine' is not defined 가 발생했다.

  • 문제점 해결) class Trypsin 보다 위에 있었기 때문에 에러가 발생했다. 아래에 두면 OK. 왜냐하면 이 녀석이 Trypsine을 호출할 때 위에서부터 검색하기 때문이다.

2. StringIO() : print 출력을 문자열로 저장하는 방법은 StringIO 표준 모듈을 이용하는 것이 간편하다. StringIO 모듈의 StringIO 클래스는 문자열을 파일 객체처럼 입.출력한다.

3. FastaGenerator() : multi fasta file을 받아서 record 단위로 출력해 주는 함수이다.

  • next() : 순차적으로 자료를 넘기고 더 이상 자료를 넘겨줄 수 없는 경우에는 StopIteration 예외를 발생한다. 파일 객체가 라인 단위의 반복자를 지원한다.

def FastaGenerator(aFile):
    lines = [aFile.next()]
    for line in aFile:
        if line.startswith('>'):
            yield ''.join(lines)
            lines = []
        lines.append(line)
    else:
        yield ''.join(lines)
  • 의문) : lines = [aFile.next()]에서 내 생각엔 aFile.next()를 쓰지 않아도 될거 같은데 없으면 AssertionError: '>title1\nATGC\nATGC\n' != " 가 발생한다. ???

 def testFastaGenerator(self):
        input = StringIO('''\
>title1
ATGC
ATGC
>title2
TACG
TACG
''')
        g = FastaGenerator(input)
        expect = '''\
>title1
ATGC
ATGC
'''
        self.assertEquals(expect, g.next())
        expect1 = '''\
>title2
TACG
TACG
'''
        self.assertEquals(expect1, g.next())
  • 의문 : g.next()로 하지 않고, FastaGenerator(input)을 직접 사용했더니 AssertionError: '>title2\nTACG\nTACG\n' != 'TACG\nTACG\n' 에러가 발생했다. 왜 그럴까?

    -> AssertionError는 assert문이 실패할 때 발생한다.

4. lines.splitlines() : 문자열을 라인단위로 분리한다. 결과는 리스트


2006-03-01

오늘의 문제 : 입력으로 multi FASTA format으로 구성된 DNA 서열을 받고, 출력으로 peptide 조각들의 질량을 돌려준다.

  • 1단계 : CRC card를 작성해 보자.
  • 2단계 : unittest로 코드 작성

1. map -> start codon의 인덱스를 찾기 위해서 사용했다. 여러개 있을 수도 있기 때문에 사용

  • map함수의 첫번째 인수는 함수이고, 두번째 인수는 리스트이다. 두번째 인수의 모든 아이템들은 첫 인수인 함수에 적용되고 결과로 리스트를 리턴한다.
  • startcodon = map(sequence.find, StartCodon)

주의) 내가 받는 값의 type을 잘 살펴보자...

2. yield : protein sequence를 받아서 restriction enzyme으로 자를 때 사용했다.

  • 일반 함수와 발생자의 큰 차이점은 일반 함수는 한번 함수가 호출되면 종료할 때까지 모든 일을 마친 결과를 넘겨야 하는 반면에, 발생자는 정보를 생성하는 중간에 결과를 넘길 수 있다.


(<-)

[../2006-02]

[../2006-04]

(->)


CategoryWebLogYong

parkpro/2006-03 (last edited 2011-08-03 11:00:55 by localhost)

web biohackers.net