레이블이 Velvet인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Velvet인 게시물을 표시합니다. 모든 게시물 표시

금요일, 12월 06, 2013

Velvet의 무서움...

예전에 Velvet 사용시 input 대비 사용할 만한 메모리를
표시한 포스팅이 있었는데...
input 서열양이 많아지니...
일정 이상에서는.... 그 두배정도가 필요할듯 보이네요..

raw데이터 (멀티 라이브러리) 압축 푼 데이터가 10G정도인데
필터링 하면 10G이하로 줄어들었을텐데...
72G 서버에서 헐떡데는 꼴이라니.... 쩝..

예상보다 시간이 많이 걸려서 왜 그러나 보니깐..
중간에 swap으로 가고 있는 상황이라..

velvet으로 어셈블리할때에는 일단 메모리가 무한한 곳에서... ㅎㅎ


그리고 velvet은 매번 할때마다 데이터 결과가 다르다는... ㅋㅋ
동일 버전에서 K-mer 및 다른 옵션을 동일하게 두번 돌렸을때 결과값이
달라지니 혹시 같은 옵션으로 돌린결과를 확인 할때 통계값이 상이해도
놀라시지 않으셔도 됩니다.


금요일, 7월 12, 2013

Velvet으로 Assembly하기

결론은 de novo는 흠좀무라는... ㅋㅋ

species가 무엇이 되던간에 말입니다. ㅎㅎ


요즘 몇몇 곰팡이를 조립중에 있는데
SOAPdenovo, Velvet, SPAdes, SSPACE를 중점적으로 사용하고 있습니다.
ALLPATHS-LG는 read 준비하는 것까지는 작동을 하는데
그다음에 본 작업에서 error를 뱉고 죽어버리는 어처구니 없는 상황을 연출해주는 바람에
일단 pass했습니다.

여러 strategy으로 접근 중에 있는데...

아... 본 글은 그게 중요한게 아니라... (다음 기회에 언급 하도록 하겠습니다.)

Velvet assembly할 때 long insert library (Mate-Paired Library)를 한개만 지원하는 것 같아그 문제를 해결하가 위한 tip입니다.

해결 방법은 다음 링크에 나와 있습니다.


EMBOSS의 "revseq"를 사용하면 안습이 된다는 것 빼고는 말이죠~ :)

그래서 준비 했습니다.


#!/usr/bin/python
import os,sys
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC

def readread(s):
        return [s.readline(),s.readline(),s.readline(),s.readline()]


try:
        fq = sys.argv[1]

except:
        print "python command.py <input_fastq>"
        print ""
        exit(1)

fq_open = open(fq,"r")

fq_write = open("%s.rev" % (fq),"w")

s1read = readread(fq_open)

while(s1read[0]):
        h1, h2 = s1read[0].strip(), s1read[2].strip()
        s1, q1 = s1read[1].strip(), s1read[3].strip()

        rev = Seq(s1,IUPAC.unambiguous_dna).reverse_complement()
        qual = q1[::-1]

        fq_write.write("%s\n%s\n%s\n%s\n" % (h1,rev,h2,qual))

        s1read = readread(fq_open)

fq_write.close()

-위 소스는 python 2.6 이상에서 작동합니다. :)

velvet으로 조립 시 mate-paired Library가 여러개라면 서열을 변경 한 이후 사용해 보시기 바랍니다. :)

토요일, 9월 01, 2012

Velvet 사용 Tip

작년부터 NGS, NGS 해서 한두번쯤은
많은 NGS 프로그램들을 들어보셨을 것이고
조금이라도 관련되어 있는 일을 하시는 분이라면
이미 많이사용해 보셨을 것이라고 생각됩니다.

오늘은 그중에서 Velvet, sequence assembly 프로그램에 대해서..

Velvet은 de Bruijn graph 알고리듬을 사용했다고 합니다(라고 메뉴얼에 적혀 있습니다.
물어보지 마십시요. 저도 몰라요 ㅠ.ㅜ ).

