수요일, 3월 28, 2012

awk 사용법


Blast를 수행 시 -m 8을 하면 자료 뽑아내기가 쉬운 것을 알고 있다.
근데 리눅스에서는 awk라는 명령어를 사용하여 별도의 코딩을 하지 않고
일정 값 이상/이하의 결과들만 골라서 볼 수 있다.
-biodb의 wiki에 정리해둔 것이 있었는데...;;;

구글 뒤져보니 본인이 원하는 기능의 awk 기능을 잘 설명해 놓은 것이 있어서
그대로 옮겨보도록 한다. ㅋ

출처: :+:하늘을 닮은 호수:+:

-m 옵셥에서 8값을 선택한 결과 파일 (blastout.file) 에서 score가 100 이상의 결과들만 뽑길 원하는 경우
> awk '$12 > 100 { print $2 }' blastout.file

본 문장을 응용하면 결과값에 특정 문자열만 들어가 있는 것을 포함/제외 하고
출력하기, 결과값이 중복된 것이 있으면 sort를 이용하여 제거 할 수도 있으니
참 간편하지요? ;;;

그걸 몰랐던 학부 시절 때 하나하나 python으로 삽질하던 기억을 하면;; 아놔;;;
그러나 요즘도 걍 python으로 작업한다는 훈훈한 이야기가 전해내려 온다능..;;

CPAN이용해서 Perl 모듈 설치하기


Circos를 설치하기 위해서 perl 모듈 설치에 좀더
편하게 하는 방법이 있어서.... ㅎㅎ

CPAN (Comprehensive Perl Archive Network)는 각종 perl 모듈이
모아져 있는 사이트인데 perl 5.8이후부터 cpan이라는 명령어를 지원하여
보다 편리하게 perl 모듈들을 설치할 수 있게 되었다.
(윈도우의 cgwin은 역시 잘 안된다능;;;; )

5.8 이전의 경우
$perl -MCPAN -eshell
또는
5.8 이후
$cpan

이라고 명령어를 실행시키면 처음에 실행시키면 이것저거 무엇을 한다고 하고
 [yes]를 입력하면 알아서 작업을 한후 cpan이라는 프롬프트를 보여줍니다.
cpan>install 모듈명
으로 쉽게 설치 우후훗...

HTTP Status 상태 코드별로 페이지 작성하기



출처:http://linux.tini4u.net/stories.php

일반적으로 웹호스팅을 받아보면 HTTP Status code page가
윈도우의 기본적인 그것이 아니라 깔끔하게 제작된 페이지를 본적이 있을 것입니다.
그것은 아파치에서(혹은 사용자가 [Override enabled]) 서버에러에 대한
응답을 지정해주어서 그렇습니다.

아파치 문서에 보면 ErrorDocument 부분이 정의되어 있으니
한번쯤 읽어보시면 이해하시기가 쉬우실 겁니다.
대략적으로 정리하면 총 3가지 방법으로 응답을 지정할 수가 있는데,
그것은 아래와 같습니다.


1. 보통의 텍스트
ErrorDocument 500 "The server made a boo boo."


문자열인 경우엔 " " 안에 문자열을 넣으면 됩니다.
추가=> [" "] 표시는 텍스트임을 알려주는 것으로서 그 자체는 출력되지 않습니다.


2. 내부 전환
ErrorDocument 404 /missing.html


서버 내부의 파일로 전환하는 방법인데 주의할 점으로는
절대 경로로 지정했을 경우엔 틀린 방법이라는 것입니다.
문법의 최상위 경로(/)는 DocumentRoot를 의미하기 때문입니다.
즉, 내 도메인이 /home/foobar/www/로 DocumentRoot가 설정되어 있고
전환할 페이지가 /home/foobar/www/missing.html 에 있다면
ErrorDocument 404 /missing.html


위와같이 설정을 해주셔야 작동을 합니다.

다만 이것이 사용자단이 아닌 아파치단에서(httpd.conf) 설정되었을 경우
모든 도메인에 대해서 404 코드는 /missing.html 파일을 찾게 됩니다.
이런 경우 사용자 입장에서는 /missing.html 파일을 사용하지 못합니다.

만약 서버 관리자로써 모든 Status Code 페이지를 전환하려면
Alias /Error "/usr/local/apache/htdocs/Error/"
ErrorDocument 404 /Error/missing.html


이런식으로 Alias를 만들어 주면 해결이 됩니다.
왜냐하면 모든 도메인은 /Error/missing.html를 찾을 것이고
/Error은 /usr/local/apache/htdocs/Error/ 으로 보내지기 때문입니다.
/Error/missing.html를 풀이해보면
/usr/local/apache/htdocs/Error/missing.html 이 되겠죠.

추가=> 스크립트나 SSI로도 내부 전환이 가능합니다.


3. 외부 전환
ErrorDocument 402 http://www.example.com/subscription_info.html


서버 외부의 파일로 전환하는 방법인데 김정균님 경험상으로
외부 전환시 CGI와 htaccess 인증시에 505 Status Code가 발생했다고 합니다.
원래 요청과 관련있는 환경 변수의 상당수가 스크립트에 전달되지 못한다는 점을 알고 있어야 합니다.


※ 설정하면서 주의해야 할 사항
위의 설정대로 설정했고 아무런 문제도 없는데
IE 자체의 에러페이지가 보이는 경우가 있습니다.
이런 경우는 대략 몇가지 문제가 있는데 대표적인것은 아래와 같습니다.

1. 완전한 HTML 페이지가 아닐 경우
<BODY>로 시작해서 </BODY>로 확실하게 끝나지 않았거나
혹은 <HTML>로 시작해서 </HTML>로 확실하게 끝나지 않았을 경우 입니다.
또는 PHP의 exit 명령으로 종료할때 </BODY></HTML>가 출력되지 않는
경우에도 IE 기본 페이지가 나옵니다.

2. Custom error page의 사이즈가 기준치보다 작은 경우
Custom error page 라는게 크기가 정해져 있기 때문에
이 크기가 넘지 않는 경우에도 IE 기본 페이지가 나옵니다.
Custom error page 의 각 크기 기준치는 아래와 같습니다.
Code Description File Size


