wet-to-dry’s blog

京大大学院生の備忘録ブログ

NGS解析&デスクワーク用自作PCの構成

概要

1年ちょっと前にデスクトップPC(仕事用)を自作したのでメモ。

用途は、NGSの解析と通常のデスクワーク。フォトショップイラストレーターもたまに使う。予算は10-20万。

前準備

最低限必要なものはCPU、マザーボード、ストレージ、メモリー、電源、PCケース(、モニター、キーボード、マウス)。

追加でCPUクーラー、GPUがあれば良し。

マザーボードとの互換性とか、メモリーの型(DDR4 or 5)とか自作PCは完全に素人でした。一応調べたけど、結局高いものを買って合わなかったら困るので、このサイトで互換性をチェックした。今回は特に問題はなかった。

ストレージはSSDにすべし!昔、HDDのノートPCをSSDに換装した時に体感5倍くらい起動が早かった。

最初に買ったもの

パソコン工房で買ったけど、すでに商品リンク無し。)

ストレージは1つはWindows OS用。1つはWSL用。

モリーは計64GB。STARで大きなゲノムを扱うときはこのくらい必要。

後で買ったもの

まとめ、雑談

CPU(i7 12700、当時最新)とメモリー(DDR5、出たばっか)は良いのにしました。快適!

GPUは、MinION解析用に使えるやつにしたけど、デスクワーク程度ならCPU内臓GPUで十分でした。

CPUクーラーは買うのを迷った(CPUについていたものでもそこそこ冷えた)けど、NGS解析をぶん回した時に音がうるさかったので良いのに変えました。

最初に買った分だけで149857円、あとで買い足したものを含めると215298円、、、結構してました。。。

写真を何枚か取っていたので、あとで貼ります。

参考文献

jisaku.com

iPhoneのショートカットからTrelloやGoogleカレンダー、Youtubeを操作する

初めに 

この前、iPhone 12 miniを買いました!!!

f:id:wet-to-dry:20210122211047j:plain

※隣にあるのは4連タイマーです。これも結構便利です。

というのも、4年半愛用していたiPhone SE(第一世代)が使い物にならなくなってしまったからです。ROMが16GBって、さすがに少ないですよね、、、iPhone SEの小ぶりなサイズ感が好きだったので、今回のiPhone 12 miniの発表の時は大歓喜しました!

iPhone 12 miniのスペックはこちら。私はROM256GBを買いました。バッテリーのみが懸念事項だったんですが、意外と通常使用で1日は持ちますね。*1

給与型奨学金をもらっていてお金が溜まってきたので奮発して買ったのですが、スペックが高いので色々遊んでみたくなりました。

今回は、iPhoneで遊んでて気づいた便利な機能の中で、ショートカット機能について紹介します。

iPhoneのショートカット機能とは?

ショートカットアプリとは、iPhoneにデフォルトで入っているアプリで、iPhoneで行いたい様々なことを自動化することができます。

f:id:wet-to-dry:20210125203754p:plain

簡単な操作をフローチャートを作成する要領で自動化できるので、毎日の日課などを時短することができます。

Trelloのショートカット

Trelloとは大手のタスク管理ツールで、簡単に言うとスマホアプリやPCで使える便利なメモ用紙です。PC版ではこんな感じですね。

f:id:wet-to-dry:20210125205632p:plain

それぞれのタスクを「カード」に書き込み、ドラッグ&ドロップで隣のリストに移動できるため、まだやっていない作業と終わった作業が一目でわかります。

僕は注意力散漫で忘れっぽいので、やるべきことを前日にリストアップし、TrelloかGoogleカレンダーに入れるようにしています。

これをiPhoneで入力する際、アプリ起動→カード追加 を毎回行うのがちょっと面倒だったので、ショートカットを作ってみました。

ひとまず作り方

f:id:wet-to-dry:20210125212234p:plain

f:id:wet-to-dry:20210125212255p:plain

こんな感じで作ります。4-6枚目のアプリや操作の選択や、7枚目の入力と出力の選択でいろいろなショートカットが作成できます。

Trelloはショートカットと比較的相性が良く、アプリを直接呼び出して操作できますが、アプリによっては呼び出せないものもあります。

これで、ホーム画面のウィジェットからダイレクトでTrelloのカードを作成できるようになります。

f:id:wet-to-dry:20210125212703p:plain:w300

Googleカレンダーのショートカット

次に、Googleカレンダーの予定もショートカットで入力できないかやってみました。

iPhoneGoogleカレンダーアプリはショートカットアプリから呼び出せないので、Safariブラウザを使ってURLスキーム(?)で開く方法を試しました(参考)。

