スプレッドシートで論文管理を行うツールZotemoto【配布&使い方編】

スクリプトの解説は→（後日公開予定）
筆者が何者かは→[Xアカウント](https://twitter.com/hinata20000102)、[個人HP](https://sites.google.com/view/hinatahashimoto)
## はじめに
こんにちは、私は生命系の研究をしている大学院生です。
皆さんは論文を管理するのにどのようなツールを使っていますか？

私はもともと[zotero](https://www.zotero.org/)や[paperpile](https://paperpile.com/)を使っていました。これらのツールは非常に素晴らしいのですが、日々読んだ論文をまとめるのには少し不便に感じる点がありました（個人の感想です）。
- 論文のメモやコメントが見にくい、書きにくい。
- ワンクリックで論文が追加できてしまう。いいことなんですが、何でも追加してしまい、必要な論文が埋もれてしまいがち。
- 研究室のメンバーと論文紹介リストの共有がやり辛い。
- 読んだ論文をスライドにまとめるのが面倒くさい（これはツールのせいではない）。
- ツールとしての自由度が低い。

これらの問題を解決するため、**スプレッドシートで論文管理を行うツール**を作ってみました。GoogleAppsScriptで動いています。素人なので完成度はイマイチです。

Zoteroのように高機能ではありませんが、論文管理が手軽にできるようになると思います。スプレッドシートをコピーして使うだけなので、インストール等の必要もありません。

## スプレッドシート論文管理ツール「Zotemoto」
そのようなモチベーションの元、製作したツールが**Zotemoto**[^1]です。ご自由にお使いください。私はこのツールを作ってから、かれこれ2年くらい使っています。

こちらの**スプレッドシートをコピー(ファイル→コピーの作成 でコピーできます)して**、マイドライブ等に置いて使ってください。初期設定が必要なので、[以下](#初期設定)で初期設定を解説しています。

https://docs.google.com/spreadsheets/d/1BWdNFhenRN_A2oA6CmUmm_kyUK-5btSED8Zxitn_yd4/edit?usp=sharing

更新情報: 2023.10.30 ver1.0

:::note warn
本ツールの使用は自己責任でお願いします。
:::

:::note warn
本ツールは個人のスプレッドシート内で情報が完結します。ここに書いた情報が、筆者や第三者に知られることはありません。
:::

[^1]: 橋本が作ったZoteroっぽいツールでZotemotoです。怒られないといいな

## 出来ること
### DOIから論文情報の補完
![スクリーンショット 2023-10-30 134607-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/67c44f8c-86da-7f9f-64eb-437f1951552b.png)

A列に論文のDOI（例: https://doi.org/10.1038/171737a0 ）を入力すると、自動で以下の情報を補完してくれます。基本的にはCrossrefのAPIを使って情報を取得しているだけです。
1. **追加した日付**（例: 2023/10/30）
1. **論文名**（例: Molecular Structure of Nucleic Acids: A Structure for Deoxyribose Nucleic Acid）
1. **著者**（例: WATSON,J.,CRICK,F.）
1. **ジャーナル**（例: Nature）
1. **掲載年月日**（例: 1953/4/25）
1. **引用（短縮形式）**（例: WATSON,J. *et al. Nature*(1953)）
1. **引用（Nature形式）**（例: WATSON,J.,CRICK,F.Molecular Structure of Nucleic Acids: A Structure for Deoxyribose Nucleic Acid.*Nature* **171**,737-738(1953)）


### 論文まとめスライドのフォーマット作成
読んだ論文をスライド一枚に簡単にまとめる際、フォーマットが整っていると便利で見やすいだろうということで、フォーマット作成機能を追加しました。詳しい使い方は[こちら](#まとめスライドの初期設定)に書いています。
[まとめスライドのフォーマットはこちら（コピーして使ってください。）](https://docs.google.com/presentation/d/1Bgi7u0ABfp8m9gld9LJxubneKHcxhlOMZDGJQUcp8Yw/edit?usp=sharing)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/0cf33c32-f658-0fbf-53e7-83ed5666dc3e.png)
まとめボタンにチェックを入れると、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/dddb8a67-7650-c785-12a2-912ae0b96bd7.png)
元のテンプレートが複製されて、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/5a6b6699-1a67-5fc9-518a-5a54a5ad67fb.png)
論文の基本情報を自動で記入してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/83c3112a-3062-adaa-5df4-119b635598a4.png)
あとは概要などを自分で書いていけばOKです。

### 参考文献リストの作成
参考文献をまとめてコピーできる機能もあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/91483340-1849-aa2e-d0e5-e8034d036980.png)
文献リストに載せたい論文に黒いチェックを入れて、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/e11a9a4c-9805-68b7-20d9-f99826baab93.png)
zotemoto→参考文献（短縮）を押すと、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/6d8ed70a-a8a4-fa53-938d-954b638f32f1.png)
ポップアップでリストが表示されます。同様に、Nature形式でも文献一覧を出力することができます。

