2020年8月31日月曜日
2020年8月28日金曜日
お返しします
・データ解析
午後
・データ解析
消耗品が切れてしまったので、一日中データ解析。数ヶ月待たせてしまったが、共同研究者にやっとdraft reportができた。
ここ数日苦戦したのが、haplotype networkの描画。結局、解決はしていないけど。
library(pegas) を使った方法だと、プロットのサイズの制御ができなかった。1枚だけなら良いのだが、今回は6つのサブグループがあり、グループ間でサイズの統一ができず断念。
library(haplotypes) では、プロットの配置の際に、シミュレーション?が行われているようで、出力するたびに微妙に配置が異なる。
完全な制御はできていないが、
coo1 <- plot(p, net=1, mode="fruchtermanreingold",,,,) plot(p, net=1, coord=coo1, label.pos=5,,,,)とすると、大きくズレることはない気がする?気のせいかも。
とはいえ、どうにかこうにか、haplotipe network図を作成し、
系統樹を作成し、
地図に投影できた。ゴチャゴチャ、、、でも、しばらくは考えたくない。一旦、お返しします。
2020年8月27日木曜日
2020年8月26日水曜日
ハプロタイプ;シーケンス名変更;「.fasta」を出力
・標本整理
午後
・授業準備
・データ解析
かなり苦戦したが、どうにかできるようになった。
library(haplotypes)を用いてハプロタイプごとにシーケンスをまとめ、さらに、シーケンス名を変更したのち、「.fasta」を出力する方法。
#library(haplotypes) #「::」で指定する #library(ape) #「::」で指定する x <- haplotypes::read.fas("???.fasta") h <- haplotypes::haplotype(x) #to class"haplotype" #h@nhap #ハプロタイプ数の確認 h_dna <- haplotypes::as.dna(h) #to class"DNA" names(h_dna) <- c(1:34) #シーケンス名の変更;class"DNA"で使う h_dnabin <- haplotypes::as.DNAbin(h_dna) #to class"DNAbin" ape::write.dna(h_dnabin, file = 'test.fasta', format = 'fasta')library()は使わず、「::」で指定した方が良い?詳しく検証していないが、2つのlibraryで同じ関数名が使われている?
関数が「class」に依存するので、順番を間違えるとハマる。「class:haplotype」→「class:DNA」→「class:DNAbin」で「ape::write.dna」が実行できる。
また、「names()」は「class:DNA」で使う。
2020年8月25日火曜日
packages"haplotypes"
・標本整理
午後
・データ解析
・手伝い
・会議
変異が大きいため、pegas::haplotype、pages::haploNetを使った方法では、ハプロタイプネットワークがうまく描けなかった。
replot()を使って、頑張ればどうにかなりそうだけど、あまり現実できではない。
で、昨夜、packages"haplotypes"というのを見つけた。
ハプロタイプネットワークの老舗ソフトTCSでも利用されている最節約法によるサブネットワーク化?を計算することができる。pagesでもできるかも?
install.packages("haplotypes") library(haplotypes) #マニュアルでは「.fas」となっているが、うまくいかなかった。 x <- read.fas("***.fasta") h <- haplotypes::haplotype(x) p <- parsimnet(x, prob=.95) rownames(p@d[[1]])<-c(1:8) plot(p, net=1, #network番号の指定 label.pos=5, vertex.cex=c(rep(5, p@nhap[[1]]), #円の大きさの指定 rep(1, c(nrow(p@d[[1]])-p@nhap[[1]]))), vertex.col=c(rep("magenta", p@nhap[[1]]), #の色の指定 rep("deepskyblue3", c(nrow(p@d[[1]])-p@nhap[[1]]))))パッケージのマニュアルでは、「p@nhap」となっているが、「p@nhap[[1]]」と「[[1]]」の指定が必要。この数字はネットワーク番号に合わせて変更する。
例えば、2つ目のネットワークの緑色で出力する場合は下記となる。
rownames(p@d[[2]])<-c(7:11) plot(p, net=2, label.pos=5, vertex.cex=c(rep(5, p@nhap[[2]]), rep(1, c(nrow(p@d[[2]])-p@nhap[[2]]))), vertex.col=c(rep("green", p@nhap[[2]]), rep("deepskyblue3", c(nrow(p@d[[2]])-p@nhap[[2]]))))
2020年8月24日月曜日
2020年8月21日金曜日
PCR primer用のサイト
午前
・授業準備
・面談
午後
・個人ゼミ
・資料作成
・授業準備
資料作成がストレスがたまる作業で、爆発しそうだった。
先日、マウスが壊れたが、やっと新しいのが届いた。ここ数日は、使いにくいマウスで、これまたストレスの溜まる日々だった。
先日、海外の共同研究者からワラジムシ類のPCR primerについて問い合わせがあった。以前から、作ってみようと思っていたPCR primer用のサイトを作成してみた
あとは、データを入力するだけ、入力するだけ、、、
2020年8月20日木曜日
野外調査
午前
・修論手伝い(野外調査)
午後
・統計ゼミ
・授業準備
統計ゼミでは、Rで地図作成の勉強。しかし、学生(win)のrJavaインストールでハマった。
1時間ほどネット検索を続けて、jdk-7u80-windows-x64.exe、をインストールしたら治った、という情報を得たので試したら無事に成功。
昨日、鳥取砂丘で男性が亡くなったそうだ。熱中症の可能性が高いとのこと。
午前中は、その鳥取砂丘近くの海岸で、先日、設置したpit fallの回収。2時間ほどウロウロしたが、汗がどんどん出て行く。冬だけでなく、夏も野外調査は避けないとダメかな。
最終回の授業の準備が終わらない。
2020年8月19日水曜日
2020年8月18日火曜日
積み上げ折れ線グラフ
午前
・修論手伝い(データ解析検討)
・個人ゼミ
午後
・文献経理
・授業準備
学生に、「そのうち教えるからデータ入力だけしておいて」と言って、ほったらかしにしていたRによるグラフ作成。
積み上げ折れ線グラフと、地図作成方法について、教え方を検討した。実際に教えるのは後日。
データは、いわゆるスタック形式(縦長データ)
本研究室では日付を8桁の数値(本日は20200818となる)で記録しているので、このままグラフにすると、20200831〜20200901までの70がデータがない余白になる。
ハマり①:8桁の数値を日付データに変換する。as.Data()を使うことが判明するまで、結構な時間を要した。
#データをdata_popuとして読み込んだ #数字ではas.Dateできないため文字に変換 data_popu$date_sum <- as.character(data_popu$date_sum) #日付に変換 data_popu$date_sum <- as.Date(data_popu$date_sum, "%Y%m%d")
スタック形式は1行1個体を意味しているので、採集日ごとの個体数を数える。採集日(date_sum)ごとの行の数を数えれば良い。行の数はlength()で数えることができる。
ハマり②:以前は、こんな時はtapply()を使っていたが、ネットを参考にaggregate()を使ったら少しハマった。
data_day <- aggregate(data_popu, by=list(data_popu$date_sum), length) plot(data_day$date~data_day$Group.1, type="b")
8桁の数値が日付として認識されたので(2020-08-18となっている)、無駄な余白がなくなった。
続いて、種ごとの積み上げ折れ線を作りたい。そのためには、採集日ごとの種ごとの個体数データが必要。
ハマり③:reshape2が良く分かっていない。ネットで調べたママ使った。
採集日ごとの種ごとの個体数(行数)を整理する。ただし、アスンタック形式(横広データ)。
library(dplyr) #group_by()、summarize()、select()に必要 library(reshape2) #dcast()、melt()に必要 library(ggplot2) #採集日(date_sum)ごとの種(spe)ごとに行数(個体数)をまとめる。 frog <- dcast(data_popu, date_sum~spe, fun.aggregate=length) frog
下記で使えるように縦長にする。
frog_tsumi <- melt(frog, id.vars = "date_sum") frog_tsumi
ggplot2で作図する。
ハマり④:そもそもggplot2に慣れていないのだが、日付のxlimは「as.Date(""),as.Date("")」で指定することに悩んだ。
tsumiage <- ggplot(data = frog_tsumi) + geom_area( mapping= aes( x = date_sum , y = value , fill = variable)) + xlim(as.Date("2017-01-01"), as.Date("2017-12-31")) plot(tsumiage)
参考したサイト
2020年8月17日月曜日
インクルード
・修論手伝い(野外調査)
午後
・授業課題採点
猛暑の中、砂丘での作業は大変だった。
お盆休暇の成果。
SQLiteからPHPで表を作ることができるようになった。このおかげで、これまでほぼ手作業で作成していた、青色ダンゴムシ・ワラジムシの整理が楽になった。
結構見やすくなったかと。Javascriptを使ったセルの結合とか、色々と勉強になった。
もう一つ勉強したことが、インクルード、という技術。
現在、日本産ワラジムシ類の種を整理しているが、ここで苦労していたのが、過去の学名を扱った文献を整理するシノニムリストの作成。
例えば、Porcellio sundaicusはのちに、Mongoloniscus vannamei、に変更となった。
この2種に同じシノニムリストを掲載したいのだが、そのために文献を見つけるたびに両種のデータを変更しなければならず、良い方法を考えていた。
実は、この種に絡む学名は少なくとも6つはあるので、いずれかの学名が掲載されている文献を見つけるたびに、全て学名のデータを変更しなければならず、さすがに面倒で悩んでいた。
そこで、学んだのがインクルードという技術で、1つのhtmlファイルを共有して表示することができる。下記2種のシノニムリストは同じファイルを共有している。
Porcellio sundaicus
Mongoloniscus vannamei