400 Bad Request > 512 bytes
403 Forbidden > 256 bytes
404 Not Found > 512 bytes
405 Method Not Allowed > 256 bytes
406 Not Acceptable > 512 bytes
408 Request Time-out > 512 bytes
409 Conflict > 512 bytes
410 Gone > 256 bytes
500 Internal Server Error > 512 bytes
501 Not Implemented > 512 bytes
505 HTTP Version Not Supported > 512 bytes

금요일, 3월 23, 2012

Fasta 형식의 파일에서 빈서열 제거


가끔씩 Blast를 수행하고자 formatdb를 수행 할 때,
다음과 같은 에러를 접한 적이 있으리라 본다.


[formatdb] WARNING: Cannot add sequence number XXXXX XX.XXX.XXX.
 because it has zero-length.
[formatdb] FATAL ERROR: Fatal error when adding sequence to BLAST database.


formatdb를 수행하려는 fasta 서열에
빈 서열을 가지고 있기 때문에 나오는 에러로
빈 서열을 제거하면 OK!

vi check.py


import glob,sys
from Bio import SeqIO


file = sys.argv[1]


ow = open(file.split('.')[0]+'.check','w')
seqs = SeqIO.parse(open(file), format='fasta')
 for rec in seqs:
        name = rec.description
        seq = rec.seq.tostring()


        if len(seq.strip()) != 0:
                ow.write('>'+name+'\n')
                ow.write(seq+'\n')


ow.close()



[test]$python check.py test.fasta

Finding Homo Polymeric


출처: Finding homopolymer stretches in contigs

필요에 의해서 perl로 있는거 이용해서 약간 수정

$ vi findingHomopolymer.pl
$file = $ARGV[0];
open(data,$file);
$s = <data>;
$min = 4;


while ( $s =~ /(A{$min,}|T{$min,}|G{$min,}|C{$min,})/g) {
   $end = pos($s);
   $start = $end - length($1) + 1;
   print "$start, $end, $1 \n";
}

$ perl findingHomopolymer.pl seq.fa

※주위: seq.fa에는 서열만 한줄로 있어야 작동합니다.
fasta 폼 이런거 인식 못합니다. ㅋ

MSSQL Data Type


숫자형
bit : 1bit, 0,1
tinyint : 1byte, 0~255
smallint : 2byte, -2^15 ~ 2^15-1
int : 4byte, -2^31~2^31-1
bigint : 8byte, -2^63~2^63-1
smallmoney : 4byte, -2^31~2^31-1
money : 8byte, -2^63~2^63-1
numeric /decimal : -10^38~10^38-1
float : -1.79E+308 ~ 1.79E+308
real : -3.40E+38 ~ 3.40E+38

문자형
char/varchar : 8000자 이하의 문자
nchar/nvarchar : 4000자 이하의 유니코드 문자
text : 8000자 넘는 문자
ntext : 8000자 넘는 유니코드 문자

날짜형 
smalldatetime : 4byte, 1900-1-1 ~ 2079-6-6, 1분 단위
datetime : 8byte, 1753-1-1 ~ 9999-12-31, 1 ms 단위

이진/특수형
binary/varbinary : 8000 byte 이하의 이진값
image : 8000 byte 이상의 그림등의 바이너리 값
cutsor : 커서 이름을 변수로 처리
uniqueidentifer : 전역 유일 구분자
teimstamp : 데이터베이스 안에서 유일한 수

Eclipse Plugin 설치


(지금은 또 어떻게 얼마나 많이 변했을지 모르는 Eclipse.... ;; )


Eclipse 사용시 사용하고자 하는 plugin을 설치할 일이 있을 것이다

웬만하면 [HELP] - [Software Updates]에서 해결 가능하다.
그러나 가끔씩 맘에 안들게 이 메뉴로 해결이 불가능 할 때가 있다.

그럴때에는 manual하게 설치를 해줘야 한다.
-모 그냥 심심풀이로 사용하고자 하는 경우에는 굳이
 스트레스 받으면서 할 필요 없다.

3.4버전 Eclipse인 Ganymede는 Europa와 달리
Plugin폴더에 파일만 복사하면 plugin이 설치가 안된다.
-그래서 조낸 힘들었다.. ㅠ.ㅜ
-Europa도 안써봤었는데.. 제길..
앞으로 만날 Maven, Ant가 무섭다.. xml 설정 같은거 지랄같이 못하는데..

여하튼... Ganymede에서 수동으로 plugin을 설치하려면
두개의 설정 파일과 두개의 폴더에 관련 파일들을 복사해 주어야
Ganymede가 기분좋게 인식해준다.
-[HELP]-[Software Updates]에서 의존성 문제로 설치안되던 녀석들도
너무 깔끔하게 설치된다는 사실.. 제길...

일단 수정되어야 할 파일
eclipse/artifacts.xml
eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info

그리고 수동으로 설치 할 plugin관련 파일들을 저장할 폴더 두곳
eclipse/features/
eclipse/plugins/

그런데 문제는 각 파일과 폴더를 들여다 보면 막막할것이다.
파일안에 어떻게 내용을 넣어줘야하며, 폴더에는 어떤 파일들을 넣어줘야 하는지..

그래서 본좌는 개발용으로 사용하는 eclipse외에 버전별로(왜 버전별인지 플러그인 설치하다가 당해보면 알것이다.) 다운로드 받아놨다. ^^

그래서 원하는 plugin을 설치가 되는 eclipse에 설치 된 후,
그 eclipse에 저장된 폴더들과 파일의 관련 부분만을 긇어서 원래 개발용
eclipse에 첨가시켜주면 OK!!
젠장.. 이거 깨닫는데 한달 걸렸다..;;;


오픈소스 라이선스 가이드


ㅋ 이것마저 어렵군..
GPL
CPL
Apache License
MIT License 도 있고.. ㅋㅋ

어떤놈은 코드공개,
어떤놈은 공개안하고 돈받고 팔아도 되고...

그러나 일단 배포를 안하면 코드공개와는 상관없다는...



오라클 데이터 타입


문자형 데이터
CHAR : 고정길이 문자형 데이터 타입 (~2k Byte)
VARCHAR2 : 가변길이 문자형 데이터 타입 (~4k Byte)
NCHAR : 고정길이 유니코드 문자형 데이터 타입 (~2k Byte)
NVARCHAR2 : 가변길이 유니코드 문자형 데이터 타입 (~4k Byte)