### その他
私は**プロジェクトごとに別のシートで論文をまとめたり**、ジャンルをプルダウンで選べるようにして、**タグ付けする**ことで分類するようにしています。

## 初期設定
初めて使う際は、スプレッドシートをコピーした後に、トリガー設定等が必要になります。
ですが、ボタンを順に押していくだけですので、そんなに難しくはないと思います。
### 1. スプレッドシートをコピーする
まずは、[こちらのリンク](https://docs.google.com/spreadsheets/d/1BWdNFhenRN_A2oA6CmUmm_kyUK-5btSED8Zxitn_yd4/edit?usp=sharing)から、スプレッドシートに飛んでください。このファイルをコピーして好きなフォルダに置くことで、使用できるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/75245f32-9d00-b536-8554-d1268b78e719.png)
「フォルダ→コピーを作成」でコピーできます。

### 2. 初期設定1 権限承認
このままでは、DOIを貼り付けても何も起こりません。まずは権限の承認が必要になります。
「Zoteomoto→設定→初期設定1 権限承認」を押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/1aef2f22-4871-9bd6-71a4-fbc2b8e1d248.png)
このような画面が出てくるので、OKを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/b9a44d05-935b-90b2-948c-ad3caf7789c0.png)
アカウントを選択すると、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/55e3bcec-812c-ccaf-cfa7-207b995dca72.png)
このような警告画面が出ます（<INS>正常な動作です</INS>）。左下の**詳細**ボタンを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/63c0433c-d4a9-29d9-d02d-a43968907d3c.png)
**zotemoto(安全でないページ)に移動**を押します。<INS>このツールに限らず、GoogleAppsScriptを使う際には最初にこれを承認する必要があります</INS>。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/c332190c-a2f2-22f4-b3e2-faeaf1b91d00.png)
最後に、「許可」を押してください。これで権限設定は終了です。

### 3. 初期設定2 実行トリガー
最後に、スクリプトの実行を出来るように設定します。

「zotemoto→設定→初期設定2 実行トリガー」を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/3925e092-edf3-a56c-93cf-f0735a92c6ed.png)
これで設定は終了です。

### 4. 動作確認
正常に使えるかを確かめるために、スプレッドシートの**A列（DOI）**に適当なDOIを打ち込んでみてください。
適当なDOIが手元に無い方はこちら（https://doi.org/10.1016/j.cell.2006.07.024 ）。

少し待って、論文情報が補完されれば成功です。

