あなたにもできる!ハーバード留学!!~アラフォーからのボストン留学体験記

アラフォー研究者のボストン留学体験ブログ。
研究・生活・英語・ITを中心に留学ライフハックスをお教えします!

アラフォーからのハーバード留学IT編017:PCのカーソルが勝手に動く

2014-02-15 12:42:00 | アラフォーからのハーバード留学IT編
エイサーのネットブックAspire Oneでちょっとまえから、文章の入力中にカーソルが勝手に動く症状がでていて困っていた。

1)文字を入力しようとすると、文字変換が勝手に進んでしまい、たとえば「小児」といれようとすると「しょ宇二」のようになってしまう。

2)また変換を確定すると2行くらい前のところにカーソルがもどる。

3)文字を入力しようとすると、2行位前の関係のないところに一部の文字が入ってしまう。

というものである。

ちなみにOSはウィンドウズ8である。

メーカーは違うが、富士通のサイトよるとタッチパッドの感度が変わってしまったことによるようだ。

もしかすると、その調節に必要なソフトを消してしまったのかもしれない。

しらべてみると、データーを消さずにwindowsを再インストールするPCリフレッシュ機能がwindows8にはついており、システムが不安定な時は試したらよいのだそうだ。


そしてこれを試してみると、なんと復活した。

ちょっと原因がわからず気持ち悪いことと、アプリやソフトは当然ながら消去されてしまうのが難点。

アラフォーからのハーバード留学IT編016:USBメモリには4GB以上のファイルは入らない?

2014-01-25 15:48:39 | アラフォーからのハーバード留学IT編
研究室でイメージングしたデーターを移すのに苦労している。もともとはMACのコンピューターに入っているデーターを、ウィンドウズのシステムに移すのができないのだ。NTFS形式でフォーマットした外付けHDをマックが認識せず(*)データーがうまくコピーできない。

しかたがないので、ファイルを圧縮してみることとする。
一回の実験データーが入ったフォルダをフォルダごと圧縮すると9GBになる。

これはしめしめ、Walgreensで16GBのUSBが15ドルでうっていたぞ!!

と16GBのUSBゲットして入れようとすると、なぜか容量不足となる。。

この理由がわからなかったのだが、今日共同研究者と話していて原因が分かった。

USBメモリは、マックでもPCでも認識できるようにフォーマットがデフォルトでFAT32形式になっている。

そしてFAT32形式は、なんと4GBまでのファイルしか扱えない!!!

なんとUSBメモリって4GBのファイルしか扱えないのだ。。
アナログ人間はこんな時自己嫌悪に陥る。

(*)一応Mac OS Xから、NTFSのWindowsのボリュームに書き込みができるようにする方法というのがあるらしい。

アラフォーからのハーバード留学IT編012:LSMaker でStar Wars気分

2013-12-30 13:02:56 | アラフォーからのハーバード留学IT編
今週は子供が休みのこともあって、ちょっと趣向をこらして、レゴでつくた作品にライトセーバーをつけてみることにした。
フリーソフトのLSMakerを使うと、静止画や動画にライトセーバーがつけられるのだ。

LSMakerの概要はGigazine

LSMakerの使い方は僕は発展途上技術者のサイトがよい。

ちなみに作品はこんな写真のような感じです。これをイメージJかなんかで動画にしてみると
結構面白いのではないか。

あまり子供には受けなかったけれど。。









もう少しこると面白いかもしれない。

アラフォーからのハーバード留学IT編014:ウエット系でもできるcummeRbundの使い方

2013-11-02 22:14:33 | アラフォーからのハーバード留学IT編
 以下はバイオインフォマティックス初心者のウエット系研究者がかいた覚書である。
 
 まず準備として

 ネットブックで行うRNA-seqデーター解析(3)でLT-HSCとST-HSCのデータがcuffdiffで処理されて、LT_HSC_VS_ST_HSC_cuffdiff_resultというフォルダにはいっているはずである。
 
 またネットブックで行うRNA-seqデーター解析(3.5)でその可視化ソフトであるcummeRbundがRにインストールされたはずである。

 今回はこのcummeRbundを用いて可視化を試みることとする(*)
もしこれまでに触ったことがなければ、RおよびcummeRbundのコマンドの概要を少し知っておいた方がよい。

Rに関しては二階堂愛さんのRの基礎が少し難しいがよいだろう(なお練習問題は必ずしも解けなくても大丈夫。オブジェクト指向の概要とコマンドの概要がわかればよい)。

cummeRbundに関してはinsilicodb.orgが英語だが割と実用的でよい。日本語のものはcummeRbund manualをそのまま訳したものが多く今一つ使いにくいが、
牧場の朝さんのと
二階堂愛さんのRNA-seqデーター解析
がわりかし使いよい。

まずRを起動しcummeRbundを立ち上げてみる
>library(cummeRbund)