숫자형 데이터
BINARY_FLAOT : 32비트 부동 소수 (4 Byte)
BINARY_DOUBLE : 64비트 부동 소수 (8 Byte)
NUMBER : 가변 숫자 타입 (~21 Byte)


날짜형 데이터
DATE : 고정 길이 날짜,시간 데이터 (~7 Byte, DD-MM-YY)
INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND
TIMESTAMP : DATE 보다 정밀도가 높음
TIMESTAMP WITH TIME ZONE : 지역 시간대 적용크리에이티브 커먼즈 라이센스

hmmer Manual

Blast와 함께 보편적으로 사용되는 Hmmer에 대한 설명서
hmmbuild/ hmmcalibrate/ hmmsearch에 대해서 설명
-물론 제가 사용하는 옵션에 대해서만 blast만큼 많지 않음. default로 사용해도 문제가 없으니깐~ 문제를 모르는것일 수도.. ㅎㅎ


hmmbuild: hmm matrix 만들어 줌
hmmbuild [-options] <hmmfile output> <alignment file>

-F 기존에 동일 이름의 hmm파일이 있으면 삭제하고 새로 만듬. 이 옵션 설정 안해주면 hmmbuild 아예 실행안됨.
ex) hmmbuild -F your_file.hmm your_file.aln


-f/ -g/ -s algorithm styles을 설정하는 옵션 이번에 사용하면서 이런 옵션을 처음 봤습니다. 왠지 hmm 멋져보이는 이유는.. ㅋ
ex) hmmbuild -f your_file.hmm your_file.aln


--amino/ --nucleic 강제로 alignment file이 어떤 서열인지 알려주는 것입니다.
ex) hmmbuild --amino your_file.hmm your_file.aln


-sequence weighting strategies
- model construction strategies
위의 무엇인가 고급스러운 것을 최대한 안건드리면 사용하는게
제 생활신조입니다. default인 이유는 그런 이유가 있을 것이다 라는.. ㅋ
개인적으로 잘 아시는 분만 선택해서 사용하시면 됩니다.
사용방법은 옵션을 그냥 적어주시면 됩니다.
ex) Alternative model construction strategies중 --fast 옵션 사용
      hmmbuild --fast your_file.hmm your_file.aln


hmmcalibrate: 만들어진 hmm matrix를 보정 시켜줌
hmmcalibrate [-options] <hmmfile>
--cpu: 프로그램 수행에 사용할 cpu 갯수 설정, 멀티 코어의 경우 가능. 단, 컴파일 및 바이너리 파일을 받을때 cpu옵션이 on 되어 있는 것을 받아야 사용 가능

--seed: hmmcalibrate를 몇번 수행할것인지 설정 하는 옵션 인듯.

본인의 hmmcalibrate 사용 예

ex) hmmcalibrate your_file.hmm



hmmsearch: 만들어진 hmm 파일을 이용해서 유사한 서열을 찾음.
hmmsearch [-options] <hmmfile> <sequence file or database>

-A <n>: 상위 n개 까지만 출력
-E <x>: blast의 e-value cutoff와 같은 것
-T/ -Z옵션도 안좋은 값을 짤라내기 위한 옵션

--cpu : 프로그램 수행에 사용할 cpu 갯수 설정, 멀티 코어의 경우 가능. 단, 컴파일 및 바이너리 파일을 받을때 cpu옵션이 on 되어 있는 것을 받아야 사용 가능

 --domE <x> / --domT <x>
위의 -T/ -Z의 옵션과 같이 도메인에서 필터링 하는 옵션인듯. 사용 안해봤음. ^^
<sequence file or database>는 fasta format 파일이면 사용 가능함.

본인이 으레 쓰는 방법임. hmmsearch 결과는 '>'로 빼주면 됨.

ex) hmmsearch -E 0.001 your_file.hmm your_database.fasta > result.output


Blastall Manual


NCBI에서 제공되는 Blastall에 대한 메뉴얼
blast-2.2.18을 기준으로 작성합니다. 현재 2.2.20이 나와있죠??
아마 옵션은 거의 동일할것입니다.
제가 많이 사용하는 것을 중심으로 설명합니다.
-지금은 더 업되어 있을 겁니다.
 그리고 이제는 슬슬 BLAST+로 옮겨타보려고 계획중입니다. :)

-p 5개의 기본 blast 프로그램중 하나를 선택하는 옵션
ex) -p {blastn|blastp|blastx|tblastn|tblastx}

-d blast를 돌리기 위한 데이터베이스 선택하는 옵션
ex) -d {nr|nt|your_database_file}
blast에서 데이터베이스로 사용하기 위해서는 fasta파일을 formatdb로 blast에 사용할 수 있는 데이터베이스로 변환시켜주어야 사용 가능. formatdb 수행후 붙는 확장자 명은 적어주지 않아도 됨. 파일이름 적음.

-i 검색해보고 싶은 서열(들) 입니다. Query 파일은 fasta format으로 되어있어야 함.
ex) -i your_query_file.seq 현재폴더에 있는 서열 파일      
      -i /your/home/path/query.fasta 다른 폴더에 있는 서열 파일

-e Expectation value를 정해줘서 설정된 값보다 크면 결과에 포함시키지 않는 옵션. 일반적으로 blastn의 경우 1e-06/1e-12, blastp의 경우 1e-03/1e-06으로 설정하고 상황마다 조정하면서 사용.
ex) -e 1e-06
-m 결과 파일을 저장할때의 format 결정 옵션. 일반적으로 로컬에서 blast를 돌리시려는 분들은 대량의 서열을 분석하기 위함이니, -m 8이 결과 파일을 분석하기 용이함,
ex) -m 8


-o Blast 결과 파일 설정하는 옵션
ex) -o your_output_file


-M blast를 실행시킬때 Matrix를 사용하게 하는 옵션. 서열과 서열을 비교하면서 weight를 주어서 peptide 서열을 검색할때 사용됨. 기본값은 BLOSUM62.
Matrix는 /your_blast_folder/data/ 밑에 있음.
ex) -M {BLOSUM62|PAM250|your_matrix}

