読者です 読者をやめる 読者になる 読者になる

例外処理

c#
            try
            {

            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message, Application.ProductName
                    , MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

フォームを閉じるときの終了確認

c#
        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult reply;

            reply = MessageBox.Show("このアプリケーションを終了します"
                , Application.ProductName, MessageBoxButtons.OKCancel
                , MessageBoxIcon.Information);

            if (reply == DialogResult.Cancel)
            {
                e.Cancel = true;
            }
        }

Rの計算結果を新たなwindowに出力する方法

コンソールに文字として結果が出力される統計解析結果などを他のwindowに出力する方法。
以下の関数を定義しておく。

original_output <- function(){ 
x <- winDialogString("output to a new window","")
filename <- tempfile()
capture.output(eval(parse(text=x)),file=filename)
file.show(filename)
}

使い方は非常に簡単

original_output()

そうするとダイアログボックスが開くのでそこにRのスクリプトを書くだけ。
sink 関数を使う方法がうまくいかずに、capture.output 関数の使用方法を RjpWiki の Q&A で教えて頂いた。
ちなみに同様のことは page 関数を使ってもできる。 その場合は以下の関数を定義すればよい。

original_out <- function(x){ page(x,method="print") } 

使い方の例としては

x <- 1:10
y <- 7:20
original_out(t.test(x,y))

ExcelファイルをRに読み込む

R

クリップボード経由でファイルを読み込む方法

read.table(file="clipboard",header=T,sep="\t")

プロットのマーカーをきれいに表示する方法

R
plot(0, 0, xlim=c(0,3), ylim = c(0, 8), type = "n", axes = F, xlab = "", ylab = "")
a<-rep(0:2,c(9,9,8))
b<-c(8:0,8:0,8:1)
points(a,b,pch=0:25,cex=3)
text(a+0.45,b,0:25)

biocGraph パッケージを使用して Rgraphviz で描いた図にリンクをはる方法

R
library(RCurl) 
library(XML) 
library(geneplotter) 
library(Rgraphviz) 
library(biocGraph) 
library(org.Hs.eg.db) 
gene_article <- function(geneID){ 
ID2symbol <- as.list(org.Hs.egSYMBOL) 
gene_name <- unlist(ID2symbol[geneID]) 
url <- paste("http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=gene&retmode=xml&id=",geneID,sep="") 
x <- getURL(url) 
pubmed <- xmlRoot(xmlTreeParse(x)) 
pmid <- (xmlElementsByTagName(pubmed,"PubMedId",recursive = T)) 
pmid <- unique(sapply(pmid,xmlValue))             
gene_list<-list(NULL) 
for(i in 1:length(pmid)){
url<-paste("http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=",pmid[i],"[PMID]+AND+human[ORGN]",sep="")
data<-getURL(url)
doc<-xmlRoot(xmlTreeParse(data))
id<-xmlSApply(doc[["IdList"]], xmlValue)
gene_list[[i]]<-unlist(ID2symbol[id]) 
} 
a<-sapply(gene_list,length) 
ok<-a>1&a<5 
genes<-gene_list[ok] 
pmid<-pmid[ok] 
names(genes)<-pmid
nd<-c(unique(unlist(genes)),pmid)
ed<-lapply(nd,function(z)list(edges=NULL))
names(ed)<-nd
for(i in 1:length(genes)){
p<-pmid[i] 
g<-genes[[i]]
ed[[p]]<-list(edges=match(g,nd))
} 
graph<-new("graphNEL",nodes=nd,edgeL=ed,edgemode="directed")
nt <- rep(c(1,2),c(length(unique(unlist(genes))),length(pmid)))
fill <- c("yellow","red")[nt]
names(fill) <- nd
png_name <- paste(gene_name,".png",sep="")
html_name <- paste(gene_name,".html",sep="")
png(png_name,width=800,height=600)
graph <- layoutGraph(graph,layoutType="neato")
nodeRenderInfo(graph) <- list(fill=fill)
graph.par(list(nodes=list(fontsize=14)))
graph <- renderGraph(graph)
dev.off() 
con <- openHtmlPage(html_name,gene_name)
gnodes <- nodes(graph)[nt==1]
gnodes_id <- unlist(as.list(org.Hs.egSYMBOL2EG[gnodes]))
pnodes <- nodes(graph)[nt==2]
gpnodes <- c(gnodes,pnodes)
links <- character(length(gpnodes))
tooltips <- gpnodes
gene_links <- paste("http://www.ncbi.nlm.nih.gov/gene/",gnodes_id,sep="")
pubmed_links <- paste("http://www.ncbi.nlm.nih.gov/pubmed/",pnodes,sep="")
links <- c(gene_links,pubmed_links)
names(links) <- gpnodes
names(tooltips) <- gpnodes
tags <- list(HREF=links,TITLE=tooltips)
imageMap(graph,con=con,tags=tags,imgname=png_name)
closeHtmlPage(con)
}
gene_article("5652") 

結果はこちら

きれいな棒グラフを描く

Excel

ピンク
(255,153,255)
黄色
(255,255,102)
水色
(204,236,255)
グリーン
(102,255,102)