ブラウザのURL入力部分に

com.google.calendar://?action=create

と打ち込めばGoogleカレンダーアプリが開き、予定の新規作成画面になります。

この後に「&dates=」を入れれば日付が、「&title=」を入れれば件名が自動入力できたのですが、ショートカットアプリのUIでの入力よりもGoogleカレンダーのUIの方が個人的に好きだったので、予定新規作成画面への遷移だけにとどめました。

f:id:wet-to-dry:20210125220654p:plain:w300

こんな感じで作成しました。

一応ショートカットアプリで日時指定までやろうとした努力の跡も残しておきます。

f:id:wet-to-dry:20210125220834p:plain:w100

Youtubeリストのショートカット

最後に、お気に入りのYoutubeリストを再生するショートカットも作成しました。

これも、Googleカレンダーの時のURLスキームの要領でいけました。

まず、Youtubeの好きなリスト(今回はこの公開リストを使わせていただきました)を開きます。

リスト全体のページを開き、動画を右クリックしてURLを取得します。

f:id:wet-to-dry:20220117144238p:plain

ショートカットアプリで「URLで開く」を選択し、URLの部分に先ほど取得したURLを貼り付ければ完成!

f:id:wet-to-dry:20210126144820p:plain:w300

Youtubeアプリを入れていれば、YoutubeのURLで自動でアプリに遷移するっぽいですね。

このURLの部分もいろいろといじれるらしく、「&index=数字」を追加するとリスト内の好きな動画から再生することができるそうです(参考)。しかし、シャッフル再生はJavascriptYoutube APIを呼び出さなければいけないっぽいので無理かな(参考)?

また、「&loop=1」を追加すればリスト再生ではリスト全体、単一動画ではその動画のループ再生を指定できるっぽいです(参考)。

まとめ

まあ、時短といえば時短だとは思いますが、正直遊びの要素が強い記事になりました。

雑談ですが、学振の研究専念義務が事実上なくなりましたね。来年からこのブログにアフィリエイト貼ってもいいんでしょうか?

一応ブログしてることは担当教官に報告してありますので、「アフィリエイト貼ります!」っていうだけで大丈夫だと思うんですが。。。

それよりなにより、就職先を見つけなければ!

参考文献

qiita.com

developers.google.com

developers.google.com

riesling511.jugem.cc

*1:実験しながらTwitterポチポチして、お昼休みにAmazon Primeアプリで30分くらい動画見て、Bluetoothイヤホンで2時間くらいYoutube聞いたとしても10-20%くらいは余ります。

Surfaceペンにショートカットを割り当て、サクサク英語論文を読もう!

初めに

Surface Goを買ってから早2年が経ちました。

元々、学会に持って行く用に買ったのですが、今では

  • ゼミや講義などでのメモ用

  • 帰省や旅行先での作業用

  • 研究室で実験ノートを取る用 (私は電子実験ノートに移行しています)

など、様々な使い方で活用しています。


話は変わりますが、私は難しめの学術論文を読むときにはA4コピー用紙に印刷し、論文に書き込みしたりしてじっくり読んでいました。簡単な論文ならAbstractとFigure見れば大体理解できるんですけどね。

しかし、ペーパーレス化が叫ばれる昨今、いちいち論文を印刷して読むのはあまりスマートではありません。

だからと言って、研究室のデスクトップPCで論文を読もうとすると、こういう体勢(↓)で読むことになります。

f:id:wet-to-dry:20210122200829p:plain

これが目にも肩にも腰にもつらい!!!

僕はこういう体勢(↓)で読みたいんですよ!

f:id:wet-to-dry:20210122201534p:plain

ということで、前振りが長くなりましたが、A4用紙サイズのSurface Go君で、サクサク論文が読めるように自分なりに工夫しました。

Surfaceペンの設定

とりあえず、論文に書き込みをする僕はSurfaceペンを購入しました。

www.microsoft.com

このペンにはショートカットボタンが存在するのですが、デフォルトではアプリの起動しか割り当てできないという致命的な使用のせいで、余り使ってきませんでした。

しかし最近、この方のブログでショートカットボタンをキーボード上のキーを自由に割り当てられるようにするアプリが作られていたことを知りました。

開発者様のツイート↓

これを使わせていただきます。

使い方は簡単。

  1. 開発者様のGitHubにとんで、最新版をダウンロード

  2. zipを解答し、好きな場所に「emit-x.exe」ファイルを置く

  3. 「emit-x.exe」の名前を「emit-"好きなショートカットキー".exe」に変更 (例: Ctrl + vならば、「emit-ctrl-v.exe」にする)

  4. windowsの設定>デバイス>ペンとWindows Ink>ペンのショートカット で、操作を「クラシックアプリを起動する」に設定、参照ボタンから先ほど作成した「emit-"好きなショートカットキー".exe」ファイルを選択