-a CPU가 1개 이상일때 blast 수행시 하나 이상의 cpu를 사용하게 하는 옵션
ex) -a 2

[EMBOSS] transeq


Function: Translate nucleic acid sequence

Usage:
>transeq input_files output_files 

그외에 옵션사용시 
frame지정할 수 있음. Forward/Reverse 혹은 1,2,3/-1,-2,-3
6은  All six frame대하여 수행
>transeq input_files output_files -frame 6

ABI 3730 DNa Analyzer Data Collection 설치기

일단 구글링, 네이버에서는 ABI 3730 분석용 프로그램 설치에 대한
내용이 전혀 (물론 설치에 관련된 ABI에서 배포한 메뉴얼은 있지만) 없었고,
AS를 요청하였는데 상당시간 기간이 소요하기에 극단적인 방법을 채택하였습니다.

고객이 직접 분석 프로그램 설치 및 켈리브레이션 후 사용하기

여하튼.. 한번이라도 심심풀이로 ABI 메뉴얼대로 일반 컴퓨터에
위의 DNA Analyzer Data Collection을 설치 해보신 분이라면
만만치 않은 프로그램이란 것을 확인하셨을 것입니다.
오라클에 JBOSS, IIS,. ABI에서 제작한 온갖 자바 패키지들까지...

일단 네단계로 이루어집니다.
Step 1. PC 준비
Step 2. 설치 환경 준비
Step 3. Data Collection 설치
Step 4. ABI 3730과 통신 확인

Step 1. 분석용 PC 준비
※ 그렇다고 메뉴얼은 폼으로있는것은 아닙니다. 메뉴얼 숙지가 우선입니다.
ABI 3730 DNa Analyzer Data Collection (이하 Data Collection)을 설치하기 위해선
WinXP sp2 영문판이 있어야 합니다. 그리고 기본적으로 설치하는 백신도
설치 하지 마시기 바랍니다. 백그라운드로 작동하는 백신 프로그램으로 정상적으로
설치가 잘 안될 수 도 있습니다. 후에도 아직 설치하지 않고 있습니다.

중요한 부분이 하드의 파티션이 C,D,E,F는 무조건 하드 드라이브쪽에 잡혀있어야 합니다. 그리고 CD 드라이브는 G, 그외에는 별도로 요구하지 않습니다.
이 이유는 C(OS), E는 Data Collection 구동에 필요한 프로그램이 설치되고,
D와 F 드라이브에는 데이터들이 저장(D,F중 하나는 백업용)되기 때문입니다.
-이런 이유로 최조 ABI 3730과 같이 공급되는 컴퓨터에는 하드가 최소 두개 장착되어 제공됩니다. 추후에 관련 pdf를 첨부하도록 하겠습니다.
하지만 눈치 채셨다시피 논리적 하드만 잘 확인하시면 됩니다.물리적인 하드가 두개, 네개일 필요는 없습니다.

Step 2. 설치 환경 준비
일단 WinXP sp2 영문판이 설치되어서 사용자 계정, 혹은 Administrator로 로그인 하셨다면 기본적으로 하는 각종 M/B 드라이버를 설치하시고 안정화를 시키시기 바랍니다. 그리고, Python 2.2와 win32com 이라는 Python 라이브러리가 있습니다. 설치하시기 바랍니다. 그리고 일반 사용자 (Administrator이 아닌 관리자권한의 다른 계정) 계정의 암호는 걸어두었습니다. 이는 Data Collection 설치시 Administrator 계정에 접근하여 설치하기 위한 방법의 일환으로 하는 작업입니다.
그리고 스크린 세이버(사용안함) 및 모니터 절전 기능(프리젠테이션 사용)으로 모두 사용 안함으로 설정하고, 컴퓨터 이름을 메뉴얼에 나오있는데로 수정하시기 바랍니다.
-다만 파이썬의 존재 여부가 필수적인지는 모르겠습니다만, 초기 공급된 PC의 OS 하드에서 Python2.2 폴더가 존재하는 것으로 확인되어서 일단 설치했었습니다.

Step 3. Data Collection 설치
ABI 3730과 함께 제공된 Data Collection 설치 CD를 삽입하여 패키지 설치를
합니다. 설치시 두가지만 주위하시면 됩니다. 설치 초기에 나오는 시리얼 코드 입력란에 입력을 하는데 그 박스에는 시리얼 코드외에 이미 내용이 적혀있는 칸이 있습니다. 바로 컴퓨터 이름입니다. 대신 저는 그대로(대문자) 다시 기록하되 소문자로 바꾸어 주었습니다. 컴퓨터 이름을 다시 확인하시면 소문자로 되어 있을 것입니다.
- 단지 그 이유..설치에 영향을 주는지는 모르겠습니다.
그리고  Next 버튼으로 설치를 진행합니다. (실상은 파일 복사입니다.)
그리고 아마 IIS를 설치하기 위해 XP시디를 요구할 것입니다. 이 작업 이후
재부팅을 하겠느냐는 친절한 질문을 해오면 과감하게 내가 이따가 부팅하겠다고
선택하십시요. 그리고 XP 시디는 CD롬에서 제거하고, 다시 Data Collection 설치
시디를 삽입하시고 재부팅 시키십시요.
-또 인스톨 프로그램이 작동할시 그냥 취소하시면 됩니다.

재부팅 후 설치를 위해서는 로그인이 필요합니다. 3730User은 Data Collection이
생성한 계정이므로 접근하지 마시기 바랍니다. 작업하는 동안 Administrator이 아닌 일반 관리자 권한 계정으로 작업을 해보진 못했지만 크게 문제는 없을 것 같습니다.
일단 로그인 화면에서 [Ctrl]+[Alt]+[Del] 키를 두번 누르면 Administrator 접속 가능한
창이 나옵니다. 거기서 로그인을 하게 되면 Data Collection이 설치를 시작합니다.
이때 어떠한 에러도 떠서는 안됩니다. 만약 자바 패키지 관련 에러가 발생한다면...
Step 1. 부터 다시.... ^^
제 경우 JBOSS 설치시 에러가 작렬하더군요....
JBOSS와 ABI측에서 개발한 패키지의 경우 발생하는듯 했습니다.
위의 설치과정이 에러없이 정상적으로 설치되었다면 이제 어려운 과정은 끝났습니다.

