수요일, 7월 24, 2013

SOAPaligner 결과에 Header넣고 SAM/BAM 변환

NGS alignment tool 중 BGI의 SOAPaligner가 있는데, 그 중 SAOP2 (SOAP3는 GPU로 인해 제한적으로 사용가능하기 때문에 SOAP2를 주력으로 사용하고 있다.) 작업 후 sam->bam으로 만드는 작업 중 문제에 대해서 얘기하고자 한다.

SOAPaligner 작업을 하면 sam/bam이 아닌 text파일이 생성된다.

그러나 이 text파일은 우리가 routine하게 사용하는 프로그램의 input으로는
사용할수가 없다는 것이 함정!!!

그래서 일련의 변환 작업을 필요로 한다.

오늘은 SOAP의 sam/bam 변환 작업에 대해서 알아보도록 하겠습니다.

이제와서 갑자기 SOAP을 얘기하냐고 물으신다면
요즘 SOAP을 가까이 하는 관계로 ㅎㅎㅎㅎ
팔은 안으로 굽지만 포스팅은 많이 사용하고 있는 tools 중심이니깐~ :)


첫번째 SOAPaligner는 알아서 잘 alignment 하도록 합니다.

이제 본격적인 변환 작업입니다.
다행히 BGI에서 soap output 형식을 sam 형식으로 변환시켜주는 perl 스크립트를 제공하고 있습니다.
그이름도 아름답도다 soap2sam.pl

근데 함정은 soap으로 alignment된 결과만 sam 형식으로 변환해준다는 점.
sam에 있어야할 header같은 정보는 무시한다는 것!!!


soap에는 없는 sam의 header파일 만드는 방법은
그냥 간단히 reference파일을 사용하여 header로 변경하는 script코드 작성하여도 되고
import os,sys
from Bio import SeqIO
try:
    input_fa = sys.argv[1]
except:
    print "python convert_ref_sam_header.py <ref> > <outpu.header>"
    exit(1)

print "@HD\tVN:1.0\tSO:unsorted"
for rec in SeqIO.parse(open(input_fa), format='fasta'):
    name = rec.description
    seq = rec.seq.tostring()
    name = (name.split()[0]).strip()
    print "@SQ\tSN:%s\tLN:%s" % (name,len(seq.strip()))

print "@PG\tID:soap2\tPN:soap2\tVN:2.2.1"


아니면

samtools faidx reference.fa
작업 후
cut -f 1,2 reference.fa.fai | awk '{print "@SQ\tSN:"$1"\tLN:"$2}' > sam.header
필요한 컬럼과 문자열만 조합하여 추출하여도 된다.
(이 경우 상하단에 @HD와 @PG 헤더를 추가해주어야 한다는 불편함이 있다. )


이런 작업을 거치면
soap을 sam을 거쳐 bam파일을 만들어서 다음 작업을 이어나갈수 있게 된다. :)


혹 fai파일을 만들기 위해 samtools faidx 작업을 수행하다가 에러가 발생하는 경우
fai파일을 만드려는 reference파일을 확인해보기 바란다.
fasta형식의 서열간 빈 line이 있는 경우 에러를 발생시킨다.
이런 경우 간단히 vi로 들어가서":g/^$/d"로 공란을 제거해주면 정상적으로 fai파일을 만들게 된다.

그리고 가장 쉬운 방법은 나중에 알려주는 법
(역시 메뉴얼을 잘 읽어야 한다는... 아놔....)
samtools view -bT reference.fa input.sam > output.bam
위에와 같이 뻘짓 필요없다는... ㅋㅋㅋㅋㅋㅋ ㅠ.ㅜ 아...;;; 제길..




금요일, 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가 여러개라면 서열을 변경 한 이후 사용해 보시기 바랍니다. :)

수요일, 7월 10, 2013

The Great Good Place는 폐쇄중;;


다름이 아니라 무료로 호스팅하고 있는 Hostinger 측에서
제가 사용하고 있는 계정에서 다수의 이메일이 발송되어
자신들의 IP가 블랙리스트에 등록될까 염려되어 제 계정을 막았다는
소식을 접했습니다.

그래서 문의 결과 어떻게 할 수 없다는 답변을 받고 일단
제 도메인들을 모두 이 gwlee.blogspot.kr 포워딩 시켜 놓은 상황입니다.

어차피 아직 공식 개장 하지 않아서 적어놓은 글은 많지 않았지만..
WP셋팅하고 블로깅을 하려고 했는데 이런 시련이 닥치네요 ㅎㅎ

조만간 다른 안식처를 마련하여 공개하도록 하겠습니다. :)

월요일, 5월 20, 2013

The great good place는 리뉴얼중



www.thegreatgoodplace.com

리뉴얼 중입니다.

최근 포스팅은 blogspot쪽으로 해서
그쪽 유입량은 잘 확인못했지만...

조만간 wp와 wiki로 재단장해서 오픈하도록 하겠습니다. ㅎㅎ