f:id:wet-to-dry:20210122203732p:plain

で完了!

僕のおすすめの設定は

  • シングルクリック→「Ctrl+C」

  • ダブルクリック→「Ctrl+V」

  • 長押し→「Windowsキー+Shift+S」

です。

Shaperと一緒に使えば無敵!

英語論文読むときに、翻訳ソフトに突っ込んだりしませんか?私はします。

この時に便利なのがShaperというブラウザアプリです。開発者様のブログ

これは、PDFの文章などをコピー&ペーストするときに発生する改行コードなどを消して、文章を成形してくれるアプリです。

f:id:wet-to-dry:20210122204701p:plain

論文読むときはSurfaceのキーボードを外してタブレットみたいにして読んでるので、「Ctrl+C」みたいなショートカットキーが使えません。

そんな時にSurfaceペンの頭をポチっとするだけで簡単にコピー&ペーストでき、速攻でDeepL翻訳してくれます。

まじで神。

まとめ

これで英語論文読むのがめちゃめちゃ早くなりました。

地味にSurfaceペンの長押しショートカットに割り当てた「Windowsキー + Shift + S」(画面キャプチャ)も便利です。

この記事のキャプ画の手書きも、Surfaceでちょちょっと書いて画面キャプチャしてるので、、、

また、こういうライフハック記事書きたいな。

参考文献

www.noname774.xyz

github.com

dream-exp.hatenablog.com

NGS解析ツールのインストールと管理

初めに

僕は普段RNA-seqとChIP-seqの解析を主に行っています*1

これらの解析に用いるツールをインストールしたので、どのように管理しているかも含めて公開しようかと思います。

bioconda vs homebrew

パッケージ管理ツールとしてよくbiocondaとhomebrew(linuxではlinuxbrew)が使われます。

以前のDRY解析教本(第1版)では、主にhomebrewでツールをインストールしていたと思うのですが、第2版ではbiocondaも併用して使っています。

使い方はほとんど同じなのですが、biocondaの方がツールの種類が圧倒的に多い(且つhomebrewにあるものは基本ある)ので、僕はほとんどhomebrewを使わずにbiocondaでインストールしています。

biocondaのインストール

こちらのサイトを参考にして、

$ wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ bash Miniconda3-latest-Linux-x86_64.sh

でMiniconda3をインストール。PATHだけ、自分が管理しやすい場所(~/local/Miniconda3)に指定しました。

$ rm Miniconda3-latest-Linux-x86_64.sh #いらないのでshファイルは削除
$ source ~/.bashrc #.bashrcの再読み込み
$ conda -h

でヘルプメニューが帰ってくればOK。次にBiocondaなどのchannelを追加します。

$ conda config --add channels defaults
$ conda config --add channels conda-forge
$ conda config --add channels r
$ conda config --add channels bioconda

これは順番が大事らしく、最後に追加されたチャンネルからパッケージの検索をかけるのでよく使うチャンネルを最優先(最後)にした方がいい?と思われる(参考)。

順番を間違えてしまっても、もう一回--add channelsすれば最優先になるっぽいので焦らない。

後は

$ conda install -c bioconda samtools

という感じでツールを入れていく。

ツールの管理法

他の人がどう管理しているのか気になりますが、

  • パソコンに詳しくない後輩がいじる

  • そもそも僕も余り詳しくない

  • でも、PCの設定は把握しておきたい

という理由で、UbuntuPCをホームディレクトリ内にsettingというファイルを作成し、PCの設定をいじったら追記していくという管理法をしています。

具体的には、

$ conda install -c bioconda samtools

でsamtoolsをインストールした場合、

2020/10/12 samtools
$ conda install -c bioconda samtools

と追記するという感じです。

他のルールとしては、

  • 設定をいじった時は日付といじった時のコードを、ツールのインストール記載箇所の下に追記する

  • ファイルを書き換えた場合は

>>ファイル名
追記した内容(ドル記号は無し)

を守るようにしています。

意外とわかりやすいですよ。

Githubに入れておくので共有します。

biocondaに入れているツール一覧

2021/1/22現在

2020/10/12 Miniconda3
$ mkdir miniconda
$ cd miniconda
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ bash Miniconda3-latest-Linux-x86_64.sh
> PATH -> /home/*****/local/Miniconda3
reboot terminal
$ conda config --add channels defaults
$ conda config --add channels conda-forge
$ conda config --add channels r
$ conda config --add channels bioconda