Step 4. ABI 3730과 통신 확인
분석 컴퓨터의 아이피를 메뉴얼에 나와있는데로 설정해주고, 랜선을 ABI 3730을 분석 컴퓨터와 연결하고 Data Collection 프로그램을 실행 시킵니다.
프로그램을 실행 싴키면 4개의 서비스가 빨간 원에서 초록색 사각형으로 변하면
모든것이 정상적으로 완료된것입니다.
만약 각 서비스마다 어떤 패키지를 로드하는지, 에러가 발생하는지 안하는지 확인하고 싶으시다면 {빨간원|노란색 삼각형|초록색 사각형} 중에 하나 일때 마우스 오른쪽 클릭을 하고 [Show Console] 이라는 것을 클릭하면 내용을 확인할 수 있습니다.

BlastClust


BLASTClustis a program within the standalone BLAST package used to cluster eitherprotein or nucleotide sequences. The program begins with pairwisematches and places a sequence in a cluster if the sequence matches atleast one sequence already in the cluster. In the case of proteins, theblastp algorithm is used to compute the pairwise matches; in the caseof nucleotide sequences, the Megablast algorithm is used.
Inthe simplest case, BLASTClust takes as input a file containingcatenated FASTA-format sequences, each with a unique identifier at thestart of the definition line. BLASTClust formats the input sequence toproduce a temporary BLAST database, performs the clustering, andremoves the database at completion. Hence, there is no need to runformatdb in advance to use BLASTClust. The output of BLASTClustconsists of a file, one cluster to a line, of sequence identifiersseparated by spaces. The clusters are sorted from the largest clusterto the smallest.

BLASTClust accepts a number ofparameters that can be used to control the stringency of clusteringincluding thresholds for score density, percent identity, and alignmentlength. The BLASTClust program has a number of applications, thesimplest of which is to create a non-redundant set of sequences from asource database. As an example, one might have a library of a fewthousand short nucleotide sequence reads and wish to replace these witha non-redundant set. To produce the non-redundant set, one might use:

blastclust -i infile -o outfile -p F -L .9 -b T -S 95

Thesequences in "infile" will be clustered and the results will be writtento "outfile". The input sequences are identified as nucleotide (-p F);"-p T", or protein, is the default. To register a pairwise match twosequences will need to be 95% identical (-S 95) over an area covering90% of the length (-L .9) of each sequence (-b T) . Using "-b F"instead of "-b T" would enforce the alignment length threshold on onlyone member of a sequence pair. The parameter "S", used here to specifythe percent identity, can also be used to specify, instead, a "scoredensity." The latter is equivalent to the BLAST score divided by thealignment length. If "S" is given as a number between 0 and 3, it isinterpreted as a score density threshold; otherwise it is interpretedas a percent identity threshold.

To create a stringent non-redundant protein sequence set, use the following command line:

blastclust -i infile -o outfile -p T -L 1 -b T -S 100

Inthis case, only sequences which are identical will be clusteredtogether. The “blastclust.txt” file in the standalone BLAST packagedetails the full range of BLASTClust parameters.

Local에서 Blast 작업 돌리기


BLAST는 최근 생명공학을 하는데 기본 도구중에
하나가 되었지만 그럼에도 많은 연구자들이 BLAST를
제대로 사용하지 못하고 있는 것이 현실이다.

BLAST를 수행하는데 Database가 NCBI나 다른 여타의 사이트에서
제공안되는 Database를 이용해야만 되는 경우가 발생하면 어떻게 할 것인가?

혹은 BLAST를 해야할 Query가 수십개가 아닌 수백, 수천개라면
어떻게 할 것인가?

이런경우 자신의 컴퓨터에서 BLAST를 수행하게 된다면 원하는 작업을
손쉽고 빠르게 할 수 있다.

BLAST 프로그램은 대부분 연구자들이 알고 있듯이
NCBI에서 다운로드 받을 수 있다.
ftp://ftp.ncbi.nih.gov/blast/executables/release
위의 ftp 주소에 들어가 자신의 플랫폼에 맞는 파일을 다운로드 받으면 일단 BLAST를
수행할 수 있는 준비가 된다.

다운로드 받은 압축 파일(실행파일(*.exe)로 압축되어있는)을 풀면
bin, data, doc 세개의 폴더가 나타난다.
BLAST를 직접 수행하는 실행파일은 bin 폴더안에 있다.

기본적으로 BLAST를 사용하기 위해서 두개의 파일이 필요하다.
blastall과 formatdb이다.
blastall은 일반적인 blast, 즉 blastn, blastp, blastx, tblastx,tblastn를 수행할 때 사용된다.
formatdb는 blast를 할 수 있는 database를 만들어 주는 파일이다.
blast에 사용되는 database는 항상 ncbi나 다른 웹사이트에서 제공해주는 것이 아니기
때문에 자신만의 database를 만들 수 있어야 한다.


formatdb -i INPUT_FILE -p T|F -o T|F


- i INPUT_FILE은 fasta form을 따르는 서열들이 모인 파일이면 문제없다.
- p INPUT_FILE이 DNA서열인지  Protein 서열인지 확인하는 옵션값 protein의 경우 T
- o INPUT_FILE를 paser하는 옵션 NCBI에서 수집한 서열의 경우 -o T를 하여도 문제 없지만, NCBI의 form을 완벽하게 따르지않았다면 F 값을 사용.


blastall -p SELET_PROGRAM -i INPUT_FILE -d DATABASE_FILE -o OUTPUT_FILE  -m  OUTPUT_FORMAT


- p 어떤 blast 프로그램을 사용할지 선택
- i Query가 될 서열, 하나의 서열 혹은 다수의 서열이 하나의 파일에 존재 할 수 있다.
- d blast할 database
-o blast를 수행한 후 결과를 저장할 파일 이름을 지정한다.
-m -m 옵션을 지정하지 않으면 NCBI에서 blast를 수행한 화면을 볼 수 있다. 만약 다른 정보들은 필요 없고, 어느 서열이 어떤 서열과 유사성이 있는지 환인 할 수 있는 정보만 필요하다면 -m의 옵션값을 조절하여 원하는 정보만 저장 할 수 있다. 본인의 경우 -m 8을 많이 애용한다.