서로 좀 domain을 구분해서 운영해야 할듯한데.. ㅎㅎ

쓰다보면 섞이게 된다는... ㅋㅋㅋㅋ

수요일, 5월 08, 2013

SAM/BAM Flag 설명


오홋홋홋


picard, explain-flags

SAM이나 BAM파일에서 두번째 컬럼 값을 넣어주면
이 read의 FLAG에 대한 설명을 해준다는.... :)

화요일, 2월 19, 2013

Ensembl Other Metazoa gtf Summary


Metazoa 중 기타등등

Name (Ensembl)
Total Gene
Exon / Gene
Total Transcript
Exon (bp)
Intron (bp)
CDS (bp)
Max
Median
Min
Max
Median
Min
Max
Median
Min
Aedes aegypti AaegL1
17356
3.71877
18769
13140
230
1
329294
166
1
33984
1050
78
Amphimedon queenslandica Aqu1
30289
5.67803
30289
45177
125
1
50310
84
0
47673
837
16
Anopheles gambiae AgamP3
13465
4.08734
15322
14035
237
1
249417
96
1
47532
1188
75
Apis mellifera Amel 2 0
10736
6.42632
11058
13210
180
1
734966
127
1
53646
1203
21
Atta cephalotes Attacep1 0
18062
4.64179
18093
11406
170
3
402844
210
1
24183
648
3
Bombyx mori Bmor1
14623
5.44245
14623
53798
159
1
9993
720
12
56286
864
86
Caenorhabditis briggsae CB4
22922
5.34233
22947
17127
151
1
82249
65
1
40740
927
12
Caenorhabditis elegans WBcel215
45836
3.41548
56569
14975
144
1
100913
79
1
55686
1038
39
Culex quinquefasciatus CpipJ1
22985
3.27309
23049
12993
188
1
95576
121
1
27324
1017
87
Danaus plexippus DanPle 1 0
16260
5.88678
16260
31119
152
2
156604
287
10
56718
870
42
Daphnia pulex Dappu1
36274
4.14269
36274
12783
150
1
48487
77
0
23328
699
147
Drosophila ananassae dana caf1
15978
3.58174
16061
13661
216
2
1034096
67
1
26715
1081.5
99
Drosophila erecta dere caf1
15810
3.58836
15902
13790
214
1
1121756
73
1
26610
1068
63
Drosophila grimshawi dgri caf1
15585
3.64921
15677
13188
217
1
216011
84
1
26532
1086
114
Drosophila melanogaster BDGP5
15682
4.06281
29173
28074
282
1
141627
109
2
68847
1401
33
Drosophila mojavensis dmoj caf1
15179
3.64089
15258
14595
217
2
245033
75
1
26778
1101
102
Drosophila persimilis dper caf1
17573
3.36966
17658
9522
214
1
160788
71
1
24360
939
69
Drosophila pseudoobscura HGSC2
16768
3.48754
18100
16920
222
2
168194
71
1
55446
1104
33
Drosophila sechellia dsec caf1
17273
3.4063
17362
11004
212
1
173070
73
1
43653
951
24
Drosophila virilis dvir caf1
15343
3.62582
15424
23577
216
1
535952
73
1
40497
1113
90
Drosophila willistoni dwil caf1
16385
3.48911
16469
21318
219
2
682464
73
1
27621
1059
87
Drosophila yakuba dyak r1 3 FB2008 07
16891
3.52034
16983
13188
213
2
161037
74
1
26790
1023
36
Heliconius melpomene Hmel1
16203
5.79658
16363
30639
157
2
188384
428
0
46440
993
42
Ixodes scapularis IscaW1
24925
3.77083
24925
7779
141
1
177576
1608
15
13764
591
95
Nematostella vectensis ASM20922v1
27270
5.25966
27270
12085
126
1
48615
441
0
26235
750
147
Pediculus humanus PhumU1
10990
6.32402
10992
14871
178
2
52922
95
8
32199
1131
135
Schistosoma mansoni sma v3 1
14651
5.09406
16054
79759
170
3
67221
1579
1
22980
873
60
Strongylocentrotus purpuratus Spur2 5
28549
6.54275
28549
63039
145
2
574472
742
0
29134
1061
15
Tribolium castaneum Tcas3
16541
4.34194
16543
26331
198
1
310600
60
1
63351
993
45
Trichinella spiralis Tspiralis1
15461
5.49376
15461
10056
129
1
8636
87
10
37257
588
5
Trichoplax adhaerens ASM15027v1
11627
8.35504
11627
18339
105
2
48786
139
11
23130
1035
147

Ensembl Fungi gtf Summary



Ensembl에서 제공하는 Fungi의 gtf 정보를 사용하여 Summary 해보았습니다.

2주전부터 올릴려고 하고 있었는데 bug 및 계산 착오로 인해서 몇번 수정하느라 늦었습니다. 조만간 업데이트 할 예정입니다. :)