2020/10/12 sratoolkit
$ conda install -c bioconda sra-tools


2020/10/12 Trim galore!
$ conda install -c bioconda trim-galore


2020/10/12 kallisto
$ conda install -c bioconda kallisto


2020/10/12 samtools
$ conda install -c bioconda samtools


2020/10/12 lftp
$ brew install lftp


2020/10/12 star
$ conda install -c bioconda star


2020/10/12 rsem
$ conda install -c bioconda rsem


2020/10/12 fastp
$ conda install -c bioconda fastp


2020/10/12 bowtie2
$ conda install -c bioconda bowtie2


2020/10/12 macs2
$ conda install -c bioconda macs2


2020/10/12 homer
$ conda install -c bioconda homer


2020/10/12 deeptools
$ conda install -c bioconda deeptools


2020/10/12 bedtools
$ conda install -c bioconda bedtools


2020/10/12 isoseq3
$ conda install -c bioconda isoseq3


2020/10/12 hisat2
$ conda install -c bioconda hisat2


2020/10/12 subread(featureCounts)
$ conda install -c bioconda subread


2020/10/12 stringTie
$ conda install -c bioconda stringtie

bioconda以外のsetting内の内容

これも2021/01/22現在

#過去記事参照→https://wet-to-dry.hatenablog.com/entry/ssh_to_lab2
2020/10/09 ssh
user@user$ ssh-keygen -t rsa
user@user$ scp C:\\Users\\user\\.ssh\\id_rsa.pub *****@*****:~/
>> C:\\Users\\user\\.ssh\\config
Host *****
HostName **.***.***.***
User *****
Port 22
IdentityFile C:\\Users\\user\\.ssh\\id_rsa
user@user$ ssh *****
*****@*****$ sudo apt-get install openssh-server
*****@*****$ mkdir .ssh
*****@*****$ chmod 700 .ssh
*****@*****$ mv ~/id_rsa.pub ~/.ssh/authorized_keys
*****@*****$ chmod 600 .ssh/authorized_keys
or
*****@*****$ cat id_rsa.pub >> .ssh/authorized_keys


#過去記事参照→https://wet-to-dry.hatenablog.com/entry/linux-log:embed:cite
2020/10/06 start
>>~/.bashrc
# start alias
alias start="bash /home/*****/local/setting/alias/start.sh"
$ mkdir -p ~/local/setting/alias
$ mkdir ~/local/log
>> ~/local/setting/alias/start.sh
#!/bin/sh
# for make log file
today=$(date "+%Y%m%d-%H%M")
folder=$(basename `pwd`)
echo "Hello! Welcome to ***** PC (¥v¥)/"
echo "what is your name?"
read name
logfilename=${today}-${name}-${folder}
script /home/*****/local/log/${logfilename}.txt


2020/10/09 linuxbrew
$ sudo apt-get install build-essential curl file git
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
$ test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
$ test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
$ echo "eval $($(brew --prefix)/bin/brew shellenv)" >>~/.profile
$ brew install sl


2020/10/12 trash-cli
$ brew install trash-cli
>> ~/.bashrc
# trash-cli
alias rm="trash-put"

まとめ

最近解析できてないです。

緊急事態宣言でロックダウンしたら、自宅でこれやりたいなあ。

参考文献

imamachi-n.hatenablog.com

pharm-programmer.net

*1:うちはあまりお金がないのでもっぱら先行研究のデータですが

VSCodeでGitHubにpush

初めに

題名そのまま。VSCodeGitHubをリンクする。

この記事を参考にしてやっていきます。

もしかしたら事前にGitのインストールがいるかも

やったこと

とりあえず、git configを作ります。

$ git config --global user.name "****" #GitHubのユーザーネーム
$ git config --global user.email ****@***** #GitHubのメールアドレス

レポジトリを追加

右上の+印からレポジトリを新しく作成し、名前を付けてcreate!READMEを作るのも忘れずに!

f:id:wet-to-dry:20210122161523p:plain

VSCodeとリンク、レポジトリのクローン

元記事はURLからクローンしてるのですが、VSCodeをいじってたらAutherize作業だけでクローン出来ました!

F1キーを押してコマンドを表示し、Gitと打つと"Git: クローン"という選択肢が出るので、それをクリック

f:id:wet-to-dry:20210122165429p:plain

初めての場合はブラウザのGitHubのページに飛ぶので、そこでAutherizeを行う。

f:id:wet-to-dry:20210122163413p:plain

