To make sure which perform more accurately, I tested two programs in two strategies. Actually the reason why I did do this test is that most of people in my firm say that for de novo assembly FLX is much more suitable than solexa without any evidence. So I decided to test two system, but there is no real data which I can use, so I just do simulation test of the two program which is representative for each system.
Both of them, velvet and newbler are used for de novo assembly. In case of velvet, by using De Bruijn graph methodology It carry out short read assembly with data from solexa, solid. On the other hand, newbler is software from Roche, FLX and it is based on overlap layout consensus methodology (for seeing about the algorithm refer http://www.ncbi.nlm.nih.gov/pubmed/20211242).
I will compare the results from both program in two strategies. All of read data in these tests are simulation data which were made from reference genome by computational simulation.
First, velvet with paired-end read of which length is 78 bp and insert size is 300. newbler with single read of which length is 300 bp.
second, in case of velvet from first test adding long insert library with same condition
Tuesday, July 27, 2010
Monday, July 26, 2010
stubborness
나이가 먹어가면서 느끼는.. 살아가면서 꼭 필요한 요소가 긍정, 열정, 완고함이라고 생각한다.
긍정의 요소가 있어가 어떠한 일에 대해 가능성을 느낄수 있고 열정의 요소가 있어야 그 가능성을 찾으려는 의지가 생기고 완고함이 있어야 발견한 가능성을 실현 할수 있는것 같다.
꼭 필요하다고 느끼는 이 세가지 모두는 내게 그리 많이 주어지지 않았다. 특히나 이번엔 완고함에 대해 이야기 하고자 한다. 머리속에서 지워지지 않은 일이 있으므로..
완고함이라 함은 어찌보면 의지이기도 하고 믿음이기도 하다. 내가 원하는걸 해낼거라는 의지이자 내가 하는 일이 옳은 일이라고 생각하는 믿음.
어제 일이다. 하루종일 까페에 앉아서 내가 원하는 공부를 하고 내가 원하는 논문을 읽고 나름 보람찬 하루를 보낸 후, 늦은 저녁에 여자 친구와 함께 여자 친구의 친구와 여자 친구의 친구의 새로 만나는 남자를 만났다. 나와 동갑의 그는 상대 여자와 만남 초기이기에 나름 신경쓴 옷차림에 크라이슬러를 끌고 우리를 맞이했다. 음 크라이슬러.. 들어보니 집에 팬션도 있고 사는 집 아이 같다. 아버지가 건축업에서 일한다고 하니.. 음..
오늘 아침부터 일이 손에 잡히지 않는다. 나름 미래 지향적이고 물질적인 것에 많이 연연하지 않는다고 생각했는데 역시나 마찬가지다. 크라이슬러만 생각난다. 내 나름 열심히 살았다고 생각하고 여지껏 걸어온 길의 대부분에 자신감이 있었는데 내 믿음이 흔들린다. 내가 지금 하는 일이 보잘 것 없어보이며 내가 일궈낸(물론 개뿔없지만) 경력들이 의미 없어보인다. 크라이슬러 하나에. ㅋ
몇일전 미국으로 유학은 가는 회사동료가 회식자리에 왔었다. 그때 내 옆에 멍청한 부서장이 나에게 저친구 유학가는거 부럽지 않냐고 물었다. 부럽다라.. 유학을 가는게 부럽냐라니.. 멍청한 질문이다. 예전부터 그 유학가는 회사 동료와 대화를 나눌 때부터 부럽고 부끄러운 점이 있었다. 그는 진정 완고함을 지녔다. 자신의 일에 대해 깊은 믿음을 가지고 있었고 어떠한 망설임이나 선택에 대한 걱정따윈 없는듯 보이는 그 모습. 난 그의 그 모습이 부러웠다. 그 완고함을 가지고 있는것. 그런 정도의 완고함이라면 비록 지금 바닥에 있더라도 결코 그 어느 누구도 부럽지 않고 내 자신의 일 하나하나에 즐거움을 느낄 것이라고 생각된다.
내가 정확하게 유학, 박사를 하겠다는 말을 못하는 이유도 이와 같은 것이 아닐까 한다. 아직 그 완고함이 부족하다. 내겐. 더 깊은 열망과 완고함을 위해 더 진하게 살도록 하겠다.
긍정의 요소가 있어가 어떠한 일에 대해 가능성을 느낄수 있고 열정의 요소가 있어야 그 가능성을 찾으려는 의지가 생기고 완고함이 있어야 발견한 가능성을 실현 할수 있는것 같다.
꼭 필요하다고 느끼는 이 세가지 모두는 내게 그리 많이 주어지지 않았다. 특히나 이번엔 완고함에 대해 이야기 하고자 한다. 머리속에서 지워지지 않은 일이 있으므로..
완고함이라 함은 어찌보면 의지이기도 하고 믿음이기도 하다. 내가 원하는걸 해낼거라는 의지이자 내가 하는 일이 옳은 일이라고 생각하는 믿음.
어제 일이다. 하루종일 까페에 앉아서 내가 원하는 공부를 하고 내가 원하는 논문을 읽고 나름 보람찬 하루를 보낸 후, 늦은 저녁에 여자 친구와 함께 여자 친구의 친구와 여자 친구의 친구의 새로 만나는 남자를 만났다. 나와 동갑의 그는 상대 여자와 만남 초기이기에 나름 신경쓴 옷차림에 크라이슬러를 끌고 우리를 맞이했다. 음 크라이슬러.. 들어보니 집에 팬션도 있고 사는 집 아이 같다. 아버지가 건축업에서 일한다고 하니.. 음..
오늘 아침부터 일이 손에 잡히지 않는다. 나름 미래 지향적이고 물질적인 것에 많이 연연하지 않는다고 생각했는데 역시나 마찬가지다. 크라이슬러만 생각난다. 내 나름 열심히 살았다고 생각하고 여지껏 걸어온 길의 대부분에 자신감이 있었는데 내 믿음이 흔들린다. 내가 지금 하는 일이 보잘 것 없어보이며 내가 일궈낸(물론 개뿔없지만) 경력들이 의미 없어보인다. 크라이슬러 하나에. ㅋ
몇일전 미국으로 유학은 가는 회사동료가 회식자리에 왔었다. 그때 내 옆에 멍청한 부서장이 나에게 저친구 유학가는거 부럽지 않냐고 물었다. 부럽다라.. 유학을 가는게 부럽냐라니.. 멍청한 질문이다. 예전부터 그 유학가는 회사 동료와 대화를 나눌 때부터 부럽고 부끄러운 점이 있었다. 그는 진정 완고함을 지녔다. 자신의 일에 대해 깊은 믿음을 가지고 있었고 어떠한 망설임이나 선택에 대한 걱정따윈 없는듯 보이는 그 모습. 난 그의 그 모습이 부러웠다. 그 완고함을 가지고 있는것. 그런 정도의 완고함이라면 비록 지금 바닥에 있더라도 결코 그 어느 누구도 부럽지 않고 내 자신의 일 하나하나에 즐거움을 느낄 것이라고 생각된다.
내가 정확하게 유학, 박사를 하겠다는 말을 못하는 이유도 이와 같은 것이 아닐까 한다. 아직 그 완고함이 부족하다. 내겐. 더 깊은 열망과 완고함을 위해 더 진하게 살도록 하겠다.
Saturday, July 24, 2010
chapter 5 (TCP 기반 서버 / 클라이언트 2)
앞에서 구현한 TCP 서버/ 클라이언트는 프로그래밍 관점에서만 공부한 것이다. 이는 TCP의 동작 방식을 고려 하지 않았는데 이번장을 통해 TCP의 이론적인 부분을 이해한다.
-에코 클라이언트의 완벽 구현-
왼쪽 echo_client.c를 보면 45~46의 코드를 보면 "read, write 함수가 호출될 때마다 문자열 단위로 실제 입출력이 이뤄진다"는 잘못된 가정이 있는 것을 알수 있다. 그러나 TCP는 연결 지향형으로 전송 데이터의 경계가 없다. 그렇기 때문에 한 데이터를 서버가 두 패킷에 나눠 보낼수도 있고 여러 문자열이 한 패킷에 올 수도 있다. 이 문제를 아래 echo_client2.c 에서 보듯이 write로 전송한 문자열의 길이만큰 read로 읽을때까지 반복하면 해결된다.

에코 클라이언트 이외의 경우에는? 에플리케이션 프로토콜의 정의 : 위의 경우는 수신할 데이터의 크기를 알 경우지만 일반적으로는 그렇지 않다. 이럴 때 필요한것이 어플리케이션 프로토콜.
어플리케이션 프로토콜이란? 클라이언트의 구현과정에서 만들어지는 약속
-TCP의 이론적인 이야기-
TCP 소켓의 생성에서 소멸과정을 크게 3단계로 나눌수 있다.
1.상대 소켓과의 연결 : Three-way handshaking (3번의 shaking에 걸쳐서 이루어진다. 호스트 A가 접속하고자 하는 호스트 B에 패킷을 보내고 B에서는 받은 패킷을 확인하면서 새로운 패킷을 보내고 다시 A가 B에서 온 패킷을 확인하는 과정)
2.상대 소켓과의 데이터 송수신 :
3.상대 소켓과의 연결 종료 : Four-way handshaking으로 호스트 A가 연결을 끊기 위한 패킷을 보내면 호스트 B에서 응답 패킷을 보내고 B에서 다시 한번 종료 패킷을 보내면 A에서는 그 패킷을 보고 연결을 종료한다.
-에코 클라이언트의 완벽 구현-
왼쪽 echo_client.c를 보면 45~46의 코드를 보면 "read, write 함수가 호출될 때마다 문자열 단위로 실제 입출력이 이뤄진다"는 잘못된 가정이 있는 것을 알수 있다. 그러나 TCP는 연결 지향형으로 전송 데이터의 경계가 없다. 그렇기 때문에 한 데이터를 서버가 두 패킷에 나눠 보낼수도 있고 여러 문자열이 한 패킷에 올 수도 있다. 이 문제를 아래 echo_client2.c 에서 보듯이 write로 전송한 문자열의 길이만큰 read로 읽을때까지 반복하면 해결된다.
에코 클라이언트 이외의 경우에는? 에플리케이션 프로토콜의 정의 : 위의 경우는 수신할 데이터의 크기를 알 경우지만 일반적으로는 그렇지 않다. 이럴 때 필요한것이 어플리케이션 프로토콜.
어플리케이션 프로토콜이란? 클라이언트의 구현과정에서 만들어지는 약속
-TCP의 이론적인 이야기-
TCP 소켓의 생성에서 소멸과정을 크게 3단계로 나눌수 있다.
1.상대 소켓과의 연결 : Three-way handshaking (3번의 shaking에 걸쳐서 이루어진다. 호스트 A가 접속하고자 하는 호스트 B에 패킷을 보내고 B에서는 받은 패킷을 확인하면서 새로운 패킷을 보내고 다시 A가 B에서 온 패킷을 확인하는 과정)
2.상대 소켓과의 데이터 송수신 :
3.상대 소켓과의 연결 종료 : Four-way handshaking으로 호스트 A가 연결을 끊기 위한 패킷을 보내면 호스트 B에서 응답 패킷을 보내고 B에서 다시 한번 종료 패킷을 보내면 A에서는 그 패킷을 보고 연결을 종료한다.
Thursday, July 22, 2010
6th DNA base, 5-hydroxymethylcytosine
http://www.genomeweb.com/rockefeller-researchers-identify-sixth-nucleotide
Today I found the article above and new epigenetic factor, 5-hydroxymethylcytosine. I am always so late.
Today I found the article above and new epigenetic factor, 5-hydroxymethylcytosine. I am always so late.
Tuesday, July 20, 2010
chapter 4 (TCP 기반 서버/ 클라이언트 1)
앞서 소켓의 생성과 생성된 소켓에 주소 할당을 알아보았다. 이번에는 연결지향형 소켓을 중심으로 데이터 송수신방법에 대해 살펴보도록 한다.
-TCP와 UDP에 대한 이해-
TCP 소켓 : 프로토콜 체계는 IPv4인 PF_INET 이고 데이터 전송 방식은 연결지향형인 SOCK_STREAM인 유일한 소켓.
TCP/IP 프로토콜 스택 : 오른쪽 그림에서와 같이 4개의 계층으로 나뉘다. 이는 '인터넷 기반의 효율적인 데이터 전송' 이라는 문제를 하나의 큰프로토콜로 해결하려는 것이 아니라 작은 문제로 나눠서 효율적으로 풀기 위한것으로 표준화 작업을 통한 개방형 시스템 설계의 장점을 가진다.
LINK 계층 : 물리적 영역의 표준화로 LAN과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역
IP 계층 : 목적지로 데이터를 전송하기 위해서 어떤 경로를 거쳐갈지를 해결하는 것이 IP 계층이고 이 계층에서 사용하는 프로토콜이 IP(internet protocol) 이다. 비연결지향적이며 데이터 손실이 있을 수 있어 신뢰할만한 프로토콜이 아니다.
TCP/UDP 계층 : IP계층에서 데이터 전송을 위한 경로를 알려주면 이를 바탕으로 실제 데이터 송수신을 담당하는 것이 TCP/UDP 경로이고 TCP가 상대적으로 복잡하다. IP 자체는 신뢰할만하지 않기 때문에 TCP 를 통해서 데이터 전송의 성공 확인을 하면서 안정적인 데이터 전송이 가능해 진다.
APPLICATION 계층 : 위의 과정은 소켓이라는 것 하나에 감춰져 있기에 프로그래머들이 자유로워 지는데 이러한 소켓이라는 도구를 사용하여 프로그램의 성격에 데이터 송수신에 대한 규칙을 APPLICATION 프로토콜이라 한다.
-TCP기반 서버, 클라이언트 구현-
TCP 서버에서의 기본적인 함수호출 순서 : socket(소켓 생성) -> bind(소켓 주소 할당) -> listen(연결 요청 대기 상태) -> accept(연결허용) -> read/write(데이터 송수신) -> close(연결종료)
함수의 매개변수와 return 형은 그림 참조
연결요청 대기상태로의 진입 : listen 함수가 호출되어야 클라이언트에 connect 함수가 호출될 수 있다.
매개인자 sock 은 '연결요청 대기상태'(클라이언트가 연결요청을 했을 때 연결 수락까지 요청을 대시시킬수 있는 상태)에 두고자 하는 소켓의 파일 디스크립터, backlog는 '연결 요청 대기 queue'의 크기 정보로 backlog를 5로 하였으면 클라이언트의 연결요청을 5개까지 대기 시킬수 있게 된다.
정리하자면 socket 함수로 생성된 소켓이 listen함수에 의해 문지기 소켓(서버 소켓)이 되어 banklog 만큼의 크기로 대기실을 만들고 이러한 상태가 되면 이를 '연결 요청 대기 상태'라고 한다.
클라이언트의 연결요청 수락 : socket 함수에 의해 만들어진 소켓은 listen함수에 의해 서버소켓이 되고 클라이언트의 연결요청을 대기시킨다. 이러한 대기중인 클라이언트와 데이터를 주고 받을 소켓이 하나 더 필요하다. 이는 accept 함수를 호출함으로서 소켓이 만들어 지고 이 소켓은 대기중인 클라이언트 소켓과 자동으로 연결된다.
accept 함수의 매개변수는 bind 함수와 같으나 주소정보인 addr 은 bind에서 서버 자신의 주소아지만 accept에서는 연결요청 한 클라이언트의 주소정보이다. 또한 마지막 매개변수인 addrlen은 주소의 변수의 크기를 다른 변수에 저장한 뒤 그 변수의 주소 값을 전달해야 한다.
TCP 클라이언트의 기본적인 함수호출 순서 : 다음은 클라이언트의 구현 순서이다. socket(소켓생성) - > connect(연결요청) -> read/write(데이터 송수신) -> close(연결종료)
connect의 매개변수 중 sockdf 는 클라이언 소켓의 파일 디스크립터, servaddr은 연결요청을 하고자하는 서버의 주소 정보, addrlen은 주소의 변수 길이로 크기 정보를 변수에 저장한다음 그 변수의 주소를 넘겨야 한다.
connect함수의 return은 서버의 listen함수에 의해 대기 큐에 등록되거나 오류에 의한 연결중단이 되었을때 반환된다.
서버구현시 bind를 통해 소켓에 자기 자신의 IP와 PORT를 할당하였는데 클라이언트 구현시 이점이 생략되어 있다. 이는 connect 함수가 호출될때 운영체제(커널)에 의해 자신에게 할당된 IP와 임의의 PORT를 할당해서 생략되어지는 것이다.
-Iterative 기반의 서버, 클라이언트 구현-
에코서버와 에코 클라이언트를 구현하고자 한다. 에코 서버는 클라이언트가 전송하는 문자열 데이터를 그대로 재전송하는 서버이다.
Iterative 서버의 구현 : 오른쪽 그림과 같은 서버의 형식이 iterative 서버이며 이는 한번에 하나의 클라이언트에게만 서비스가 가능하다. 동시에 여러 클라이언트를 상대하기 위해서는 프로세스와 쓰레드의 개념을 알아야 한다.
이부분은 코드 위주이므로 책을 참조한다.
-TCP와 UDP에 대한 이해-
TCP 소켓 : 프로토콜 체계는 IPv4인 PF_INET 이고 데이터 전송 방식은 연결지향형인 SOCK_STREAM인 유일한 소켓.
TCP/IP 프로토콜 스택 : 오른쪽 그림에서와 같이 4개의 계층으로 나뉘다. 이는 '인터넷 기반의 효율적인 데이터 전송' 이라는 문제를 하나의 큰프로토콜로 해결하려는 것이 아니라 작은 문제로 나눠서 효율적으로 풀기 위한것으로 표준화 작업을 통한 개방형 시스템 설계의 장점을 가진다.
LINK 계층 : 물리적 영역의 표준화로 LAN과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역
IP 계층 : 목적지로 데이터를 전송하기 위해서 어떤 경로를 거쳐갈지를 해결하는 것이 IP 계층이고 이 계층에서 사용하는 프로토콜이 IP(internet protocol) 이다. 비연결지향적이며 데이터 손실이 있을 수 있어 신뢰할만한 프로토콜이 아니다.
TCP/UDP 계층 : IP계층에서 데이터 전송을 위한 경로를 알려주면 이를 바탕으로 실제 데이터 송수신을 담당하는 것이 TCP/UDP 경로이고 TCP가 상대적으로 복잡하다. IP 자체는 신뢰할만하지 않기 때문에 TCP 를 통해서 데이터 전송의 성공 확인을 하면서 안정적인 데이터 전송이 가능해 진다.
APPLICATION 계층 : 위의 과정은 소켓이라는 것 하나에 감춰져 있기에 프로그래머들이 자유로워 지는데 이러한 소켓이라는 도구를 사용하여 프로그램의 성격에 데이터 송수신에 대한 규칙을 APPLICATION 프로토콜이라 한다.
-TCP기반 서버, 클라이언트 구현-
TCP 서버에서의 기본적인 함수호출 순서 : socket(소켓 생성) -> bind(소켓 주소 할당) -> listen(연결 요청 대기 상태) -> accept(연결허용) -> read/write(데이터 송수신) -> close(연결종료)
함수의 매개변수와 return 형은 그림 참조
연결요청 대기상태로의 진입 : listen 함수가 호출되어야 클라이언트에 connect 함수가 호출될 수 있다.
매개인자 sock 은 '연결요청 대기상태'(클라이언트가 연결요청을 했을 때 연결 수락까지 요청을 대시시킬수 있는 상태)에 두고자 하는 소켓의 파일 디스크립터, backlog는 '연결 요청 대기 queue'의 크기 정보로 backlog를 5로 하였으면 클라이언트의 연결요청을 5개까지 대기 시킬수 있게 된다.
정리하자면 socket 함수로 생성된 소켓이 listen함수에 의해 문지기 소켓(서버 소켓)이 되어 banklog 만큼의 크기로 대기실을 만들고 이러한 상태가 되면 이를 '연결 요청 대기 상태'라고 한다.
클라이언트의 연결요청 수락 : socket 함수에 의해 만들어진 소켓은 listen함수에 의해 서버소켓이 되고 클라이언트의 연결요청을 대기시킨다. 이러한 대기중인 클라이언트와 데이터를 주고 받을 소켓이 하나 더 필요하다. 이는 accept 함수를 호출함으로서 소켓이 만들어 지고 이 소켓은 대기중인 클라이언트 소켓과 자동으로 연결된다.
accept 함수의 매개변수는 bind 함수와 같으나 주소정보인 addr 은 bind에서 서버 자신의 주소아지만 accept에서는 연결요청 한 클라이언트의 주소정보이다. 또한 마지막 매개변수인 addrlen은 주소의 변수의 크기를 다른 변수에 저장한 뒤 그 변수의 주소 값을 전달해야 한다.
TCP 클라이언트의 기본적인 함수호출 순서 : 다음은 클라이언트의 구현 순서이다. socket(소켓생성) - > connect(연결요청) -> read/write(데이터 송수신) -> close(연결종료)
connect의 매개변수 중 sockdf 는 클라이언 소켓의 파일 디스크립터, servaddr은 연결요청을 하고자하는 서버의 주소 정보, addrlen은 주소의 변수 길이로 크기 정보를 변수에 저장한다음 그 변수의 주소를 넘겨야 한다.
connect함수의 return은 서버의 listen함수에 의해 대기 큐에 등록되거나 오류에 의한 연결중단이 되었을때 반환된다.
서버구현시 bind를 통해 소켓에 자기 자신의 IP와 PORT를 할당하였는데 클라이언트 구현시 이점이 생략되어 있다. 이는 connect 함수가 호출될때 운영체제(커널)에 의해 자신에게 할당된 IP와 임의의 PORT를 할당해서 생략되어지는 것이다.
-Iterative 기반의 서버, 클라이언트 구현-
에코서버와 에코 클라이언트를 구현하고자 한다. 에코 서버는 클라이언트가 전송하는 문자열 데이터를 그대로 재전송하는 서버이다.
Iterative 서버의 구현 : 오른쪽 그림과 같은 서버의 형식이 iterative 서버이며 이는 한번에 하나의 클라이언트에게만 서비스가 가능하다. 동시에 여러 클라이언트를 상대하기 위해서는 프로세스와 쓰레드의 개념을 알아야 한다.
이부분은 코드 위주이므로 책을 참조한다.
Monday, July 19, 2010
De novo assembly of a 40 Mb Eukaryotic Genome from Short Sequence Reads: Sordaria macrospora, a Model Organism for Fungal Morphogenesis
To see the most recent de novo assembly paper, I found this paper(http://www.plosgenetics.org/article/info:doi/10.1371/journal.pgen.1000891). I will just focus on genomic assembly part in this paper.
They use solexa and FLX data. They produce a single and two paired-end data of different insert size libraries from solexa and single read from FLX. The amount of data showed in figures. A little bit doubtful point is the amount of read is too small compared with my data. This maybe come from the difference of version of solexa.
assembly process
The assembly process is simple. They assembled the total raw data from both system and contig from FLX data with Velvet. They said that FLX data reduced the gaps in contigs and addition of paired-end data improved N50 size.
confirmation of assembly
Checking the existence of synteny block between draft genome and closed species. Predicted protein from draft genome mapped to relatively closed species.
They use solexa and FLX data. They produce a single and two paired-end data of different insert size libraries from solexa and single read from FLX. The amount of data showed in figures. A little bit doubtful point is the amount of read is too small compared with my data. This maybe come from the difference of version of solexa.
assembly process
The assembly process is simple. They assembled the total raw data from both system and contig from FLX data with Velvet. They said that FLX data reduced the gaps in contigs and addition of paired-end data improved N50 size.
confirmation of assembly
Checking the existence of synteny block between draft genome and closed species. Predicted protein from draft genome mapped to relatively closed species.
Genomic Analysis of Organismal Complexity in the Multicellular Green Alga Volvox carteri
I choose this paper for reporting in full, because
1. this is published in science (what I feel in these days is that science is the most hard journal to understand exactly, this means that the paper in this journal compress enormous knowledge, so this make me study a lot),
2. this paper contain de novo assembly, so I want to find how they do that and confirm the assemly,
3. they compare two relative species,
All of these reasons are the factors that make me feel this paper can be my role model paper.
Subscribe to:
Posts (Atom)




