2022年7月29日金曜日

本格的な夏

午前
・原稿書き
・会議

午後
・修論手伝い(野外調査)
・原稿書き

2日続けての砂丘調査。

激暑な梅雨を終えると同時に、梅雨みたいな初夏が終わり、とうとう本格的な夏到来。
砂丘は直射日光の直撃を受けるが、風があるせいか大学の駐車場よりも過ごしやすい、、、気持ちの問題か?

2022年7月28日木曜日

日焼け痕

午前
・野外調査

午後
・標本整理
・データ整理

久しぶりに晴天下での野外調査。

見事に腕時計の日焼け痕がついた。

2022年7月27日水曜日

ggtreeでNEXUSファイルの系統樹を描く

午前
・データ整理
・統計ゼミ

午後
・データ整理

ggtreeでNEXUSファイル(.nex)の系統樹を描くのにどハマりした。

そもそもの発端は、RAxMLで作成した系統樹を「ggtree」の「reroot()」を使うと、こんな感じでいまいちだったことに始まる。
「reroot()」のコマンドはこんな感じ。
#系統樹はML_tree.treeとして保管されている(nwk形式)
tree <- read.tree("ML_tree.tree")
tree_reroot <- root(tree, outgroup = "26") #外群のOTU名が26
str(tree_reroot)
ggtree(tree_reroot) +  geom_tiplab()
一応、「geom_rootedge()」も試したが改善できず。
ggtree(tree_reroot) +  geom_tiplab() + geom_rootedge(3)
ということで、Rでrerootをすることを諦めた。そこで、FigTree.appでrerootしてからRで作図する作戦に変更。

で、ここからどハマりした。

まず、FigTree.appでrerootをすると、「.nwk」だとboot strap値が保存できなくなる(?)ので「.nex」で保存しなければならない。

「.nex」で保存したので、「read.nexus()」を使えば良いだろうと思ったのだが、boot strap値が読み込めない(ファイルにはboot strap値はあることを確認)。

ここまでで半日以上を潰した。

試行錯誤の末、「read.beast()」を使えば良いことが判明!

普段、BEASTで作成したファイルを「read.beast()」で使っているので、これで終わった、、、と思ったら、別の意味で終わった。
#系統樹はML_tree_reroot_nex.nexとして保管されている
ML_TREE <- read.beast("ML_tree_reroot_nex.nex")
ggtree(ML_TREE) +  geom_tiplab()
これで作図できるはずなのだが、エラーがでる。「ggtree(ML_TREE)」だけだと実行できるので、OTUを描画する「geom_tiplab()」でエラーが出ているらしい。

悪戦苦闘の結果、原因が判明した。

まず、「read.beast()」で読み込んだ場合、下記のようにOTUは「tip.label」、 boot strap値は「label」として保存される。
#系統樹はML_tree_reroot_nex.nexとして保管されている
ML_TREE <- read.beast("ML_tree_reroot_nex.nex")
ML_TREE@phylo$tip.label #OTU
[1] "25" "24" "18" "16" "15" "13"
ML_TREE@data$label #boot strap値
label1  label2  label3  label4  label5 
    58      55      42       4      49
しかし、なぜか、「ggtree()」を経由すると、OTUは「label.x」、boot strap値は「label.y」になっていることが分かった!
ML_TREE <- read.beast("ML_tree_reroot_nex.nex")
ML_TREE_ggtree <- ggtree(ML_TREE)
ML_TREE_ggtree$data
どうやら、「geom_tiplab()」は、データ「label」を探しているが見つからないのでエラーが出ているようだ。

ということで、「label.x」を「label」に入れることで解決できた。
ML_TREE <- read.beast("ML_tree_reroot_nex.nex")
ML_TREE_ggtree <- ggtree(ML_TREE)
ML_TREE_ggtree_data <- ML_TREE_ggtree$data 
ML_TREE_ggtree_data$label <- ML_TREE_ggtree_data$label.x
ggtree(ML_TREE_ggtree_data) + geom_tiplab()
「.nex」を「read.beast()」で読むと発生する問題なのか、FigTree.appでrerootしたファイルだからなのか詳細な原因は良く分からないが、BEASTで作成したファイルではこのような問題は起こったことはない。 boot strap値についても同じような対応が必要な気がするが、私はboot strap値を一度取り出して別の変数に入れているので、こちらについては大きな問題となっていない。

2022年7月26日火曜日

通称オアシス

午前
・標本整理

午後
・生態学ゼミ
・データ整理
・生態学ゼミ

鳥取砂丘には、雨が降ると巨大な水たまり、通称オアシスが出現する。水場の少ない砂丘内において、様々な動物の水場となる。