そのあとは、

  1. もう一度F1キーで"Git: クローン"を選択

  2. "GitHubから複製"を選択

  3. 選択肢に出てくる中から、レポジトリを選択する

  4. クローン先のフォルダを選択

という感じでクローン出来ました。

レポジトリのクローン (ターミナルから)

GitHubのレポジトリのページから"コード"→URLをコピー!

f:id:wet-to-dry:20210122165104p:plain

VSCodeに移り、

$ git clone コピーしたURL

と打つと、今いるディレクトリの中にレポジトリがクローンされます。

Gitの操作

クローンしたレポジトリの中のファイルをいじった後、VSCodeで"ソース管理画面"なるものを開きます。

f:id:wet-to-dry:20210122165538p:plain

写真の中の青くなってるやつです。

こんな感じの画面が出てくるはずなので、

f:id:wet-to-dry:20210122165748p:plain

変更箇所(右側のエディター画面)に問題がないかチェックして、左のファイル名の隣の"+"マークでステージング(git add)する!

f:id:wet-to-dry:20210122170216p:plain

左上の"チェック"マークでコミット!

f:id:wet-to-dry:20210122171527p:plain

そして"・・・"からPush!

f:id:wet-to-dry:20210122171616p:plain

ちゃんと追加されてました。

f:id:wet-to-dry:20210122172126p:plain

まとめ

これで何とかVSCodeからGitHubをいじれるようになりました。

良かった。

参考文献

qiita.com

qiita.com

実験マウスを管理するための専用フォームを開発する(ブログのまとめ)

初めに

私が書いたマウス管理システムの開発過程に関する記事をまとめたものです。

サイト一覧

実験マウスを管理するための専用フォームを開発する(1)

wet-to-dry.hatenablog.com

実験マウスを管理するための専用フォームを開発する2

wet-to-dry.hatenablog.com

実験マウスを管理するための専用フォームを開発する3

wet-to-dry.hatenablog.com

実験マウスを管理するための専用フォームを開発する4

wet-to-dry.hatenablog.com

実験マウスを管理するための専用フォームを開発する5-最終回-

wet-to-dry.hatenablog.com

実験マウスを管理するための専用フォームを開発する6-minor change-

wet-to-dry.hatenablog.com

URL

完成版アプリ↓(僕の本番用は別ですので、自由に使っていただいて構いません)

script.google.com

スプレッドシート↓(これも練習用ですのでいじってもらって構いません)

docs.google.com

コード(github)↓

github.com

実験マウスを管理するための専用フォームを開発する6-minor change-

概要

半年前にマウス管理システムを作りました。

wet-to-dry.hatenablog.com

運用していて、少し不便だと思ったところをいじったので、備忘録として残しておきます。

変更点

  • 交配をかける際にオス一匹に対してメスを複数選べるようにした。(前までは交配用のメスマウスを3匹ずつ群飼いして同時にオス一匹と交配をかけていたのですが、最近は耳パンチやtoeカットでそれぞれのマウスを識別できるようにしたので、複数選べる方が便利だな~ということで変更しました。また、同時にすでに交配中のオスマウスも交配相手に選べるようにしました。)

  • 仔マウスの母親と父親がわかるようにした。

  • 交配用マウスの個体識別番号を「prefix」から「ID」に書き換えた。それに付随して、sheetのidを「id」から「sheet_id」に変更した。

  • 交配を終えるときの操作をわかりやすくした。(今までは交配中のすべてのオスとすべてのメスから選んでいましたが、オスを選ぶとそのオスと交配しているメスしか選べなくなりました。)

  • 「生まれた」のページで選べるのは「妊娠」だけにした。(以前は交配用のメスマウスを3匹ずつ群飼いしていたので、同じ親に対して最低三回の「生まれた」アクションを行わなければならなかったのですが、個体識別できるようになったので「妊娠」→「仔育て」操作は一回で良くなりました。)

  • 「生まれた」のページで生まれた数を0で入力すると、「仔育て」を飛ばして「休憩」になるようにした。(以前は交配がかからずに妊娠しなかったメスマウスを「休憩」状態に持っていく方法がなく、spreadsheetに直接書き込んでいたが、これをアプリ操作でできるようにしました。)

できたもの

完成版アプリ↓(僕の本番用は別ですので、自由に使っていただいて構いません)

script.google.com

スプレッドシートは引き続き以下のものを使用しています↓(これも練習用ですのでいじってもらって構いません)

docs.google.com

コード(github)↓

github.com

まとめ

まあ、やったことは僕が使いやすいようにいじっただけなので、本当にminor changeです。

特に動画を載せる必要もないかな。

2020/12/03追記

記事をまとめました。

wet-to-dry.hatenablog.com