## その他細かい機能
### まとめスライドの初期設定
まとめスライドを作る際は、初めにスプレッドシートと連携するスライドのURLを貼り付けておく必要があります。
スライドのテンプレートは[**こちら**](https://docs.google.com/presentation/d/1Bgi7u0ABfp8m9gld9LJxubneKHcxhlOMZDGJQUcp8Yw/edit?usp=sharing)から。このファイルをコピーして使用して下さい。

1. コピーしたGoogleスライドのIDをコピーします。IDはスライドのURLの「https:~/d/**ここ**/edit~」です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/bb711937-a86b-aa2a-ad6c-d302dd5b52e5.png)

2.「zotemoto→設定→スライド設定」を押して、IDをペーストします。

これでOKです。あとはまとめボタンにチェックを入れれば、自動でまとめスライドのテンプレートが作製されます。スライドのテンプレートは、[落合陽一フォーマット](https://www.slideshare.net/Ochyai/1-ftma15)を参考にしました。

### 沢山のDOIを貼り付け、まとめて論文情報補完を行う
A列にDOIを一度に沢山コピペした場合、1番上のセルしか補完が実行されません。1つずつエンターキーを押していけば解決しますが、沢山論文があるときは不便です。
そこで、**補完したい行のC列にチェック**を入れます。そして「zotemoto→選択したDOIを全実行」を押すと、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/57f55efa-d806-55e3-d406-afe051c26aeb.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/27258613-8568-b509-f6c1-cdefd69ddc5a.png)
選択した行の論文情報が補完されます。ただし、連続してDOIが貼り付いていないとエラーが出るので注意してください。

### 論文情報の自動補完を利かせなくするシートの設定
スプレッドシートで論文情報を管理をしていると、メモに使いたいシートや別の情報を書き込みたいシートが必要なことがあるかと思います。そのままでは、メモしたところに論文の自動補完が働いてしまい、変なことになってしまいます。

そんな時、「zotemoto→設定→zotemotoを機能させないシート」を押して、**補完が機能して欲しくないシート名を打ち込む**と、そのシートだけ機能をオフにできます。

### 全チェック機能
とても微々たる機能ですが、**C列の1行目のチェックボックス**を操作すると、**C列全てのチェックボックスをまとめて操作**できます。参考文献リストを作る際などに使ってください。
### スクリプトを見たい・改変したい場合
GoogleAppsScriptのコードは「拡張機能→Apps Script」から閲覧・編集ができます。**鬼ほど汚い＆ど素人**ですが、頑張って解読してください。そのうちスクリプトの解説記事も出そうと思います。

## 認知しているバグや改善点
まだまだ未完成です。改善点や、改良したよ、などあったら連絡ください。

### 認知しているバグ
- bioRxivの情報は取れない。手動で入力している。
- Publishされてすぐの論文は情報が更新されていない場合がある。その時は数日待ってから実行するといけたりします。
- **論文名やジャーナル名がたまに変になる**。おそらくHTMLタグがはいっている場合などになります。私的に使う分にはあまり気にならないですが、修論や論文などの参考文献リストに使う際はよく確認してください。~~まあZoteroもたまに変になりますけど~~
- 入力したDOIをクリックしても元論文にアクセスできない時がある。Elsevierの論文でたまにあります。リロードするといけることもある。
- セルをコピーすると斜体や太字をそのままコピーできるが、テキストのコピーではできない。これは仕様なので改良は難しいかも。

### 改善したい点
- 参考文献リストをもっと簡便に作れるようにしたい。特に、順番の入れ替えなどを機能として実装したい。今は新しいシートを用意して（修論シート、など）、参考文献を登場順に並べ、参考文献の一覧をコピペしています。
- グーグルドキュメントやWordのアドオン的なものを作りたい。
- GoogleDriveに保存した論文のpdfと紐づけたい。

## 最後に
ちなみに私のいるラボでも、ラボ内の論文共有にはこのツールを用いています。共有版では、論文を追加するとSlackに通知が行くようにしています。

いい論文管理方法があったら教えてください。**もしこのツールを使った人がいれば、その旨を[私まで](https://twitter.com/hinata20000102)伝えてくれると泣いて喜びます。**