ほぼ中立ブログ

少しだけ趣味に偏った雑記ブログ

Pythonのfileinputでフィルタとかファイルの書き換えとか

Pythonでファイルの読み込みや書き込みをする際にはopen関数を使うのが基本ですが、下に挙げるような少し複雑な操作をしたい場合には頭を抱えることになります。 標準入力からも読み込みたい、ただし指定したときにはファイルからも読み込んでほしい。 ファ…

全自動でシングルコピー遺伝子の連結系統樹推定(OrthoFinder, MAFFT, trimAL, IQ-TREE)

オーソログ推定プログラムのOrthoFinderですが、便利なことにオーソログ推定の結果予測されたシングルコピー遺伝子の情報を個別に抽出してディレクトリにまとめてくれます。 シングルコピー遺伝子の系統樹は種の系統関係を反映している可能性が高いと考えら…

Pythonでディレクトリを一時的に移動して元のディレクトリに戻る

Pythonスクリプト内で外部プログラムを呼び出して解析を実行することが多々あるのですが、プログラムの中には出力先を指定するオプションがなくカレントディレクトリに結果を出力することを想定しているものがあります。 条件が一つだけの場合はそれで良いの…

Guakeがexitでフリーズするので解決策と代替アプリを探した件

キーボードからさっと簡単に呼び出せるドロップダウン型のターミナルGuakeを愛用していたのですが、Ubuntu 18.04 LTSにしてから、exitで端末を閉じようとするとフリーズするようになってしまいました。 まぁ、Guakeの特性上基本的に端末は開きっぱなしでOKな…

Pythonでディレクトリ下のファイルを再帰的にリネームして通し番号を振る

pythonでディレクトリ(フォルダ)下のファイルを一括で変更して通し番号を振るスクリプトを作ったので備忘録を兼ねてまとめます。 Windowsでも動くような気はしますが、テストした環境はUbuntu 18.04 LTSです。 目標 スクリプト 目標 以下のような構成のフォ…

Newick形式で系統樹の樹形が同じか確かめる

複数のNewick形式の系統樹から樹形が同じものを抽出する必要に駆られたので備忘録を兼ねたまとめです。 当たり前ですが、 ((A,B),(C,D)); ((C,D),(A,B)); の2つのNewick形式は同じ樹形を表しており、 ((A,B),(C,D)) ((A,C),(B,D)); の2つのNewick形式は異な…

UbuntuにNeovimをインストールする

この度VimからNeovimに乗り換えたので、備忘録を兼ねてそのインストール手順をまとめます。環境はUbuntu 18.04 LTSです。 正直な所VimとNeovimとの違いは分かっていませんし、プラグインの導入等一通りの設定が終わった今でも、Vimとの使用感の違いはないの…