목요일, 3월 22, 2012

Nucleotide Letter Codes

NucleotideCode
Adenosine A
Cytidine C
Guanine G
Thymidine T
Uridine U
Purine (A or G) R
Pyrimidine (T or C) Y
Keto (G or T) K
Amino (A or C) M
Strong interaction (3 H bonds) (G or C) S
Weak interaction (2 H bonds) (A or T) W
Not A (C or G or T) B
Not C (A or G or T) D
Not G (A or C or T) H
Not T or U (A or C or G) V
Any nucleotide N

Gene Ontology



Biological Process
A biological process is a recognized series of events or molecular functions. A biological process is not equivalent to a pathway, although some GO terms do describe pathways. Mutant phenotypes often reflect disruptions in biological processes.


Cellular Component
The cellular component ontology describes locations, at the levels of subcellular structures and macromolecular complexes. Examples of cellular components include nuclear inner membrane, with the synonym inner envelope, and the ubiquitin ligase complex, with several subtypes of these complexes represented.

Generally, a gene product is located in or is a subcomponent of a particular cellular component. The cellular component ontology includes multi-subunit enzymes and other protein complexes, but not individual proteins or nucleic acids. Cellular component also does not include multicellular anatomical terms.


Molecular Function
The functions of a gene product are the jobs that it does or the "abilities" that it has. These may include transporting things around, binding to things, holding things together and changing one thing into another. This is different from the biological processes the gene product is involved in, which involve more than one activity.

MySQL에서 root passwd 설정


출처: joon

mysql -uroot -p


mysql> use mysql;
Database changed


mysql> update user set password=password('password') where user='root';
Query OK, 3 rows affected (0.43 sec)
Rows matched: 3  Changed: 3  Warnings: 0


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

-password와 root는 외따옴표로 묶어 주시면 됩니다.

Friendly Error Messages안나오게 하는 방법


출처: JAVACAN

IE를 이용해서 웹 사이트를 개발하다보면 서버에서 생성한 응답 화면이 아닌 IE에서  제공하는 HTTP 오류 메시지가 출력될 때가 있다.

IE는 다음의 두 조건이 충족될 때 자체 오류 메시지 화면을 표시한다.

> 응답의 상태 코드가 404나 500과 같은 에러 코드이고,
> 전체 응답 결과 데이터의 길이가 513 바이트 보다 작을 때

따라서, 서버에서 생성하는 에러 페이지의 길이가 513 바이트 이상이 되도록 하면 IE가 제공하는 오류 메시지 화면이 출력되지 않도록 할 수 있다. 간단히 말해  에러 페이지에 불필요한 주석을 코드에 추가함으로써 응답 결과의 길이가 513 바이트가 넘도록 하면 된다.

Escaping Character



진짜 가끔식 쓸일 생기는 이스케이프 문자들
&amp                    &문자
&lt;                    <문자
&gt;                    >문자

&ldquo;쌍따옴표&rdquo;   "쌍따옴표"
&lsquo;외따옴표&rsquo;   '외따옴표'

가끔씩 쓸꺼 같아서..
쓸떼는 전혀 기억이 안난다는.. :)

색상표


출처: 네이버 지식IN


#93DAFF #98DFFF #9DE4FF #A2E9FF #A7EEFF #ACF3FF #B0F7FF #B4FBFF #B9FFFF #C0FFFF
#87CEFA #91D8FA #A5D8FA #AFDDFA #B9E2FA #C3E7FA #CDECFA #D7F1FA #E1F6FA #EBFBFF
#00BFFF #0AC9FF #14D3FF #1EDDFF #28E7FF #32F1FF #3CFBFF #46FFFF #96FFFF #C8FFFF
#00A5FF #00AFFF #00B9FF #00C3FF #00CDFF #00D7FF #00E1FF #00EBFF #00F5FF #00FFFF
#1EA4FF #28AEFF #32B8FF #3CC2FF #46CCFF #50D6FF #5AE0FF #6EE0FF #6EEAFF #78F3FF
#1E90FF #289AFF #32A4FF #3CAEFF #46B8FF #50C2FF #5ACCFF #64D6FF #6EE0FF #78EAFF
#96A5FF #A0AFFF #AAB9FF #B4C3FF #BECDFF #C8D7FF #D2E1FF #DCEBFF #E8F5FF #F4FFFF
#86A5FF #90AFFF #9AB9FF #A4C3FF #AECDFF #B8D7FF #CCE1FF #E0EBFF #EBF5FF #F9FFFF
#6495ED #6E9FED #78A9ED #82B3ED #8CBDED #96C7ED #A0D1F7 #AADBFF #B4E5FF #BEEFFF
#0078FF #0A82FF #148CFF #1E96FF #28A0FF #32AAFF #3CB4FF #46BEFF #50C8FF #5AD2FF
#0064FF #0A6EFF #1478FF #1E82FF #288CFF #3296FF #3CA0FF #46AAFF #50B4FF #5ABEFF
#0000FF #3232FF #5050FF #646EFF #6478FF #6482FF #648CFF #6496FF #64A0FF #64AAFF
#4169E1 #4B73E1 #557DE1 #5F87E1 #6991E1 #739BE1 #7DA5E1 #87AFEB #91B9F5 #9BC3FF
#0064CD #0A6ECD #1478CD #1E82CD #288CD2 #3296D7 #3CA0E1 #46AAEB #50B4F5 #5ABEF5
#5A5AFF #6464FF #6E6EFF #7878FF #8282FF #8C8CFF #A0A0FF #B4B4FF #C8C8FF #D2D2FF
#7B68EE #8572EE #8F7CEE #9986EE #A390EE #AD9AEE #B7A4EE #C1AEEE #CBB8EE #D5C2EE
#6A5ACD #7E6ECD #8878CD #9282CD #9C8CCD #A696CD #B0A0CD #BAAAD7 #C4B4E1 #CEBEE1
#0000CD #2828CD #4646CD #6464CD #6E6ED7 #7878E1 #8282EB #8C8CF5 #9696FF #A0A0FF
#00008C #14148C #28288C #3C3C8C #50508C #646496 #7878AA #8C8CBE #A0A0C8 #B4B4DC
#483D8B #52478B #5C518B #665B8B #70658B #7A6F95 #84799F #8E83A9 #988DB3 #A297BD
#000069 #1E3269 #323C73 #3C467D #3C5087 #3C5A91 #46649B #506EA5 #5A78AF #6482B9

