UbuntuでFirefoxを起動した時に
“Firefox is already running but is not responding”
というエラーが出たままFirefoxが起動しない現象に遭遇しました。
公式サイトに答えが書いてありました。
UbuntuでRを使っていらっしゃる方は多いと思います。
R3.5以上を使う場合、https://cran.rstudio.com/bin/linux/ubuntu bionic-cran35 を使っている場合が多いです。
このリポジトリの署名が2020年10月16日に失効しました。
Appleは11月17日からCPUをこれまでのIntelからARMベースのApple M1を搭載したmacbookを発売しました。
脳画像解析をされる方は注意してもらいたいのですが、2020年11月18日現時点で、FSLはApple M1には対応していません。対応までに数カ月かかるとFSLのメーリングリストで中の人がおっしゃっていました。
その他にも未対応のソフトは多くあると思われるので注意してください。
個人的には、macに関しては「ちょっと枯れてから」がいいと思っています。
imglob or imcp provided with FSL requires numpy.testing.decorators. However, numpy.testing.decorators has been deprecated from numpy 1.18. So, if you use numpy >=1.18, you see the following error:
題名のとおりなのですが、
Lin4NeuroをmacOS上で仮想マシンで走らせようとしたら、私の持っている Mojave, Catalina のどちらでも以下のメッセージが出てきて仮想マシンが立ち上がりませんでした。
FreeSurfer 7が公開されています。recon-allの時間が短縮されたり、海馬のsubfield解析がよりグレードアップしたりとなっています。
macOSへのインストールはデモ動画が示されていますが、コマンドラインで一気にインストールしたいと思いました。
以下、必要なものを示します。
気づけばほぼ毎日Zoomで何らかの会議やワークショップに参加する日々です。
先日、あるワークショップでホストをする機会がありました。
ブレークアウトセッションを多く使うワークショップですが、
毎回、何人かブレークアウトセッションに移行できず落ちてしまうという現象が起こりました。
おそらくネットワークの負荷が大きく、タイムアウトを起こしているのだろうという仮説を立てました。
HCP Pipelineを準備するのは簡単ではありませんが、東京大学小池研の植松明子さんとディスカッションしている中で、Ubuntu 18.04にHCP Pipelineを設定する方法を確立できたのでご紹介します。植松さんのinputに感謝申し上げます。
タイトル通りの投稿ですが、よく忘れるので、備忘録として。
スクリプトを書いている時に、入力ファイルの改行を全部とって1行にしたいという時があります。
たとえば、
seq 5 > list cat list 1 2 3 4 5
となっている時、これを
1 2 3 4 5
としたいような時をイメージしてください。
これを sed でやろうとするとうまくいきません。
sed 's/\n//' list sed 's/\r//' list
などでいくかと思えどうまくいかず、いろいろはまることになります。
さらにmacとLinuxでは、sedがBSDのsedとGNU sed で違うため、ここもまたはまる原因になります。
でも、sedにこだわらず、Perlで
perl -pe 's/\n/ /' list
とすると、あっさりうまくいきます。
(細かく言うと、Windowsだと、\r\nだったりしますが、とりあえず、UNIX環境と仮定します)
なお、perlのオプション -e は引数をそのままプログラムとして実行するオプションで、ワンライナーでは必須のものであり、オプション -p は、入力の各行に対してプログラムを実行し、最後に結果を表示するオプションとのことです。こちらのサイトに詳しく書いてあり、勉強になりました。
ということで、シェルスクリプトで改行の削除に困ったら、sedにこだわらず、perl -pe を活用すると迷う時間が減るかもしれません。
あるプロジェクトで、csvファイルをxlsxに変換する必要がありました。
いろいろな方法がありますが、比較的やりやすかった方法がありましたので、備忘録として記載します。
方法は、gnumeric (とnkf)を使う方法です。インストールは簡単です。
sudo apt install gnumeric nkf
ここでは、例として、sample.csv を sample.xlsx に変換したいと考えます。
日本語が入っている場合、Shift-JISなどだとうまくいかない場合があるので、文字コードをUTF-8に変換します。
nkf -wLu --overwrite sample.csv
Gnumericについているssconvertというプログラムが簡単に変換してくれます。
ssconvert sample.csv sample.xlsx
簡単なのですが、この場合、sample.xlsxのシート名が sample.csv となってしまいます。これは気持ち悪いなと思いました。
なので、これを取り除く工夫が以下です。xlsxをxmlに変換し、xmlの中の.csvをsedで取り除き、そして、再度xmlをxlsxに変換します。
ssconvert --export-type=Gnumeric_XmlIO:sax:0 $sample.xlsx sample.xml sed -i 's/.csv//' sample.xml ssconvert --export-type=Gnumeric_Excel:xlsx sample.xml sample.xlsx rm sample.xml
これで望みどおりの変換ができました。
以上、まとめると、以下のようなスクリプトになります。
#!/bin/bash #prerequisites: nkf and gnumeric for f in *.csv do nkf -wLu --overwrite $f base=${f%.csv} ssconvert $f ${base}.xlsx ssconvert --export-type=Gnumeric_XmlIO:sax:0 ${base}.xlsx ${base}.xml sed -i 's/.csv//' ${base}.xml ssconvert --export-type=Gnumeric_Excel:xlsx ${base}.xml ${base}.xlsx rm ${base}.xml mv $f csv done
最近、あるワークステーションを新規にセットアップしました。
いつもファイルはDropbox経由で同期することによって楽しているので、今回も同じようにしたら、
1週間たっても同期がされません。
おかしいなと思っていろいろ調べてみたら、公式ドキュメントにヒントがありました。
同期できない場合 – 互換性のない特殊文字と不良なファイル名に関する問題の解決方法
Linux で 1 万件以上のフォルダを監視する
Linux 版の Dropbox デスクトップ アプリは、デフォルト設定により 1 万件以上のフォルダを監視することはできません。制限数を超えた場合は監視されないため、同期中に無視されます。簡単な回避策として、まずターミナルを開き、次を入力してください。
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
このコマンドでシステムに 10 万件までのフォルダを監視するように指示することができます。コマンドを入力しパスワードを入力したら、すぐに Dropbox が同期を再開します。
私のDropbox内のフォルダ数はどのくらいだろう?と思って、以下のコマンドでディレクトリ数を数えてみました。
find Dropbox -type d | wc -l
その結果ですが、14454 と出てきました。1万件超えています。
そこで、アドバイス通り、以下のコマンドを入力しました。
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
そうしたところ、同期がはじまりました!システムで何か変な設定をしてしまったのではないかと心配だったのでほっとしました。
普段使っているDropboxは、少しずつ増えていっているので、おそらく監視しているフォルダ数がそれほど多くないのかもしれませんね。
最近、Pythonの勉強をしていますが、いろいろ調べている中で、Matthew Brett氏がMatlabやRに慣れている人のためのPythonの手引き、”Brisk Introduction to Python“を書かれているのを見つけました。既にMatlabやRを知っている方々がPythonのコツを理解するのによいテキストと思います。このため、Brett氏の承諾を得て、研究室のメンバーで翻訳しました。
動的プログラミング言語を知っている人のためのPython入門はこちらからどうぞ。
東京大学の小池先生が国際脳のヒトMRI研究ポータルサイトを開設されました。
このサイトは、国際脳ヒト脳MRI研究プロジェクトで策定されたデータ取得手順、データ集約と共有化、前処理技術開発、Traveling subject project、倫理的配慮などの情報を集約し、国内のヒト脳MRI研究を発展させることを目的としたウェブサイトとのことです。
プロトコル論文がpreprintで公開されていたり、有用な情報が掲載されていますので、一見の価値ありです。
先日、あるスクリプトを書いている中、.bashrcに追記する内容を書いた時に
echo "something" >> ~/.bashrc
と書くべきものを
echo "something" > ~/.bashrc
と誤って書いてしまい、テストでスクリプトを走らせて .bashrc を確認したところ、
something
の一語だけになっており、顔から血の気がひくという経験をしました。
Covid-19対応に追われる日々ですが、それだけだとつらくなるので、Lin4Neuroのアップデートを行い、公開しました。
主な変更点は以下になります。
最新のLin4Neuroはこちらから入手できます。
英語版のサイトはアップデートしましたが、日本語版はこれからです。
Lin4Neuro based on Ubuntu 18.04 is updated.
Below are main changes.
You can get the latest version from here.
以前、DTIの画像などをFreeSurferの脳表に投影する方法を紹介しましたが、SPMの結果のspmT画像をFreeSurferの脳画像に投影する方法もわかりましたので紹介したいと思います。
必要なコマンドは、mri_vol2surf です。
入力画像は、spmT_0001.nii とします。出力ファイル名は、左半球の画像ということで、lh.spmT_0001.mgzとします。
今回、大事になるのは、–mni152reg というオプションです(木村先生、教えてくれてありがとうございました)。MNI空間でのあわせこみに使えるオプションです。
シンプルに以下でいけました。
mri_vol2surf --mov spmT_0001.nii --mni152reg --hemi lh --o lh.spmT_0001.mgz
入出力ファイル以外のオプションは2つだけ、–mni152reg と –hemi lh だけです。
最後にfreeviewで表示します。T値が3以上を表示したいと思ったので、thresholdを3,5としてあります。
freeview -f \ $SUBJECTS_DIR/fsaverage/surf/lh.inflated:overlay=lh.spmT_0001.mgz:overlay_threshold=3,5\ --viewport 3d --layout 1
結果、以上のような感じで表示できました。
Ubuntu で Jupyter notebook を入れるとデフォルトでは Firefox が起動します。
Google Chrome にする方法を探しました。
こちらのリンクに方法が記載されていましたが、記載しておきます。
jupyter notebook --generate-config
これで、 ~/.jupyter/jupyter_notebook_config.py が生成されます。
which google-chrome
私の場合は /usr/bin/google-chrome でした。
以下の記載を探します。
# c.NotebookApp.browser = ''
ここを以下に修正します。
c.NotebookApp.browser = '/usr/bin/google-chrome'
これだけです。