今年は梅雨に雨が少なかったので完全に干上がっていたが、7月中旬の大雨で結構な大きさのオアシスが出現した(7月21日撮影)。
しかし、7月25日には、ほとんど消滅していた。
7月21日時点では、結構な数のカエルの卵があったが、全滅だろうか、、、。

2022年7月25日月曜日

記憶

午前
・修論手伝い(野外調査)

午後
・標本整理
・会議

記憶のない一日。

2022年7月22日金曜日

予定通り進まない

午前
・電気泳動
・PCR産物精製
・個人ゼミ

午後
・修論手伝い(野外調査)
・データ整理

雨が降ったり、やんだりで、予定通り進まない1日だった。

2022年7月21日木曜日

複数

午前
・野外調査

午後
・PCR実験
・データ整理
・電気泳動

いくつかのサンプルで複数バンドが、、、。

2022年7月20日水曜日

ハマゴウ

午前
・データ整理
・統計ゼミ

午後
・データ整理
・卒論手伝い(野外調査)
・DNA抽出

昨日のRと手計算のズレは、手計算の入力ミスとRが不偏な推定式を用いていることによることが判明。無事に解決。

卒論手伝いのついでに、昨年、失敗した実験の再実験用にハマゴウの花を採集。

2022年7月19日火曜日

挫折

午前
・データ整理

午後
・個人ゼミ×2
・データ整理

手計算とRを使った計算が合わない。

Rで使用されている計算方法の詳細が理解できず、そもそも違う計算なのか、入力ミスなのか、手計算のミスなのか、良く分からず挫折して終了。

2022年7月15日金曜日

対談

午前
・野外調査

午後
・野外調査
・標本整理

昨日、行く予定だった毎週実施する野外調査を午前に行ったのち、午後から月1で行う野外調査を実施。

大学に戻ったら雨が降り出した。ギリギリセーフ。

青山剛昌と尾田栄一郎の対談があるそうだ。これは読みたい。その名も「真実はいつもひとつなぎの大秘宝」。

2022年7月14日木曜日

再投稿

午前
・論文書き

午後
・データ整理

定期調査の日だったが、降雨のため延期。

そのおかげで、昨年、リジェクトされた論文の再投稿を済ませた。

2022年7月13日水曜日

メッシュ

午前
・授業準備

午後
・研究相談
・授業準備
・データ整理

砂丘の分布情報の定量化に悩む。

砂丘中を歩き回って、動物を確認したらプロットを打っている。
これを経年で調べることで、変化をモニタリングするつもりだったのが、実際にやろうと思ったら結構難しいことが分かった。

個体群密度の低い動物であれば、確認した個体全てを記録することはできるが、高密度の動物(アリなど)では、到底やっていられないので、複数個体で1個のみプロットを打つ。そのため、「プロット数≠個体数」となり、個体数(プロット数)で比較することができない。

ということで、分布面積で評価する方法を検討する。

一番簡単なのは、全ての点が含まれるような輪郭を描くことだが、砂丘の動物の多くは林縁にも分布するため、結局、砂丘全域が覆われてしまい意味がない。

そこで、次に考えたのが、メッシュ(グリッド)を作成して、プロットが含まれるメッシュの数を数える方法。

メッシュは、Rで「sf::st_make_grid()」を使うことで作成できるが、砂丘の形に合わせたメッシュを作成するため、QGISで作成した。

メッシュに含まれるポイントは、「sf::st_intersects()」で調べることができる。例えば、50mメッシュを用いて、確認された地点のみをオレンジにしたのが下図。
メッシュサイズを100mにした場合がこれ。
この方法だと、記録されたメッシュの数で分布域の経年が評価ができる、、、気がする。しかし、メッシュサイズをどのぐらいにすれば良いのか、など、検討すべきことは、まだ、色々とある。

2022年7月12日火曜日

集中

午前
・論文書き
・会議

午後
・生態学ゼミ
・授業準備

福岡時代の卒論をどうにか論文にしたい。
解析は終わっているので8月中には投稿したいが、そろそろ締め切りが近づいてきた原稿に集中をしないとダメか。

2022年7月11日月曜日

佐治ダム

午前
・論文書き
・データ解析

午後
・会議×4

会議で終わった。

昨日、偶然通りかかった佐治ダム。普段の水位を知らないが、岸が結構見えていた。


先週まで比べると、少し梅雨っぽくなったが、渇水の心配は続く。

昨年、ボロクソに言われてリジェクトされた論文。かなり簡素化して英文校閲へ。卒論×2をまとめて論文したもの。今月中に投稿できると思うが、無事にアクセプトされてほしい。

2022年7月8日金曜日

オルソ画像(GeoTif)にプロットを打ちたい

午前
・データ解析

午後
・個人ゼミ×2
・卒論手伝い(学生ピックアップ)
・データ解析

1年ほど前から悩み、ここ数日、本格的に取り組み、挫折した問題。