#3DFF92 #47FF9C #51FFA6 #5BFFB0 #65FFBA #6FFFC4 #79FFCE #75FFCA #7AFFCF #7FFFD4
#55EE94 #5FEE9E #69EEA8 #73EEB2 #7DEEBC #87EEC6 #91F8D0 #9BFFDA #A5FFE4 #AFFFEE
#66CDAA #70D2B4 #7AD7BE #84DCC8 #8EE1D2 #98EBDC #9DF0E1 #A2F5E6 #A7FAEB #ACFFEF
#AAEBAA #B4F0B4 #BEF5BE #C8FAC8 #D2FFD2 #DCFFDC #E1FFE1 #E6FFE6 #EBFFEB #F0FFF0
#80E12A #8AE634 #94EB3E #9EF048 #A8F552 #B2FA5C #BCFF66 #C1FF6B #C6FF70 #CBFF75
#52E252 #5CE75C #66EC66 #70F170 #7AF67A #84FB84 #89FB89 #8EFB8E #93FB93 #98FB98
#64CD3C #6ED746 #78E150 #82EB5A #8CF064 #96F56E #9BFA73 #A0FA78 #A5FA7D #AAFA82
#13C7A3 #18CCA8 #1DD1AD #22D6B2 #27DBB7 #2CE0BC #31E0C1 #36E0C6 #3BE0CB #40E0D0
#46B4B4 #50BEBE #5AC8C8 #64D2D2 #6EDCDC #73E1E1 #78E6E6 #7DEBEB #82F0F0 #87F5F5
#20B2AA #2ABCB4 #34C6BE #3ED0C8 #48DAD2 #52E4DC #57E9E1 #5CEEE6 #61F3EB #66F8F0
#5F9EA0 #69A8AA #73B2B4 #7DBCBE #87C6C8 #91D0D2 #96D5D7 #9BDADC #A0DFE1 #A5E3E6
#3CB371 #46BD7B #50C785 #5AD18F #64DB99 #6EE5A3 #73EAA8 #78EFAD #7DF4B2 #82F9B7
#2E8B57 #389561 #429F6B #4CA975 #56B37F #60BD89 #65C28E #6AC793 #6FCC98 #74D19D
#228B22 #2C952C #369F36 #40A940 #4AB34A #54BD54 #5EC75E #63CC63 #68D168 #6DD66D
#497649 #538053 #5D8A5D #679467 #719E71 #7BA87B #80AD80 #85B285 #8AB78A #8FBC8F
#006400 #0A6E0A #147814 #1E821E #288C28 #329632 #3CA03C #41A541 #46AA46 #4BAF4B
#008C8C #0A9696 #14A0A0 #1EAAAA #28B4B4 #32BEBE #37C3C3 #3CC8C8 #41CDCD #46D2D2
#008080 #0A8A8A #149494 #1E9E9E #28A8A8 #32B2B2 #37B7B7 #3CBCBC #41C1C1 #46C6C6

#FFB6C1 #FFBBC6 #FFC0CB #FFC5D0 #FFCAD5 #FFCFDA #FFD4DF #FFD9E4 #FFDEE9 #FFE3EE
#FFAAAF #FFB4B9 #FFBEC3 #FFC8CD #FFD2D7 #FFDCE1 #FFE1E6 #FFE6EB #FFEBF0 #FFF0F5
#FF9E9B #FFA8A5 #FFB2AF #FFBCB9 #FFC6C3 #FFD0CD #FFD5D2 #FFDAD7 #FFDFDC #FFE4E1
#FF7A85 #FF848F #FF8E99 #FF98A3 #FFA2AD #FFACB7 #FFB1BC #FFB6C1 #FFBBC6 #FFC0CB
#FF5675 #FF607F #FF6A89 #FF7493 #FF7E9D #FF88A7 #FF92B1 #FF9CBB #FFA6C5 #FFB0CF
#FF82FF #FF8CFF #FF96FF #FFA0FF #FFAAFF #FFB4FF #FFBEFF #FFC8FF #FFD2FF #FFDCFF
#FF7DB4 #FF87BE #FF91C8 #FF9BD2 #FFA5DC #FFAFE6 #FFB4EB #FFB9F0 #FFBEF5 #FFC3FA
#FF69B4 #FF73BE #FF7DC8 #FF87D2 #FF91DC #FF9BE6 #FFA5F0 #FFAAF5 #FFAFFA #FFB4FF
#FF1493 #FF1E9D #FF28A7 #FF32B1 #FF3CBB #FF46C5 #FF50CF #FF5AD9 #FF64E3 #FF6EED
#DB7093 #DB7A9D #DB84A7 #E08EB1 #E598BB #EAA2C5 #EAB1D4 #EFACCF #F4BBDE #F4B6D9
#D7567F #DC6089 #E16A93 #E6749D #EB7EA7 #F088B1 #F592BB #FA9CC5 #FFA6CF #FFB0D9
#C71585 #C71F8F #C73399 #C73DA3 #CC47AD #D151B7 #D65BC1 #E065CB #EA6FD5 #F479DF
#CD1039 #CD1F48 #CD2E57 #CD3861 #CD426B #D24C75 #D7567F #DC6089 #E16A93 #E6749D
#B9062F #B91A4D #BE2457 #C32E61 #C8386B #CD4275 #D24C7F #D75689 #DC6093 #E16A9D