次にLT_HSC_VS_ST_HSC_cuffdiff_resultフォルダから、diffという拡張子がついたデーターファイルをcuffというオブジェクトによみこむ(**)。

> cuff <- readCufflinks("LT_HSC_VS_ST_HSC_cuffdiff_result")

うまく読み込めていれば
>cuff
とやるとその概要を次のように表示してくれるはずである。
CuffSet instance with:
4 samples
23306 genes
30563 isoforms
25977 TSS
22856 CDS
139494 promoters
155862 splicing
113886 relCDS

遺伝子(genes)、アイソフォーム(isoforms)、転写開始点(TSS)などなどの情報。
ここでちょっとした分析を行うなら、

>csBoxplot(genes(cuff))
とやると各群のboxplotを表示してくれる(***)


>csDensity(genes(cuff))
とやると、densityplotを表示してくれる


さらに
> csDendro(genes(cuff))
とやると、樹形図を表示してくれる


そして
>csVolcanoMatrix(genes(cuff))
とやると、ボルケーノプロットを表示してくれる


 次にgenediffというオブジェクトに差のある遺伝子データ(genes)を読み込む。

> genediff <- diffData(genes(cuff))

全部を出すとちょっとめんどうなので、その最初の部分だけを表示させると

>head(genediff)

gene_id sample_1 sample_2 status value_1 value_2 log2_fold_change
1 0610005C13Rik q1 q2 NOTEST 0.0000 0.00000 0.00000e+00
2 0610007N19Rik q1 q2 OK 0.0000 3.78706 1.79769e+308
3 0610007P14Rik q1 q2 OK 197.9410 83.90660 -1.23821e+00
4 0610008F07Rik q1 q2 NOTEST 0.0000 0.00000 0.00000e+00
5 0610009B14Rik q1 q2 NOTEST 0.0000 0.00000 0.00000e+00
6 0610009B22Rik q1 q2 OK 94.5476 105.75900 1.61668e-01
test_stat p_value q_value significant
1 0.00000e+00 1.0000000 1.000000 no
2 1.79769e+308 0.1660150 0.533321 no
3 1.79123e+00 0.0732564 0.492534 no
4 0.00000e+00 1.0000000 1.000000 no
5 0.00000e+00 1.0000000 1.000000 no
6 -1.81075e-01 0.8563090 0.968486 no

このようなデーター構成になっていることがわかる。一番前にgene_idがあることに注目してこの差のある遺伝子のIDを取ってくると、

>genediffdataID <- genediff_data[,1]
として、

>genediffdataID
(前略)
[2293] "Tmem180" "Tmem194" "Tmem38a" "Traf3ip2"
[2297] "Trdmt1" "Trim23" "Tstd3" "Ttll1"
[2301] "Ubald1" "Ube2e2" "Ubxn11" "Vpreb3"
[2305] "Wdr12" "Wnk1" "Xist" "Zbtb34"
[2309] "Zfp354a" "Zfp446" "Zfp523" "Zfp551"
[2313] "Zfp605" "Zfp810" "Zfp846" "Zfp90"
[2317] "Zfp92" "Zfyve19" "Zscan2"

とちゃんとIDがとれていることがわかる。

このgenediffdataIDは列ベクトル(Columun Vector)であるが、このIDをもとにデーターを取ってくる作業をするためには行ベクトル(Row Vector)である必要があり、転置変換を行う(****)。

> genediffdataID <- t(genediffdataID)

そしてmyGenesというオブジェクトにcuffというオブジェクトからこのgenediffdataIDを持つ遺伝子の情報だけとってくると、

>myGenes <-getGenes(cuff, genediffdataID)

Getting gene information:
FPKM
Differential Expression Data
Annotation Data
Replicate FPKMs
Counts
Getting isoforms information:
FPKM
Differential Expression Data
Annotation Data
Replicate FPKMs
Counts
Getting CDS information:
FPKM
Differential Expression Data
Annotation Data
Replicate FPKMs
Counts
Getting TSS information:
FPKM
Differential Expression Data
Annotation Data
Replicate FPKMs
Counts
Getting promoter information:
distData
Getting splicing information:
distData
Getting relCDS information:
distData

とデーターがとってこられる。

例えばmyGenesをもとにヒートマップを書かせてみると、

> csHeatmap(myGenes)
遺伝子が多すぎてわかりませんが、次のようになる。


myGenesをもとに4群でクラスター分析すると、

>k.means <-csCluster(myGenes, k=4)

その状況をグラフに書かせてみると、
> k.means.plot <- csClusterPlot(k.means)
> k.means.plot



q1,q2:LT-HSC
q3,q4:ST-HSC

であったので、もしあなたが血液学者なら、もっとも未分化な血液幹細胞LT-HSCで多く出ている遺伝子が何かしりたいところだろう。このクラスターのうち、q1,q2での発現が,q3,q4より多い、クラスター2のデーターがほしくなるはずである。

