午前
・標本整理
午後
・論文書き(マダニ卒論論文化)
解析のスピードは結構改善されたと思っていたが、英語を書くスピードは相変わらず遅い。
これを片付けて、今年はマダニから離れてワラジムシ類に集中した。
2020年3月30日月曜日
anti_join( )
午前
・標本整理
午後
・データ解析
・論文書き(ワラジムシ群集)
種の分布解析でロジスティック解析をする際、対象種が確認された在データだけでなく、調べたが対象種が確認できなかった不在データも必要となる。
私の場合、採集日や場所を紐付けした動物標本のデータと、別に、調査を行なった地点のデータを記録している。
したがって、ロジスティック解析をするには、不在データを準備して、標本データに結合する必要がある。
これまで手作業でやっていたのだが、「dplyr」パッケージの「anti_join( )」を使うことでどうにかできた。流れとしては、調査地点データから「標本データに含まれている地点の行を削除」したのち、これら2つのデータを結合した。
標本データ。「species.csv」として記録されているとする。
地点データ。「plot.csv」として記録されているとする。
データの取り込みと、2つのデータの列が異なるので揃える。
「spe」において、1地点で複数のサンプルが記録されており、1個体/1種/1地点、する場合は、「dplyr::distinct( )」や「duplicated( )」で削除できるはずだが、複数の列を対象とする場合は試したことがないので、良く分からない。
・標本整理
午後
・データ解析
・論文書き(ワラジムシ群集)
種の分布解析でロジスティック解析をする際、対象種が確認された在データだけでなく、調べたが対象種が確認できなかった不在データも必要となる。
私の場合、採集日や場所を紐付けした動物標本のデータと、別に、調査を行なった地点のデータを記録している。
したがって、ロジスティック解析をするには、不在データを準備して、標本データに結合する必要がある。
これまで手作業でやっていたのだが、「dplyr」パッケージの「anti_join( )」を使うことでどうにかできた。流れとしては、調査地点データから「標本データに含まれている地点の行を削除」したのち、これら2つのデータを結合した。
標本データ。「species.csv」として記録されているとする。
地点データ。「plot.csv」として記録されているとする。
データの取り込みと、2つのデータの列が異なるので揃える。
spe <- read.csv("species.csv", header=T)
plot <- read.csv("plot.csv", header=T)
#種データの「spe」列を作成し「NONE」と記入する
plot$spe <- rep("NONE", nrow(plot))
plot <- plot[, c(3,1,2,4)] #列の順番を「spe」データと揃える
標本データ「spe」に含まれる地点 (site列) を全調査地点データ「plot」の地点 (site列) と比較し、同じ地点名がある場合は「plot」からその地点名がある行を削除する。削除した後の「plot」のデータは「absent」に格納する。
#install.packages("dplyr", repos="http://cran.ism.ac.jp/")
library(dplyr)
absent <- anti_join(plot, spe, by = "site")
「spe」と「absent」を結合する。
library(dplyr) pre_ab <- bind_rows(spe, absent)「sort( )」しているが、下記のように「Burmoniscus ocellatus」がいた地点と、本種が確認されなかった地点「NONE」が混じったデータが出来上がった。
「spe」において、1地点で複数のサンプルが記録されており、1個体/1種/1地点、する場合は、「dplyr::distinct( )」や「duplicated( )」で削除できるはずだが、複数の列を対象とする場合は試したことがないので、良く分からない。
2020年3月27日金曜日
葉面積の測定
午前
・標本整理
午後
・データ解析
総説を書く必要があり、次いでに昔のデータも解析して載せちゃおうと考えている。
10年以上前、まだ、西表島の住民だった頃に行った、Burmoniscus ocellatusによる4樹種の落葉の摂食実験。
日毎の摂食量は葉面積で評価する。したがって、葉面積の測定を行う必要がある。ImageJとか専用のソフトとか色々な方法があるのだが、せっかくなのでRで、と考えたのが間違いだった?
すぐに、「LeafArea」パッケージという便利そうなものを発見した。
使い方は簡単で、こんな感じの画像をデスクトップの「data」というフォルダに入れたとする。画像はjpegかtiffでなければならない。ちなみに、jpegの拡張子がjpgだと警告が出た。
下記を実行すればよい。
ただ、それぞれ独立した図形の面積は出力されるのだが、各数値がどの図形を指しているのかが分からない。
色々と悩んだあげく、ImageJを動かして分かったのだが、結果 (「res」の中身) ではなく、解析の途中で出力される下記の「XStart」と「YStart」が左上からの座標を示しているッポイ、ということがやっと分かった。
ただ、これはデータとして出力されない (?) ので、コピペで残すしかなく、それぞれ対応づけをする必要もあるので、あまり良い方法ではない。合計の面積を調べるものみたい。
・標本整理
午後
・データ解析
総説を書く必要があり、次いでに昔のデータも解析して載せちゃおうと考えている。
10年以上前、まだ、西表島の住民だった頃に行った、Burmoniscus ocellatusによる4樹種の落葉の摂食実験。
日毎の摂食量は葉面積で評価する。したがって、葉面積の測定を行う必要がある。ImageJとか専用のソフトとか色々な方法があるのだが、せっかくなのでRで、と考えたのが間違いだった?
すぐに、「LeafArea」パッケージという便利そうなものを発見した。
使い方は簡単で、こんな感じの画像をデスクトップの「data」というフォルダに入れたとする。画像はjpegかtiffでなければならない。ちなみに、jpegの拡張子がjpgだと警告が出た。
下記を実行すればよい。
#install.packages("LeafArea", repos="http://cran.ism.ac.jp/")
library(LeafArea)
ex.dir <- eximg()
res <- run.ij(set.directory = "~/Desktop/data//", #winだと少し違う
distance.pixel = 2480, #画像の幅に含まれるpixel数
known.distance = 21, #画像の幅のcm
save.image = TRUE, #2値化を残すか
log=TRUE) #ログを残すか
res
このデータの黒色の pixel 数から面積が計算される。
ただ、それぞれ独立した図形の面積は出力されるのだが、各数値がどの図形を指しているのかが分からない。
色々と悩んだあげく、ImageJを動かして分かったのだが、結果 (「res」の中身) ではなく、解析の途中で出力される下記の「XStart」と「YStart」が左上からの座標を示しているッポイ、ということがやっと分かった。
ただ、これはデータとして出力されない (?) ので、コピペで残すしかなく、それぞれ対応づけをする必要もあるので、あまり良い方法ではない。合計の面積を調べるものみたい。
2020年3月26日木曜日
OTU名の変更
午前
・修論手伝(標本整理)
・標本整理
午後
・データ解析
ggtreeを使った系統樹描画。OTU名の変更も簡単だった。昨日、うまく行かなかったのは、単純なデータの勘違いだった。
流れは、下記方法で「nwk」データを「tree」に読み込んだ場合、OTU名は「tree$tip.label」に入っているので、「tree$tip.label <- ***」で好きな名前に変更すれば良い。
なぜ、そんなことをする必要があったのかというと、KAKUSAN4を使って同じ配列データを一つのハプロタイプにまとめたので、サンプル数が多いハプロタイプは名前が非常に長かったため。例えば、こんなのとか。
"Amami-38_St-6_109_Amami-38_St-6_110_Uke-1_St-6_119_Uke-1_St-6_120_Uke-1_St-6_121_Miyazaki-1_St-6_132_Amami-6_St-6_160_Amami-6_St-6_163"
これは、各シーケンスデータに「locality_haplotptype id_sample id」が書かれていて、それが9サンプルが合わさったため。
でも、結果オーライなのだが、"_"で区切った2番目にはハプロタイプ番号(St-6)が記されているので、それをOTUに使えばOK!
テキストの一部を切り出すのは「library(stringr)」の「str_split( )」で出来る!
あとは、グループごとに色付けして出力。
・修論手伝(標本整理)
・標本整理
午後
・データ解析
ggtreeを使った系統樹描画。OTU名の変更も簡単だった。昨日、うまく行かなかったのは、単純なデータの勘違いだった。
流れは、下記方法で「nwk」データを「tree」に読み込んだ場合、OTU名は「tree$tip.label」に入っているので、「tree$tip.label <- ***」で好きな名前に変更すれば良い。
なぜ、そんなことをする必要があったのかというと、KAKUSAN4を使って同じ配列データを一つのハプロタイプにまとめたので、サンプル数が多いハプロタイプは名前が非常に長かったため。例えば、こんなのとか。
"Amami-38_St-6_109_Amami-38_St-6_110_Uke-1_St-6_119_Uke-1_St-6_120_Uke-1_St-6_121_Miyazaki-1_St-6_132_Amami-6_St-6_160_Amami-6_St-6_163"
これは、各シーケンスデータに「locality_haplotptype id_sample id」が書かれていて、それが9サンプルが合わさったため。
でも、結果オーライなのだが、"_"で区切った2番目にはハプロタイプ番号(St-6)が記されているので、それをOTUに使えばOK!
テキストの一部を切り出すのは「library(stringr)」の「str_split( )」で出来る!
library(ggtree)
library(treeio)
# nwkデータの取り込み
tree <- read.newick("ML_stimpsonii.nwk")
# ラベル (OTU名) の確認
tree$tip.label
長い、、、
# 上記のデータを対象に、"_"で区切り、その2番目を「tree$tip.label」に入れる library(stringr) # "_"ごとに区切って2番目を取り出す a<-str_split(tree$tip.label, pattern = "_", simplify = TRUE) tree$tip.label <- a[,2] # ラベル (OTU名) の確認 tree$tip.label短くなった。
あとは、グループごとに色付けして出力。
# OTU名に基づきグループを作成する
cls <- list(Kumejima=c("St-55", "St-56"), Okinawa=c("St-57", "St-58"・・・))
# nwkデータにグループ名を紐つけ
tree <- groupOTU(tree, cls)
# 描画
library("colorspace") #色に必要?
ggtree(tree, aes(color=group), layout='circular') +
scale_color_manual(values=c("black", "azure4", "red", "magenta", "royal blue", "#00552e")) +
geom_tiplab()
2020年3月25日水曜日
ggtree
午前
・標本整理
午後
・データ解析
系統樹の描画はこれまで、FigTree + お絵かきソフト、を使っていた。
お絵かきソフトを使うと細かな描画が楽だけど、一斉に指定できないなどの不便がある。
何か良い方法がないかと探していたら、Rのggtreeパッケージを発見した。
ggtreeを使ってRで系統樹を扱う
ggtree: Elegant Graphics for Phylogenetic Tree Visualization and Annotation
Phylogenetic trees in R using ggtree
描画すること自体は簡単。
ただ、OTU名を変更してグループ化したら動かない、、、もう少し勉強が必要。
・標本整理
午後
・データ解析
系統樹の描画はこれまで、FigTree + お絵かきソフト、を使っていた。
お絵かきソフトを使うと細かな描画が楽だけど、一斉に指定できないなどの不便がある。
何か良い方法がないかと探していたら、Rのggtreeパッケージを発見した。
描画すること自体は簡単。
ただ、OTU名を変更してグループ化したら動かない、、、もう少し勉強が必要。
2020年3月24日火曜日
2020年3月23日月曜日
rarefaction curve
午前
・標本整理
午後
・データ解析
・論文書き(ワラジムシ群集)
先週の月曜日の続きで、福岡時代のワラジムシ群集の論文化をすすめる。
4つの環境(人工環境、草地、竹林、森林)で群集比較をする。
個体数、種組成は先週作成したので、本日は、種数の比較。rarefaction curveの出番か。
個体数ベースが良いのか、地点ベースが良いのか悩むが、地点ベースで作図してみた。
「vegan」パッケージのspecaccum()を使えば簡単に描ける。
でも、iNEXT()の方がカッコいい、、、使いこなすのは難しそう。
・標本整理
午後
・データ解析
・論文書き(ワラジムシ群集)
先週の月曜日の続きで、福岡時代のワラジムシ群集の論文化をすすめる。
4つの環境(人工環境、草地、竹林、森林)で群集比較をする。
個体数、種組成は先週作成したので、本日は、種数の比較。rarefaction curveの出番か。
個体数ベースが良いのか、地点ベースが良いのか悩むが、地点ベースで作図してみた。
「vegan」パッケージのspecaccum()を使えば簡単に描ける。
でも、iNEXT()の方がカッコいい、、、使いこなすのは難しそう。
登録:
投稿 (Atom)












