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

목요일, 5월 29, 2014

BLAT에서 protein 서열 비교하기

새로운 것을 얘기하는건 아니고...
다들 알고있는거 기록용도로 남겨두려고 끄적끄적합니다. :)

Kent옹께서 창조하사 현재 널리 사용되는(나만 쓰나..;;;)
BLAT의 경우 blast와 달리 db를 따로 안만들고 db/query의 format가 fasta이기만 하면
문제없이 작동된다는 장점이 있는데...

db/query가 서로 같으면 문제가 없지만 다른 경우 잘 동작 안하는 수가 생깁니다.
물론 메뉴얼에 잘 나와있지만.. ㅎㅎ


DNA-DNA (DB-Query)
>blat db.fa query.fa output.psl

Protein-Protein
>blat db.fa query.fa -prot output.psl

DNA-Protein
>blat db.fa query.fa -t=dnax -q=prot

Protein-DNA
>blat db.fa queyr.fa -t=prot -q=dnax

-t는 database, -q는 query를 나타냅니다.
dnax/rnax는 해당 서열을 translated해서 비교하겠다는 것입니다.
rnax 옵션은 저도 오늘 확인하면서 본건데... query쪽에만 있네요. 모 굳이 db쪽에도 rnax옵션이 있을 필요는 없어보이니.. :)
(blat에는 blastx와 같은 기능은 없는듯 합니다. tblastn만 지원하는듯...)

그리고 BLAT은 zero-based. 할때마다 찾아봐야 한다능...;;; 제길

금요일, 7월 13, 2012

BLAT and BLAST Output Format Fields

BLAST (-m 8)과 BLAT 결과를 보면 table 형식으로 되어 있는데 head들이 친절하게 설명되어 있는 것도있지만 대량분석할 때에는 귀찮아서 Header 정보를 제거하고 결과를 뽑아서 가끔씩 헷갈릴때가 있다. 본인은 그렇다.. :)

그래서 다시 정리를... 쿨럭.. ㅎㅎ


NCBI Blast Tabular output format fields

(Blast Head의 경우 부연 설명이 필요 없을 정도로 simple하다. :))
QueryIdSubjectId
Identity percent
AlnLength
mismatchCount
gapOpenCount
QueryStart
QueryEnd
SubjectStart
SubjectEnd
Evalue
bitScore

위의 링크된 사용자가 심플하게 parsing하는 예제를 함께 보여주고 있는데 
참고하면 좋을듯 :)


-Python 

for line in open(“myfile.blast”):
(queryId, subjectId, percIdentity, alnLength, mismatchCount, gapOpenCount, queryStart, queryEnd, subjectStart, subjectEnd, eVal, bitScore) = line.split(“\t”)


-Perl 

while (<>) {
($queryId, $subjectId, $percIdentity, $alnLength, $mismatchCount, $gapOpenCount, $queryStart, $queryEnd, $subjectStart, $subjectEnd, $eVal, $bitScore) = split(/\t/)
}





BLAT Spec

matches int unsigned , # Number of bases that match that aren't repeats
misMatches int unsigned ,  # Number of bases that don't match
repMatches int unsigned ,  # Number of bases that match but are part of repeats
nCount int unsigned ,      # Number of 'N' bases
qNumInsert int unsigned ,  # Number of inserts in query
qBaseInsert int unsigned , # Number of bases inserted in query
tNumInsert int unsigned ,  # Number of inserts in target
tBaseInsert int unsigned , # Number of bases inserted in target
strand char(2) ,           # + or - for query strand, optionally followed by + or – for target strand
qName varchar(255) ,       # Query sequence name
qSize int unsigned ,       # Query sequence size
qStart int unsigned ,      # Alignment start position in query
qEnd int unsigned ,        # Alignment end position in query
tName varchar(255) ,       # Target sequence name
tSize int unsigned ,       # Target sequence size
tStart int unsigned ,      # Alignment start position in target
tEnd int unsigned ,        # Alignment end position in target
blockCount int unsigned ,  # Number of blocks in alignment. A block contains no gaps.
blockSizes longblob ,      # Size of each block in a comma separated list
qStarts longblob ,         # Start of each block in query in a comma separated list
tStarts longblob ,         # Start of each block in target in a comma separated list


-Python

for line in open(“myfile.blat”): 
(matches, misMatches, repMatches, nCount, qNumInsert, qBaseInsert, tNumInsert, tBaseInsert, strand, qName, qSize, qStart, qEnd, tName, tSize, tStart, tEnd, blockCount, blockSizes, qStarts, tStarts) = lines.split("\t")



수요일, 3월 21, 2012

Blat x86_64


Blat 수행시 옵션 중 stepSize 파라미터를 조정하여 작업을
돌릴 경우 세그먼트 에러가 발생하여 삽질 중에 x86_64 버전 Blat을
발견하여 잘 사용하고 있습니다.

BLAT x86_64

다만 major 버전은 동일한데 minor 버전이 상이하니
확인하시고 사용하시기 바랍니다.


걍 BLAT과 BLAT.x86_64의 차이는 64Bit의 차이
즉 메모리 이용 크기가 차이난다는... ㅠ.ㅜ

이것때문에 시간날린게;;;;; 헉...