Differences between revisions 74 and 75
Revision 74 as of 2006-03-23 17:34:17
Size: 5892
Editor: 211
Comment:
Revision 75 as of 2006-03-23 17:47:31
Size: 6371
Editor: 211
Comment:
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
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-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시


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차 시험보는 장소

attachment: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