鳥取砂丘のオルソ画像(GeoTif)にプロットを打ちたいのだが、航空写真が砂地部分を含むように撮影しているため、左上の海の部分が欠けている。
このままだとカッコ悪いので、海岸線が水平になるように時計周りに回転させて、海の部分を削除した図を作成したい。

そこで、案1として、GeoTifを回転させることを試みた。

GeoTifを任意の角度回すことはできないのか、私の技術がないのか、分からないが結果的に案1は失敗に終わった。

とりあえず、QGISのプラグイン「Freehand Raster Georeferencer」を使うと、GeoTifを任意に回転させることができる。一応、地理情報も付加して保存ができるので、本日の昼ごろ、これでイケる!と確信を得た。

個人ゼミを経て、早速、プロットを打ってみると、実際の地点からズレることが判明(プロットは基本的に砂地に配置される)。
ここに達するまでに数日かかっていたので、一気に諦めモードになった。

ということで、カッコ悪い気がするが、案2で進めることにした。

案2は、空白のあるGeoTifデータにプロットをうち画像ファイル(.png)として保存したのち、画像ファイルを回転させ、トリミングする、というもの。
library(raster)
library(ggplot2)
library(RStoolbox)

#ラスタデータ(GioTif)の読み込み
r <- stack("TottoriSundDune_scale1-4_rotate0.tif")

#プロットデータの読み込み
data <- read.csv("distribution.csv")

#作図
ggRGB(r, r = 1, g = 2, b = 3) +
  geom_point(data=data, aes(x=lon, y=lat), size=15, pch=21, fill="red")
すると、プロット位置は正しいのだが、空白(黒)があるカッコ悪い図ができる。
そこで、これを時計回りに15度回転させて、砂地を中心に必要なところだけを残すようにトリミングをする。

Rには、画像処理をするパッケージが色々とある(みたい)。今回は、「magick」を使った。
#上記の図をmap.pngとして保存しておく

library(magick)

#画像ファイルの読み込み
map <- image_read('map.png', density=300)

#画像の回転;時計周りに15度回転
rotate <- image_rotate(map, 15)

#画像のトリミング;「1500x800」=「幅x高さ」;「+400」x軸の開始位置;
「+1000」y軸の開始位置;軸の開始位置は「-」も使えるらしい(基準が良く分からない)
photo <- image_crop(rotate, geometry = "1500x800+400+1000")

#描画;普通の画像データとして扱える
plot(photo)
こんな感じで、余計な空白(黒)が無くなった。
画像ファイルをトリミングするという流れは悔しいが、Rのみで完結できたので納得することにした。

参照
magick パッケージの紹介
Rで解析:画像操作の進化「magick」パッケージ

2022年7月7日木曜日

一山越えた

午前
・野外調査

午後
・データ整理
・大学業務
・面談

実際には何も超えていないが、何となく一山越えた気がしている。

2022年7月6日水曜日

再設置

午前
・データ整理
・統計ゼミ

午後
・データ整理
・卒論手伝い
・データ整理

昨日、論文を投稿したことで、忘れていた原稿を思い出し、焦ってデータ解析を進める。

手伝ってもらいながら、卒論用のトラップの再設置も行なった。

2022年7月5日火曜日

どちらが沢山採れるのか

午前
・論文書き

午後
・生態学ゼミ
・授業準備
・面談
・授業準備

久しぶりに論文を投稿。前回ほどの自信はない。

結果はまあまあだと思うが、解析が少し弱めか。

今月中にあと1本(和文)投稿してしまいたいが、学生が主体の論文なので、気長に対応をしていく。

先週、学生が設置した市販と自作のトラップ。どちらが沢山採れるのか実験。

2022年7月4日月曜日

燃えよ剣

午前
・面談
・大学業務

午後 ・面談×3
・論文書き

ゴールデンカムイを読んでいたら、燃えよ剣を無性に観たくなった。

土方歳三の回顧録として、重要な場面をつなぐ形で、日野時代から戊辰戦争で亡くなるまでを扱っている。

面白かったけど、膨大な出来事をかいつまんで扱っているので、ある程度、歴史の流れを知らないと理解できなのでは、と思った。

2022年7月1日金曜日

北海道、新潟、広島からハナダカダンゴムシ

午前
・データ整理

午後
・卒論手伝い(野外調査)
・授業準備
・授業
・論文書き

1日中、腹の調子が悪かった。夏バテか。

前期、最後の授業が終わった!

岩手県に続き、北海道、新潟、広島からハナダカダンゴムシを初報告しました。

唐沢重考, 鈴木武, 南葉錬志郎 (2022)
北海道,新潟県,広島県における外来種ハナダカダンゴムシ (ワラジムシ亜目,オカダンゴムシ科) の初記録.
昆蟲 (ニューシリーズ), 25: 74–75.

ここから入手できます。