Name (Ensembl)
Total Gene
Exon / Gene
Total Transcript
Exon (bp)
Intron (bp)
CDS (bp)
Max
Median
Min
Max
Median
Min
Max
Median
Min
Ashbya gossypii (ASM9102v1)
5189
1.053
5189
14700
1098
1
666
61
1
14697
1215.0
75
Aspergillus clavatus (CADRE)
9452
3.001
9452
14778
250
2
2397
63
7
24606
1239.0
126
Aspergillus flavus (JCVI-afl1-v2.0)
13875
2.776
13875
14742
258
3
8254
62
8
23289
1056.0
147
Aspergillus fumigatusa1163 (CADRE)
10160
2.886
10160
14778
267
2
2678
61
8
24780
1218.0
63
Aspergillus fumigatus (CADRE)
9898
2.887
9898
25548
272
2
3092
60
1
25545
1245.0
63
Aspergillus nidulans (ASM14920v1)
10827
3.299
10827
18015
245
1
3570
61
1
21642
1236.0
27
Aspergillus niger (CADRE)
14445
3.523
14445
13734
175
1
2702
69
1
21105
1086.0
30
Aspergillus oryzae (CADRE2)
12388
2.885
12388
14742
248
2
2753
62
1
20655
1114.5
300
Aspergillus terreus (CADRE)
10601
3.142
10601
13746
258
1
1425575
59
14
17526
1260.0
147
Botryotinia fuckeliana (BotFuc Aug2005)
16727
2.604
16727
12278
189
1
7371
75
22
20424
744.0
87
Fusarium oxysporum (FO2)
18066
2.670
18066
13941
286
1
2370
59
4
22593
1014.0
3
Gaeumannomyces graminis (Gae graminis V2)
14771
2.649
14963
16454
364
1
9098
88
4
19899
1041.0
96
Gibberella moniliformis (ASM14955v1)
14602
2.730
14621
22425
300
1
989
58
22
22647
1056.0
84
Gibberella zeae (ASM24013v2)
13696
2.767
13697
29066
280
1
975
56
1
33591
1098.0
87
Glomerella graminicola (GCA 000149035.1)
12436
2.685
12436
26808
276
1
2183
64
10
26805
1158.0
93
Komagataella pastoris (GCA 000027005.1)
5228
1.111
5228
14853
1053
2
903
63
10
14850
1188.0
135
Leptosphaeria maculans (ASM23037v1)
12765
2.781
12765
20704
215
3
5775
64
40
29229
999.0
99
Magnaporthe oryzae (MG8)
13218
2.726
13382
18290
361
3
2120
89
5
19623
1083.0
102
Magnaporthe poae (Mag poae ATCC 64411 V1)
12389
2.720
12555
14426
407
2
2101
88
21
18789
1005.0
93
Melampsora laricipopulina (GCA 000204055.1)
16828
4.739
16828
16603
150
1
35273
80
10
15816
900.0
102
Nectria haematococca (v2.0)
16092
3.031
16092
22950
281
1
8864
55
11
22947
1233.0
147
Neosartorya fischeri (CADRE)
10805
2.912
10805
14781
261
2
1506
59
8
18807
1221.0
90
Neurospora crassa (ASM18292v1)
10413
2.644
10432
15030
260
1
1274
85
32
32460
1212.0
87
Phaeosphaeria nodorum (ASM14691v1)
12678
2.626
12678
18212
295
1
1744
56
14
21135
1044.0
63
Puccinia graminis (ASM14992v1)
16481
4.293
16660
5473
176
1
1700
86
21
15642
924.0
87
Puccinia triticina (ASM15152v1)
13330
3.859
13330
8664
168
1
3818
83
15
14283
912.0
147
Pyrenophora teres (GCA 000166005.1)
11958
2.484
11958
9963
310
5
5050
54
21
29457
1143.0
150
Pyrenophora triticirepentis (GCA 000149985.1)
12387
2.638
12387
14088
303
3
2108
57
23
29079
1107.0
117
Saccharomyces cerevisiae (SacCer Apr2011)
7126
1.060
7126
14733
951
1
2483
100
1
14730
1075.5
48
Schizosaccharomyces pombe (ASM294v1)
7018
1.764
7019
14362
565
2
2526
56
1
14772
1134.0
72
Sclerotinia sclerotiorum (ASM14694v1)
10413
2.756
10413
17212
183
1
1494
79
24
20313
819.0
84
Sporisorium reilianum (GCA 000230245.1)
6803
1.452
6803
15883
843
1
2252
87
1
16272
1473.0
75
Trichoderma virens (ASM17099v1)
12698
2.865
12704
61919
297
2
9208
68
10
62673
1140.0
132
Tuber melanosporum (ASM15164v1)
7727
3.786
7727
25158
272.5
6
31660
63
9
28635
1077.0
30
Ustilago maydis (UM1)
6690
1.732
6690
16296
549
1
1122
95
19
16293
1503.0
60
Zymoseptoria tritici (MG2)
11075
2.591
11075
12888
298
2
42135
62
11
13839
1068.0
147