>k.means
とやると、クラスター分析のデーターをだしてくれ
(前略)
Mpst 2 3 0.4569913751
Ino80b 2 3 0.4508379672
Zfp697 2 3 0.4463841894
5730577I03Rik 2 3 0.4462468051
Ttc23 2 1 0.4423819910
Bai3 2 1 0.4386712043
Sh3pxd2a 2 3 0.4293128230
Nab2 2 3 0.4288460352
Jag1 2 4 0.4265375878
(中略)
C77080 2 4 -0.2102395161
D5Ertd605e 2 4 -0.2228394545
Srr 2 4 -0.2498411870
(後略)

とどんな遺伝子かわかる。
この遺伝子群のヒートマップをたとえば書かせてみるには、この遺伝子群のIDをエクセルにコピペして(*****)、タブ区切りのtxtファイルをつくる。

それをRに読み込んで、転置し

> CL2ID <- read.table("CL2.txt" , header=F, sep="t")
> CL2ID <- t(CL2ID)

データーをcuffから、Genes_CL2にとってきて、
>Genes_CL2 <-getGenes(cuff, CL2ID)
>csHeatmap(Genes_CL2)



やっぱ数が多いなあー。

そこで発現量が高く(status列がOK)、統計的に優位なものだけ(significant列がyes)のものだけgenediffオブジェクトからとってくることとする(******)。

> genediff_data <- genediff[((genediff$status == 'OK')& (genediff$significant == 'yes')),]

なおこの操作をおこなうとgenediffオブジェクトのデーターは一部失われる。(*******)
IDをとって、データーをmyGenes2にいれ
> genediffdataID2 <- genediff_data[,1]
> genediffdataID2 <- t(genediffdataID2)
> myGenes2 <-getGenes(cuff, genediffdataID2)

4群のクラスター分析を行い
> k.means <-csCluster(myGenes2, k=4)
> k.means.plot <- csClusterPlot(k.means)
> k.means.plot
図をかかせてみると、

やはり遺伝子数はまだ多そうである。

統計的にいいのかどうかはわからないが6群でクラスター分析を行い
プロットすると、
> k.means <-csCluster(myGenes2, k=6)
> k.means.plot <- csClusterPlot(k.means)
> k.means.plot


クラスター6が面白そうである。
>k.means
でこの遺伝子がなにかしらべ、やや多いので上から50個をエクセルでCL6-50.txtファイルにいれ

> CL6ID <- read.table("CL6-50.txt" , header=F, sep="t")
> CL6ID <- t(CL6ID)
> Genes_CL6 <-getGenes(cuff, CL6ID)
> csHeatmap(Genes_CL6)
とやると

わりとみられる感じになる(********)。
また
>csHeatmap(Genes_CL6, cluster ='both')
とやると遺伝子の側でもクラスタリングしてくれる。


ふーっ!なんだかなー。




(*)ネットブックで行うRNA-seqデーター解析(4)としたかったのだが、ちょっとまだまとめきれていないので、IT編とした。
(**)この操作がRの基本である。
(***)cuffdiffでラベルがうまくつけられなかったつけがここにでている。q1,q2,q3,q4...
あと一部の群で0の値があり、それが少しデーターをおかしくしている気がする。
(****)そのままやると変なエラーメッセージがでます。
(*****)このあたりがド素人的な所以。。
(******)insilicodb.orgにあるスクリプトのようにp値(α値)で区切ってもよいのかもしれない。
 ちなみにα=0.05をカットオフにして、ヒートマップを書かせると
 > mySigGeneIds<-getSig(cuff,alpha=0.05,level='genes')
 > myGenes3<-getGenes(cuff,mySigGeneIds)
 > csHeatmap(myGenes3,cluster='both')
 
 のようになる。まだまだやのうー!
(*******)条件にあったものが消えている気がする。
(********)gene_idが2重に表示される意味が分からない。

アラフォーからのハーバード留学IT編013:SEQanswerに投稿してみる

2013-10-23 13:21:04 | アラフォーからのハーバード留学IT編
 次世代シーケンスの解析技術の疑問とその対策をネット上でやりとりする掲示板としてSEQanswerがある。初心者の質問からハイスペックなものまで掲載されているwikiベースのサイトであり、Nucleic Acids Res. 2012 January; 40(D1): D1313–D1317といった論文でもその有用性が特集されている。

 先日来勉強しているRNA-seqのデーター解析でもお世話になったし(エラー解析でググるとかならずでてくる)、自分の問題解決には十分でなかった部分もあるのでこれまでに得られた知恵を投稿してみた(半分自分のログ代わりである)。英語でこんなところに発信するのもまた楽しい(ちょっと文法を間違ってしまったが、まあ良しとしよう(笑))