여하튼 assembly 프로그램은 제가 알고 있는 바로는 크게 두가지
velvet과 같이 graph 알고리듬을 사용하는 프로그램과
아니면 sequence overlap 방법을 사용하는 프로그램이 있습니다.

그중에서 전 velvet이 좋은데 왜냐?
사용하기가 간편해서 입니다. ABySS나 ALLPATH-LG와 같이 복잡미묘하지 않기때문이죠
(간단하기로는 BGI의 SOAPdenovo가 최고봉인듯;;; )
단, velvet의 경우 big size의 genome을 assembly 할때는 고성능 CPU도 중요하지만
대용량 RAM도 함께 준비하시기 바랍니다.
물론 Big Size genome이라서 RAM이 많이 필요 한게 아니라 assembly read 개수가 많기 때문에
대용량 RAM이 필요한것이니.. ㅎㅎ assembly에 사용할 read 양이 적으면 상관없습니다.
다만 assembly에 사용할  read양이 많으면 대용량 RAM은 필수라는 것 잊지마시기 바랍니다.
-RAM이 작아도 작동은 하지만 swap을 사용하므로 결과 보시기 힘드실겁니다. ㅋ

곰팡이를 assembly 해본 경험으로 미루어 Velvet 에서의 RAM 요구량을
대략 적어봤습니다.
Total Input (Giga) 
Memory (Giga)
40
256
20
128
10
64
5
32
2
16
1
8

Velvet으로 assembly할때는 일단 RAM은 많으면 많을 수록 좋습니다. :) ㅎㅎ

그럼 오늘 포스팅은 여기까지 ㅋ


월요일, 4월 23, 2012

Velvet과 Oases 설치

Velvet 다운로드

$tar zxf velvet_1.2.03.tgz
$cd velvet_1.2.03
$make

default 설정으로 설치하는 경우 그냥 make하면 되지만..
K-mer값을 큰 값으로 사용하고자 하는 경우나 multi-thread를 사용하고자 하는 경우
옵션값을 조절해줘야 한다.
아니면 make할 때 옵션을 설정해 주어도 가능하다. :)


$vi Makefile
...
MAXKMERLENGTH=99
CATEGORIES=16
...
OPENMP=1
LONGSEQUENCES=1
...


$make 





Oases 다운로드

$tar zxf oases_0.2.06.tgz
$cd oases_0.2.06
$make


Oases 또한 Velvet과 마찬가지로 default 설정으로 설치하고자 하는 경우에는 make를 해주면 되지만, velvet경로도 내부 서버 상황에 맞게 설정 해야 하는 경우 가 있으므로, 다음과 같이 Makefile을 수정 후 make를 하면된다. :)


$vi Makefile
...
MAXKMERLENGTH=99
CATEGORIES=16
...
OPENMP=1
LONGSEQUENCES=1
VELVET_DIR=../velvet_1.2.03
...


$make 







수요일, 3월 21, 2012

Velvet 설치 및 사용기


벨벳은 메모리가 중요
그때 그때마다 다르긴 하지만
메모리 요구량이... ㅎㄷㄷㄷ


여하튼....
velvet 설치... make만 하면된다능...
단, 몇개 살펴봐야 하는 옵션은...

CATEGORIES
MAXKMERLENGTH
BIGASSEMBLY
LONGSEQUENCES
OPENMP

요렇게 5가지..
본인의 경우 MAXKMERLENGTH는 길게 (99까지..) OPENMP는 활성화해서 사용하고 있다.
K-mer는 hash table만들때 사용할 길이.. OPENMP는 멀티쓰레드로 분석하고자 하는 경우 필요하다.

>make 'MAXKMERLENGTH=99' 'OPENMP=1'

그 외에는 조건에 맞게 설정을 바꿔주면서 조립 시작하면 될듯... ㅎㅎ

결론은

May the Sequence  be with you.