taverna 26

Taverna 플러그인 만들기

요즘 Taverna 플러그인 만들기에 푹 빠져 있습니다. 그냥 재미있을것 같다는 생각으로 시작했는데 이놈의 플러그인을 만드려니깐 Taverna의 전체적인 구조를 알아야 했습니다. 덕분에 Taverna의 구조까지 대충 알게 되어버렸으니..ㅋㅋㅋ eclipse의 경우 플러그인을 만드는 책까지 나와 있는 판에 Taverna는 맨땅(물론 문서화는 잘되어있지만 ^^;;)에 헤딩하면서 꾸역꾸역 만들었습니다. 요놈 보면 볼수록 잘 설계되고 잘 만들어졌다는 생각이 듭니다. 그러나 Biopipe는 어떻게 되어 가고 있는건지 매주 아니 매월 Biopipe 소식지 같은거라도 만들어서 배포했으면 좋으려만 어떻게 되어 가는지 궁금해요!! 갑자기 삼천포로 빠져 버렸네,,, 간단하게 Taverna는 SPI(Service Provi..

howto 2007.11.02

문서화는 섹스와 같다.

Code Reading이라는 책을 보면 이런 문구가 나온다. 1분의 문서 읽기는 한 시간의 코드 읽기와 맞먹는다는 점을 명심할 것문서화는 섹스와 같다. 좋을 때는 매우 좋고 나쁠 때에는 안 하느니만 못하다.요즘 Taverna Plugin을 만들면서 뼈져리게 느끼는 말들이다. 무턱대고 만들어 보자고 소스코드부터 봤는데, 그게 아니었다. 미리 문서화된 문서들을 읽어봤으면 훨씬 더 수월했으련만...

blogging 2007.10.29

Taverna Plugins 개발하기

뭐하나 새로운걸 만드는 것보다는 Taverna에 통합하는 편이 나을듯 해서 Taverna 개발자 가이드를 보고 있습니다. 나름 이런저런 설명을 친절하게 해 놓았지만, 실제 뭔가를 만들기에는 좀더 공부를 해야겠습니다. 문서에는 가장 좋은 레퍼런스는 Taverna 자신의 소스코드라니 소스코드를 뚫어지게 쳐다보는 수 밖엔 ^^;; Taverna를 이용하여 Plugins을 개발하기 위해서는 우선 SVN, SPI(Service Provider Interface), Maven에 대한 내용을 숙지하고 시작해야 한다. SVN은 Taverna의 소스코드를 다운로드 받기 위한 것이고, SPI와 Maven은 실제 plugins을 만들고 빌드하기 위해 필요한 내용이다. 여기에 덧붙여 eclipse에 대해서 알면 더 좋다. 개..

Taverna 2007.10.24

Taverna에서 대용량 데이터 다루기 - 간단한 웹 서비스

Biopipe 경진대회 문제를 풀면서 8,000여개의 multiple 서열을 sort하는 beanshell 스크립트를 만들었는데, 로컬에서 돌아가다 보니 좀 시간이 걸렸다. 간단하게 웹 서비스를 만들어서 휘리릭 배포해서 쓰고 싶어졌다. Axis와 JWS를 이용해서 간단하게 해결하자. 우선 Tomcat에 Axis를 설치한다. Axis를 다운로드 받아서 common/lib에 라이브러리들 옮기고 webapps/axis 디렉토리를 Tomcat의 webapps에 옮긴 다음 http://hostname:8080/axis 로 가면 첫화면에서 validation을 선택하여 필요한 라이브러리를 체크하고 없다면 추가해준다. 이때 라이브러리는 java의 lib/ext 디렉토리에 해당 라이브러리를 옮겨주면 끝. 이제 필요한 ..

Taverna 2007.08.31

Iteration methods and strategies in Taverna

Taverna에서는 묵시적이지만, 설정이 가능한 iteration 메커니즘을 가지고 있다. processor가 하나의 list를 입력으로 받으면 여러번 processor가 수행되어 그 결과를 새로운 list로 받을 수 있다. 이러한 iteration은 cross와 dot이 존재한다. 첫 번째는 a 하나만을 입력으로 받아서 function f를 수행하고 나면 결과로 f(a)를 받는 일반적인 상황이고, 첫 번쨰 하단은 입력으로 리스트 [a1,a2,a3]를 받아서 결과로 묵시적인 iteration이 발생해서 각각의 입력에 대해 하나씩 수행된 상황이다. 이제 cross와 dot strategy가 발생하는 상황인데, 첫 번째 cross는 입력으로 [a1,a2] [b1,b2]를 받으면 두개의 list가 cross로..

Bioblogs 2007.08.31

워크플로우를 사용하는 e-Scientists와 Social Networking

얼마전 [네트워크와 융합과학] 암세포 연구에도 '네트워크' 이론 적용이라는 기사를 본적이있다. 간단하게 요약하자면 인터넷과 같은 정보 네트워크에서 연결선이 많은 허브를 가지고 있고 이러한 허브가 존재하는 척도 없는 네트워크는 인터넷과 같은 정보 네트워크에서만이 아니라, 단백질 상호작용네트워크에서도 허브 단백질의 존재가 있어 이 또한 척도 없는 네트워크를 형성하고 있다. 이렇듯이 인터넷 시대를 맞이하여 정보교환이 활발해지고, 서치엔진의 발달로 각 연구 분야에에서 숨겨져 있던 연구결과들이 드러나고있다. 이러한 연구결과의 융합으로 새로운 연구의 창출 노력이 일어나고 있다는 것이다. 이 글은 융합과 허브라는 두 단어로 마무리된다. 허브를 통한 정보의 교환, 공유, 협업 그리고 새로운 융합의 탄생... 그러다가 ..

blogging 2007.08.30

Biopipe 경진대회 단백체 문제

이전까지는 유전체 문제를 풀어보았는데 이제 단백체 문제를 풀어보도록 하겠다. KOBIC의 Biopipe를 통해서 문제를 풀어야 하는데, 계속해서 Taverna를 이용해서 문제를 풀고 있으니... 경진대회에 참가하려면 Biopipe로 작성해야 하는데 ㅋㅋ 자! 그럼 단백체 1번 문제를 살펴보자. OMIM 데이터베이스를 이용해서 질병관련 유전자를 찾고 이 유전자의 Symbol을 이용해서 단백질 서열을 얻은다음 EBI interproscan을 통해 얻어진 정보를 이용해 막관련 단백질을 추출하여 대상 질병에 대한 Pathway 정보를 얻는것이 1번문제이다. 처음으로 일본의 XML Central of DDBJ에서 제공하는 OMIM 관련 웹 서비스( http://xml.nig.ac.jp/wsdl/OMIM.wsdl)..

Taverna 2007.08.26

Biopipe 경진대회 Taverna를 이용한 문제2 풀이

새로운 문제가 오늘 따근따근하게 올라왔으니 한번 어떤가 풀어봐야겠다. 문제 풀이라기 보단 그냥 힌트로 블럭 조립하는 느낌이다. 새로운 문제의 1단계는 'Candidatus Carsonella ruddii PV'라는 세균의 전체 유전체 서열을 FASTA 포맷으로 가져오고 코딩서열 (CDS) 목록을 포함하는 유전체의 주석 정보를 GenBank flat file 포맷으로 가져오기 바랍니다. DDBJ에서 제공하는 GIB 데이터베이스의 웹 서비스를 이용하면 된다. 우선 Candidatus Carsonella ruddii PV 라는 세균의 GIB에서 제공하는 ChID를 알아야 이 세균에 대한 정보를 얻을 수 있다. 따라서 이름을 가지고 ChID를 얻어오는 getChIDFromOrganismName을 사용한다. ge..

Taverna 2007.08.23

KOBIC의 Biopipe 경진대회 - 삼일째 오후

어제 포스팅에서 언급했던것과 같이 Biopipe를 통해 문제를 해결하려고 Biopipe 사이트에 들어가서 차근차근 진행하다가 내가 잘못해서 그런지 몰라도 처음부터 꽉 막혀 버렸다. WSDbfetch_fetchData를 통해서 서열을 얻고 이를 protein 서열로 바꾸기 위해nucleic_translation_transeq를 사용했다. 각각의 모듈을 독립적으로 실행시 잘 돌아간다. 전체적으로 돌리면 아무런 반응이 없다. 시간이 흐른뒤 점심을 먹고 다시 해보니 잘 된다. 이런 QnA란에 올랐던 글을 지웠다. 아직 답변이 올라오기 전이라. 내가 뭔가 잘못했던건가??? 그래 이번엔 searchSimple을 통해 protein 서열에 대해 blastp를 수행하려고 했다. nucleic_translation_tr..

Taverna 2007.08.23

Biopipe beta 경진대회 3단계 문제 풀이

1,2 단계는 그럭저럭 해볼만 하다. 하지만 3단계는 ㅋㅋ 3단계 문제는 Blast의 결과 정확히 말하자면 blastp의 결과물을 가지고 유용한 정보 Pathway, PPI정보등을 찾는것이다. 이건 무한한 상상력을 발휘하면 되겠다. 그럼 이제부터 풀어보도록하자. 우선 blast 결과물은 어떠한 DB를 대상으로 했는가가 중요하다. Pathway 정보는 KEGG를 통해서 알수 있는데 Blast의 결과에 나오는 ID와 KEGG에서 사용하는 ID가 서로 상이하기 때문에 이를 KEGG ID로 변환하는 과정이 필요로 한다. 이것은 KEGG의 bconv라는 모듈을 통해서 가능하다. NCBI GI의 경우 ncbi-gi:번호 형식으로 bconv를 수행하면 ncbi-gi에 해당하는 KEGG ID를 반환한다. Externa..

Taverna 2007.08.22