Tuesday, March 20, 2007

Basics of Microarray analysis

Bio CC wiki for microarray analysis( In Korean) : http://expressome.org/

A sequence of microarray experiment
  1. cDNA Spotting
  2. RNA preparation
  3. Hybridization
  4. Scanning
  5. Statistics

Problems in microarray data analysis

RNA extracts might be different according to which environment and when they were extracted. It's related to false positive signals (DEG).

Platform difference : different set of DEG could be determined between cDNA microarray chip which measure expression pattern from two samples and oligonucleotide chip which measures from single sample (absolute expression level).

Monday, March 19, 2007

Pros and cons of Toxicogenomics

Toxigogenomics in Risk Assessment

  1. Prioritization of chemical lists
  2. Deciphering mechanisms of action
  3. Identifying biomarkers of exposure
  4. Identifying biomarkers of toxicity
  5. Cross-species extrapolations
  6. Identifying species sensitivities
  7. Analysis of mixtures toxicity

Toxicogenomics based toxic mechanism prediction

  1. Used to rank and prioritize the potential toxicity of NCEs in early stage of development
  2. Toxicities observed in models(mouse, rodent, dog, etc) are not relevant to humans since mechainisms of action are not conserved across species.

Impediment of toxicogenomics

  1. Lack of uniform study design
  2. Multiplicity of normalization and analysis strategies
  3. Questionable reproducibility of microarray data across the platforms
  4. Semiquantitative nature of proteomics
  5. Limited availability of metabolite annotation
  6. Absence of data quality control measures and standards
  7. Lack of effective data sharing and reporting standards

Toxicogenomics Standards

  1. www.mged.org
  2. psidev.sourceforge.net/
  3. www.smrsgroup.org

Toxicogenomics DBs

Lack the ability to integrate toxigogenomic data across chemical and biological space to mechanical pathways and networks

Thursday, March 15, 2007

Scene 그래프 갱신

오직 BranchGroup만이 프로그램 실행 중에 detach, add 가 가능하기 때문에, BranchGroup의 생성시 이를 지정해 주어야 한다.

Exam code

  1. BranchGroup branch=new BranchGroup();
  2. branch.setCapability BranchGroup.ALLOW_DETACH);
  3. branch.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
  4. branch.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND);


2번: branchgroup 자신이 parent group에서 분리될 수 있게 선언
3,4번: child group이 확장 되거나 새롭게 add될 수 있게 선언



상호 작용
Parent group과 child group의 branchgroup의 선언이 서로 match가 되어야
제대로 기능할 수 있다.

Exam code

BranchGroup parent=new BranchGroup();
parent.setcapability(BranchGroup.allow_child_write);

...

BranchGroup child=new BranchGroup();
child.setcapability(BranchGroup.allow_detach);
...

parent.addchild(child);
parent.removeall();



앞의 부모 branch에서 자식 branch를 다시 쓸 수 있다고 선언했지만,
아래의 자식 branch에서 스스로 detach 할 수 있다고 선언하지 않으면
parent.removeall()은 동작하지 않는다.

Java3d와 스윙 for layout, 문제와 해결

1. Canvas3D 객체와 JFrame 결합

문제 코드

JFrame frame=new JFrame();
JPanel panel=new JPanel();
panel.add(BorderLayout.center,canvas);
frame.getcontentPane().add(BorderLayout.center,panel);

위의 경우 canvas가 frame에 결합하지 못했다.

해결 코드

panel.setLayout(new BorderLayout());
panel.add("Center",canvas);

로 BorderLayout 객체를 생성하여 layout설정 후, 문제가 해결되었다.

Wednesday, March 14, 2007

Simplest java3d program

SimpleUniverse와 Built-in Geometry class인 sphere를 이용하여 sphere 그리는 프로그램.




import ...

public class Basic extends Applets{

public Test2{

SimpleUniverse u=new SimpleUniverse(); // SimpleUniverse 인스턴스

BranchGroup Root=new BranchGroup(); // Root branch group

// Sphere를 만들고, 색 선정 후, BranchGroup 에 추가한다.

Appearance ap=new Appearance();

Color3f=new Color3f(1.0f,0.0f,0.0f);

ColoringAttributes at=new ColoringAttributes(color,ColoringAttributes.shape_flat);

ap.setColoringAttributes(at);

Sphere sp=new Sphere(0.1f,ap);

// 만들어진 sphere를 Branchgroup Root에 연결

Root.addChild(sp);

// Root를 simpleuniverse에 연결

u.addBranchGraph(Root);

// Viewer조절

u.getViewingPlatfrom().setNominalViewingTransform();

}

public static void main(String[] args){

//Applet 스타트

Basic b=new Basic();

}

}


색 지정의 우선순위

  • Shape3D나 도형 primitive class(Box, Cone, Sphere, etc) 들은 Appearance 와 Material 클래스가 외형을 정의한다.
  • 색 지정의 경우, 두 클래스 모두에서 가능하나, Material 클래스가 우선이다. 따라서 Material class에서 이미 색 지정이 되어 있다면, Appearance 클래서의 색 지정은 무시된다.

Material class

Java3d API for Material class

Exam
  • Appearance ap=new Appearance();
  • Color3f red , black, white, green ...
  • Material m=new Material(red,black,white,green,80.0f);
  • ap.setMaterial(m);

Wednesday, March 7, 2007

Common errors in Java programming

문자열을 읽어 형변환을 하는 경우

str.substring(23,26)을 읽어 정수형으로 형 변환.

int a=Integer.parseInt(str.substring(23,26));

이 때, 첫 문자가 공백문자인 경우, 에러 발생.

str.substring(23,26).trim() 을 써서 공백문자를 제거한다.

Tuesday, March 6, 2007

Java3D - Geometry

3 ways to create geometry

1. By geometric utility classes
2. By specifying the vertex coordinates
3. By geometry loader

Monday, March 5, 2007

Java3D-Very basics

How to install java3D
1. Download Java3D distribution provided by http://java.sun.com/products/java-media/3D/download.html
2. Install Java3D with installer

Tutorial on Java3D
http://java.sun.com/developer/onlineTraining/java3d/

Procedure for Java3D programming
1. Create a Canvas3D object
2. Create a VirtualUniverse object
3. Create a Locale object, attaching it to the VirtualUniverse object
4. Construct a view branch graph (Major effort is required)
a. Create a View object
b. Create a ViewPlatform object
c. Create a PhysicalBody object
d. Create a PhysicalEnvironment object
e. Attach ViewPlatform, PhysicalBody, PhysicalEnvironment, and Canvas3D objects to Viewobject

5. Construct content branch graph(s)
6. Compile branch graph(s)
7. Insert subgraphs into the Locale

Procedure using SimpleUniverse
1. Create a Canvas3D Object
2. Create a SimpleUniverse object which references the earlier Canvas3D object
a. Customize the SimpleUniverse object
3. Construct content branch
4. Compile content branch graph
5. Insert content branch graph into the Locale of the SimpleUniverse

Sunday, March 4, 2007

Methods of String class

Useful methods for text file processing

length()
indexOf(int ch)
indexOf(String str, int fromIndex)
lastIndexOf( )

charAt(int index)

substring(int beginindex)
substring(int begin, int end)

toUpperCase()
toLowerCase()

trim()

valueOf( ) 주어진 기본형과 객체를 문자열로 전환