#FAEB78 #FAF082 #FAF58C #FAFA96 #FAFAA0 #FAFAAA #FAFAB4 #FAFABE #FAFAD2 #FAFAD2
#FFDC3C #FFE146 #FFE650 #FFEB5A #FFF064 #FFF56E #FFFA78 #FFFA82 #FFFF8C #FFFF96
#FFC81E #FFD228 #FFD732 #FFDC3C #FFE146 #FFE650 #FFEB5A #FFF064 #FFF56E #FFF978
#FFB400 #FFBE0A #FFC314 #FFC81E #FFCD28 #FFD232 #FFD73C #FFDC46 #FFE150 #FFE65A
#FDCD8C #FDD296 #FDD7A0 #FDDCAA #FDE1B4 #FDE6BE #FDEBC8 #FDF5D2 #FDF5DC #FDF5E6
#FAC87D #FACD87 #FAD291 #FAD79B #FADCA5 #FAE1AF #FAE6B9 #FAEBC3 #FAEBCD #FAEBD7
#FFA500 #FFAF0A #FFB914 #FFC31E #FFCD28 #FFD732 #FFDC37 #FFE13C #FFE641 #FFEB46
#FF9100 #FF9B00 #FFA500 #FFAF00 #FFB900 #FFC300 #FFC800 #FFCD00 #FFD200 #FFD700
#FF8200 #FF8C0A #FF9614 #FFA01E #FFAA28 #FFB432 #FFB937 #FFBE3C #FFC341 #FFC846
#FFA98F #FFB399 #FFBDA3 #FFC7AD #FFD1B7 #FFDBC1 #FFE0C6 #FFE5CB #FFEAD0 #FFEFD5
#FFA374 #FFAD7E #FFB788 #FFC192 #FFCB9C #FFD0A1 #FFD5A6 #FFDAAB #FFDFB0 #FFE4B5
#FF9473 #FF9E7D #FFA887 #FFB291 #FFBC9B #FFC6A5 #FFD0AF #FFD0AF #FFD5B4 #FFDAB9
#FF7F50 #FF895A #FF9364 #FF9D6E #FFA778 #FFB182 #FFBB8C #FFC091 #FFC596 #FFCA9B
#CD853F #CD8F49 #D29953 #D7A35D #DCAD67 #E1B771 #E6C17B #EBC680 #F0CB85 #F5D08A
#D2691E #D27328 #D27D32 #D7873C #DC9146 #E19B50 #E6A55A #EBAA5F #EBAF64 #F0B469
#AE5E1A #B86824 #C2722E #CC7C38 #D68642 #E0904C #E59551 #EA9A56 #EF9F5B #F4A460
#8B4513 #8B4F1D #8B5927 #8B6331 #906D3B #957745 #9F814F #A48654 #A98B59 #AE905E

#FF9696 #FFA0A0 #FFAAAA #FFB4B4 #FFBEBE #FFC8C8 #FFD2D2 #FFDCDC #FFE6E6 #FFF0F0
#F08080 #F08A8A #F09494 #F59E9E #FAA8A8 #FAB2B2 #FAB7B7 #FABCBC #FAC1C1 #FAC6C6
#F56E6E #F57878 #F58282 #F58C8C #F59696 #F5A0A0 #F5AAAA #FAB4B4 #FABEBE #FAC8C8
#F06464 #F06E6E #F07878 #F08282 #F08C8C #F09696 #F4A0A0 #F4AAAA #F4B4B4 #FEBEBE
#FF0000 #FF3232 #FF4646 #FF5050 #FF5A5A #FF6464 #FF6E6E #FF7878 #FF8282 #FF8C8C
#EB0000 #EB3232 #EB4646 #EB5050 #EB5A5A #EB6464 #F06E6E #F57878 #FA8282 #FA8C8C
#CD0000 #CD3C3C #CD4646 #CD5050 #D25A5A #D76464 #DC6E6E #E17878 #E68282 #EB8C8C
#CD5C5C #CD6666 #CD7070 #CD7A7A #D28484 #D78E8E #DC9898 #E6A2A2 #EBACAC #F0B6B6
#B90000 #B93232 #B93C3C #B94646 #B95050 #BE5A5A #C35F5F #C86464 #CD6969 #D26E6E
#B22222 #B24040 #B24A4A #B25454 #B75E5E #BC6868 #C17272 #CB7776 #CB7C7C #D08180
#A52A2A #AA3E3E #AF4848 #B45252 #BE5C5C #C36666 #CD7070 #CD7A7A #D28484 #D78E8E
#800000 #803232 #853C3C #8F4646 #945050 #9E5A5A #A36464 #AD6E6E #B77878 #C18282

#CD853F #CD8B45 #CD904A #D2954F #D29A54 #D79F59 #D7A45E #E1A963 #E1AE68 #E6B36D
#DB631F #E56D29 #E57733 #EA813D #EF8B47 #EF904C #F49551 #F49A56 #F49F5B #F4A460
#D2691E #D27328 #D77D32 #D7873C #DC9146 #E19B50 #E6A055 #EBA55A #F0AA5F #F5AF64
#A0522D #A05C37 #A06641 #A5704B #AA7A55 #B4845F #B98E69 #C39873 #CDA27D #D7AC87
#8B4513 #8B4F1D #8B5927 #8B6331 #906D3B #9A7745 #A4814F #AE8B59 #B89563 #C29F6D
#DA70D6 #DF75DB #E47AE0 #E97FE5 #EE84EA #F389EF #F88EF4 #FD93F9 #FF98FE #FF9DFF
#BA55D3 #BF5AD8 #C45FDD #C964E2 #CE69E7 #D36EEC #D873F1 #DD78F6 #E27DFB #E782FF
#9932CC #9E37D1 #A33CD6 #A841DB #AD46E0 #B24BE5 #B750EA #BC55EF #C15AF4 #C65FF9
#9400D3 #9905D8 #9E0ADD #A30FE2 #A814E7 #AD19EC #B21EF1 #B723F6 #BC28FB #C12DFF
#942894 #9E329E #A83CA8 #B246B2 #BC50BC #C65AC6 #D064D0 #DA6EDA #E478E4 #EE82EE
#8c008c #960a96 #a014a0 #aa1eaa #b428b4 #be32be #c83cc8 #d246d2 #dc50dc #e65ae6
#800080 #8a0a8a #941494 #9e1e9e #a828a8 #b232b2 #bc3cbc #c646c6 #d050d0 #da5ada
#834683 #8d508d #975a97 #a164a1 #ab6eab #b578b5 #bf82bf #c98cc9 #d396d3 #dda0dd
#828282 #8c8c8c #969696 #a0a0a0 #aaaaaa #b4b4b4 #bebebe #c8c8c8 #d2d2d2 #dcdcdc
#000000 #282828 #323232 #3c3c3c #464646 #505050 #5a5a5a #646464 #6e6e6e #787878