LinuxホストでVirtualboxを使う際、USBデバイスを利用するためにしなければならないこと

Linux上でVirtualboxを使っている時、USBデバイスが認識されないで困っていました。
ドキュメントを見たら、きちんと書いてありました。

ドキュメントはこちら

2.3.4. The vboxusers group

The Linux installers create the system user group vboxusers during installation. Any system user who is going to use USB devices from VirtualBox guests must be a member of that group. A user can be made a member of the group vboxusers through the GUI user/group management or at the command line with

sudo usermod -a -G vboxusers username

vboxusersというグループにユーザーを登録しないと使えないと書いてあります。

早速やってみました。ユーザーネームがfooだとすると、

$ sudo usermod -a -G vboxusers foo

となるわけです。

そうしたところ問題なく使えるようになりました。

fslmathsでproportional scalingをするワンライナー

Proportional scalingは割り算するだけなので大変ではありません。
スクリプトを書くまでもなく、ワンライナーでいけないかと思いました。
次のような感じでばっちりいけました。

必要なものはファイル名となんらかのglobalが記載されているテキストファイルです。ここでは、id_volume.txtとします。

$ cat id_volume.txt

filename1 1.34
filename2 1.43
filename3 1.36
...
filename4 1.47

それでは、本題です。

$ cat id_volume.txt | while read line; \
do id=`echo $line | awk '{ print $1 }'`; \
icv=`echo $line | awk '{ print $2 }'`; \
echo "ID=${id} and ICV=${icv}"; \
fslmaths ${id} -div ${icv} p${id}; done

これで、ファイル名の前にpがついたファイルができます。

Packages to install to run MITK-2015.05.2 on Ubuntu 14.04

MITK-2015.05.2 depends on Qt5, which makes users to install some additional packages.
With trials and errors, below is what you need to do to run MITK-2015.05.2 on Ubuntu 14.04.

  1. build-essential
  2. You need this to run Qt5

    $ sudo apt-get install build-essential
    
  3. Core of Qt5
  4. $ sudo apt-get install qt5-default qttools5-dev-tools
    

    With this command bunch of software packages will be installed on your system.

  5. Two more libraries…
  6. You need two more libraries to run MITK-2015.05.2

    sudo apt-get install libqt5webkit5 libqt5svg5
    
  7. Set environment variable
  8. As the official site points out, you need to set envirament variable as below (when you use bash). I put this in ~/.bashrc

    export QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins 
    

Now it works!

Thinkpad X250, X201s, T430s上のUbuntu 14.04に対して、lm-sensorsとthinkfanを用いて熱対策を行う方法

しばらく前から気になっていたのですが、Thinkpad X201sやThinkpad X250にUbuntu 14.04を入れると、妙に熱くなる時がありました。
lm-sensorsをインストールして、温度を見たところ、CPUの温度が77℃に達していました!これは大変と思いました。
調べたところ、”Thinkpad overheating with Ubuntu”といった感じの記事がいろいろ見つかりました。
それらを見てみると、どうもファンの制御がうまくいっていないようです。

そんな中、”Ubuntu 11.10 on ThinkPad X220 でファン制御“という投稿を見つけました。

続きを読む

Linuxでターミナルから日本語名のディレクトリだけを削除したい時の簡単なコマンド

Linuxを使っていると、ターミナルから日本語関連のものを削除するときに、わざわざ日本語入力を可能にしてからというのはめんどくさいですよね。

スマートな方法はと考えました。

下記の方法で、アルファベットおよび数字ではじまらないディレクトリを削除できます。間違って削除するのは心配なので、削除する前に確認のメッセージを出すようにしました。

$ rm -ri [!a-zA-Z0-9]*

Linuxにおいては、シェルでは、[]の中の!は「それ以外」を意味します。
今の場合は、「a-z, A-Z, 0-9ではじまるもの以外」ということになるわけですね。

私の場合、これで、不要な日本語ディレクトリをさらっと消せました。

画像ファイル振り分けスクリプト

画像解析を行っている人ならば、一度は画像の振り分け作業に悩まされたことがあると思います。
私ももれなくその一人で、最近、あるプロジェクトにおいて、画像を分けなければならずしばらく放置していました。

しかし、よく考えてみたら、こういう「めんどくさい」けれども「単純な作業」こそ、コンピューターにさせるべき作業なわけです。

そこで、以下のようなスクリプトを考えてみました。コメントで何をしているか説明します。

#!/bin/sh

#filesorter.sh
#sort files according to the sorting list
#Usage: filesorter.sh sorting_list
#You need to prepare a sorting list beforehand.
#It should be like the following.
# img001  HC
# img002  PT
# img003  HC
# img004  PT
# img005  PT

#引数が指定されているかチェック
if [ $# -ne 1 ]; then
	echo "A sorting file should be specified!"
	echo "Usage: $0 sorting_file"
	echo "Sorting file includes ID and Categorized Group"
	echo "example:"
	echo "img001  HC"
	echo "img002  PT"
	echo "img003  HC"
	echo "img004  PT"
	echo "img005  PT"

	exit 1
fi

#ファイルを読み込み、空白行を削除し、1行ずつ$lineにセット
cat $1 | sed '/^$/d' | while read line
do
    #AWKを使って、第1フィールドを変数idにセット
    #第2フィールドを変数categoryにセット
    id=`echo $line | awk '{ print $1 }'`
    category=`echo $line | awk '{ print $2 }'`
	
    #変数categoryの名前に相当するディレクトリがなければ作成
    if [ ! -e $category ]; then
        mkdir $category
    fi

    #変数idを含むファイルを先ほど作成したディレクトリにコピー
    echo "copy $id to $category"
    cp *${id}* $category
done

興味のある方は、こちらからダウンロードしてください。

Ubuntu 14.04でLibreOfficeを4.xから5.xにアップグレードする方法

この記事は、もともとは、Ubuntu 12.04でLibreOfficeを3.xから4.xにアップグレードする方法に記載していたものですが、Ubuntu 14.04においても同様の方法でいけますので、改めて記載します。

Ubuntu 14.04を利用していると、LibreOfiiceは4.xのままです。
しかし、LibreOfficeは5.xにアップグレードされ、互換性なども以前にまして高まっています。
以下の方法で、簡単にLibreOfficeを4.xから5.xにアップグレードできます。

sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get dist-upgrade

ここでポイントは、apt-get updateの後にapt-get dist-upgradeを行うことです。

apt-get upgradeとapt-get dist-upgradeの違いは、man apt-getに以下の記載があります。

upgrade
upgrade は、現在システムにインストールされている全パッケージの最新バージョンを、/etc/apt/sources.list に列挙した取得元からインストールするのに使用します。現在インストール中のパッケージに新しいバージョンがあれば更新しますが、いかなる時も現在インストール中のパッケージの削除は行いません。対象のパッケージが、他のパッケージのインストール状態を変更せずに更新できない場合は、現在のバージョンのままとなります。最初に update を実行しておき、apt-get にパッケージの新しいバージョンがあることを知らせる必要があります。

dist-upgrade
dist-upgrade は、upgrade の機能に加え、新バージョンのパッケージに対する依存関係の変更を知的に操作します。apt-get は「洗練された」競合解決システムを持ち、必要とあらば比較的重要でないパッケージを犠牲にして、最重要パッケージの更新を試みます。そのため dist-upgradeは、いくつかのパッケージを削除する可能性があります。/etc/apt/sources.list ファイルには、必要なパッケージファイルを検索する場所のリストが含まれています。

upgradeは全く削除されることなく、dist-upgradeは必要あらばファイルを削除する可能性があるわけですね。今回、LibreOfficeの3.xから4.xへのアップグレードには、いくつかのファイルが削除される必要もあるので、dist-upgradeを利用することとなります。

何はともあれ、この3つのコマンドで、LibreOfficeを安定した最新版にアップグレードできます。

ANTsのmacOSへのインストール方法(ソースからのコンパイル)

ANTs (Advanced Normalization Tools)は、近年注目されている脳画像解析ツールです。性能が高いのですが、導入方法などが親切に説明されていません。macOSへのインストール方法を説明します。

2021.01.02: Homebrewを使えばcmakeが入れられるので、そちらに情報を更新しました。また、インストールスクリプトを公開しました。
こちら(右クリックで保存)からダウンロードしてください。Downloadsフォルダにダウンロードしたと仮定しますと、以下でインストールできます。コンパイルにしばらく時間がかかりますので30分くらいかかると思ってください。

cd ~/Downloads
chmod 755 ANTs_installer_macOS.sh
./ANTs_installer_macOS.sh

開発者によるHow-toはこちらに記載されています。

以下、詳しい説明です。

続きを読む

MRIcronのMacOSへのインストール方法

*23 Jan 2021: MRIcronのインストーラーが変更になったこと、MRIconにdcm2niixが含まれるようになったことから、全面改訂を行いました。

MRIcron自体のインストールは難しくないのですが、ターミナルからdcm2niixを使用するためには少し工夫が必要ですので、それを記載します。なお、シェルは bash という前提でいきます。zshを利用の方は、chsh -s /bin/bash で bash に変更できます。(再起動が必要です)

続きを読む

脳画像解析ミニ勉強会 in 神戸 (2015年9月6日)

(25/Aug/2015:参加を締め切りました)

2015年9月に神戸で脳画像解析のミニ勉強会を開催します。

ふだんは、私はSPM-VBMを中心にしていますが、

今回は、”脳画像解析Tips -コマンドラインは怖くない-“と題して、

主にdcm2niiとFSLを用いて、コマンドラインを使った処理について学べたらと思います。
GUIでなく、ターミナル内で作業をすることにおっかなびっくりな方々が対象です。
既にコマンドラインを使いこなしている方は学ぶことはほとんどないです。
冷やかしがてら、協力してくださる方々の参加は歓迎です。

続きを読む

UbuntuでXPSファイルをPDFに変換する方法

Windowsでは、PDFに対抗してXPS形式という形式でファイルを出力することができます。
今はMicrosoft OfficeならばPDFに直接書き出すことができますが、それ以外のソフトウェアでは、WindowsではAdobe Acrobatやその他のPDFに出力することができるソフトウェアを使わないと直接PDF出力ができません。その点、XPS形式ならばどんなソフトウェアからも出力することができます。

出張先で、プリンタがなく、アクセスできるWindowsにPDF出力機能がない場合、XPSをとりあえず出力して、
Ubuntu側でXPSをPDFに変えられるのではないだろうか?と思いました。

そうしましたら、見つけました。その名もxpstopdfというコマンドです。
これは、libgxps-utilsというソフトウェアに入っています。

続きを読む

Xubuntu14.04にIBM SPSS 22をインストールし、日本語の文字化けをなくす方法

Linuxで統計をやるならRを使えばいいじゃないと言われそうですが、
同僚がSPSSを多く使う場合、SPSSを動かせた方がいい時もあります。
ただ、インストールしてみたら日本語が文字化けして苦しみました。
ちょっとした工夫でクリアーできたので、ご紹介します。
ちなみに、SPSS_Statistics_22_lin_.binというファイルを使ってインストールしました。

続きを読む

Ubuntuでlessを使って構文をカラー表示する方法

viやgeditなどを使うと、シェルスクリプトなど、様々な構文を自動でカラー表示させることができて便利です。しかし、lessで表示させると白黒でわかりづらくなってしまいます。

そこで、lessでカラー表示する方法がないか調べたところ、様々な方がその情報を発信されていました。

  • とりあえず、解決法
  • 時間がない方は、以下の2つをやってください。

    まず、source-highlightをインストールします。

    $ sudo apt-get install source-highlight
    

    次に、以下の2行をホームディレクトリにある.bashrcに追加します。

    #Source-hilight with less
    export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s"
    export LESS='-R'
    

    これを保存し、シェルを新しく起動すると、lessでシェルスクリプトが色付きで表示されるようになります。ちょっと感動です。

    私のサンプルスクリプトは下図のようになります。

    less_color

    ここまでなら、いくつもあるのですが、原典にあたってみたいということと、LESSとLESSOPENの意味を調べてみたので、少し紹介します。

  • 原典
  • この情報の出処は、GNU Source-highlightの解説サイトと考えられます。こちらになります。

    引用しておきます。

    This was suggested by Konstantine Serebriany. The script src-hilite-lesspipe.sh will be installed together with source-highlight. You can use the following environment variables:

    export LESSOPEN=”| /path/to/src-hilite-lesspipe.sh %s”
    export LESS=’ -R ‘

    This way, when you use less to browse a file, if it is a source file handled by source-highlight, it will be automatically highlighted.

  • 変数LESSの意味
  • 次に、LESS=’-R’の意味が何かを調べてみました。いろいろ調べたところ、lessのmanページの解説が一番しっくりきました。以下のように記載されています。

    -R または –RAW-CONTROL-CHARS
    -r と似ているが、可能な場合には画面表示を正しく維持しようとする。 このオプションが有効なのは、入力が通常のテキストの場合である。入力には ANSI の「カラー」エスケープシーケンスが含まれていてもよい。 このシーケンスは

    ESC [ … m

    のような形式で、”…” は “m” 以外の 0 個以上の文字である。画面の状況を保つため、 全ての制御文字と ANSI カラーシーケンスは カーソルを移動させないと仮定している。 less に “m” 以外の文字を ANSIカラーエスケープシーケンスの終了文字として認識させることもできる。そのためには、認識させたい終了文字のリストを 環境変数LESSANSIENDCHARS に設定すればよい。

    ここに「カラー」エスケープシーケンスとありました。
    どうもこれを指定することで、色がきちんと表示されそうです。
    ちなみに、これを指定しないとどうなるかやってみました。
    その結果は、一目瞭然です。

    less_bw

  • LESSOPENの意味
  • 次に、LESSOPENです。なぜ、最初にいきなりパイプが入っていたり、最後に%sがあるのでしょうか。これも、lessのmanページに記載がありました。引用します。

    入力プリプロセッサ
    less のための「入力プリプロセッサ」を定義することができる。 less がファイルを開く前に、入力プリプロセッサで 入力ファイルの内容の表示の仕方を変更することができる。 入力プリプロセッサに渡される。 入力プリプロセッサは、ファイルの内容を 代替ファイルと呼ばれる別ファイルに書き出す 単純な実行可能プログラム (もしくは、シェルスクリプト) である。 代替ファイルの内容がオリジナルファイルの内容の代わりに表示される。 しかし、ユーザーにとってはオリジナルファイルが開かれているかのように見える。less は現在の代替ファイルの名前としてオリジナルファイルの名前を表示する。

    入力プリプロセッサは、ユーザーによって入力される オリジナルファイル名を1 つのコマンドライン引き数として受け付ける。 そして、代替ファイルを生成し終えると、代替ファイル名を標準出力に表示する。 入力プリプロセッサが代替ファイル名を出力しない場合、less は標準としてオリジナルファイルを用いる。 入力プリプロセッサは、標準入力を閲覧する場合には呼び出されない。
    入力プリプロセッサを設定するためには、 入力プリプロセッサを呼び出すコマンドラインを環境変数 LESSOPENに設定する。このコマンドラインには、入力プリプロセッサコマンドが呼び出されるときに、ファイル名に置き換えられる文字列 “%s” を含んでいなければならない。

    ここで%sの意味が明らかになりました。最後の%sは、ファイル名を意味するのですね。

    その後に以下のような記載があります。

    ファイルのデータを代替ファイルに書き出さず、そのまま、less にパイプするような入力プリプロセッサを設定することも可能である。こうすることにより、閲覧する前に圧縮ファイル全体を展開するのが避けられる。このような働きをする入力プリプロセッサは、入力パイプと呼ばれる。 入力パイプは、代替ファイル名を標準出力に表示する代わりに、代替ファイルの内容全てを標準出力に書き出す。入力パイプが標準出力に何も書き出さない場合、代替ファイルは生成されず、less は普通にオリジナルファイルを使う。入力パイプを使う場合は、入力プリプロセッサが入力パイプであることを知らせるために、環境変数 LESSOPEN の最初の文字を、縦棒 (|) に設定する。

    つまり、LESSOPENの最初に指定するパイプ(|)は、入力プリプロセッサが入力パイプであることを明示しているわけですね。

    つまり、私の理解では、上記の2行によって、

    • ファイルをパイプで、src-hilite-lesspipe.shに渡す。%sは渡すファイル名を意味
    • 変数LESSに-Rを指定することによって、色のエスケープシーケンスを設定し、端末上に色が表示されるようにする

    ことを可能にしているわけですね。

掘り下げて勉強した結果、manページに当たることの大切さを再び学びました。

How to install official NVIDIA drivers on Xubuntu 14.04

(I wrote this post originally in Japanese, but this post may be helpful universally, so re-write in English.)

I got a new PC with NVIDIA GeForce GTX 750 Ti in December 2014.

At that time nvidia-current did not support GTX750Ti, so I needed to install drivers from nvidia website. However, some tweaks were needed to get things done, so I drop a note how to install NVIDIA drivers without much pain.

続きを読む

A Matlab script to generate ROI masks using an Atlas in SPM12

SPM12 introduces some useful functions such as spm_atlas or new atlas “labels_Neuromorphometrics.” We find the description about labels_Neuromorphometrics in SPM12 Release note.

Maximum probability tissue labels derived from the “MICCAI 2012 Grand Challenge and Workshop on Multi-Atlas Labeling” are available in files tpm/labels Neuromorphometrics.{nii,xml}. These
data were released under the Creative Commons Attribution-NonCommercial (CC BY-NC) with no end date. Users should credit the MRI scans as originating from the OASIS project and the labeled
data as “provided by Neuromorphometrics, Inc. under academic subscription”. These references should be included in all workshop and final publications. See spm templates.man for more details about the generation of this file.

I wanted to generate masks of some regions using this labels_Neuromorphometrics.

Below is the tiny script which generates masks from your preferred atlas.
Running script brings up a file selector. You can choose any atlas you want.
Then it brings up another dialog which lists the region within the atlas. You can choose as many regions as you want, and the scripts generates masks whose file name is the name of the regions.


%generate_masks_from_atlas.m
%This script generate mask files from any atlases you prefer.
%K. Nemoto 25 April 2015

xA=spm_atlas('load');
S=spm_atlas('select',xA);

for i = 1:size(S,2)
    fname=strcat(S{i},'.nii');
    VM=spm_atlas('mask',xA,S{i});
    VM.fname=fname;
    spm_write_vol(VM,spm_read_vols(VM));
end

Download generate_masks_from_atlas.m (right click and save as)

A Matlab script to set origin to the center of the image using SPM

Sometimes we need to handle images whose origin is far from the center of the image.
My friend, Fumio Yamashita, from Iwate Medical University wrote a script which set the origin to the center of the image.

Usage is very simple.

    Download

  1. setorigin_center.m (Right click and save as…) and save in SPM directory or any directories under MATLAB path.
  2. Type the following in Matlab command window.
  3. >>setorigin_center
  4. This will pop up the file selector, so choose the images you want to set the origin to the center.

That’s it.

Below is the example of the script.

Left is before applying the script. You can see that the origin is far from the center.
Right is after applying the script. Now origin is set to the center.

setorigin_screenshot

(筑波大関係者専用)Ubuntuで OpenVPNを使用して筑波大のVPNサービスに接続する方法

筑波大の学術情報メディアセンターはVPNサービスを運用してくださっています。
非常にわかりやすいマニュアルを提供してくださっていますが、残念ながら、Linuxのマニュアルはまだ提供されていません。

そこで、私の環境(Xubuntu 14.04)でOpenVPNを使ってうまくVPN接続に成功しましたので、備忘録を兼ねて書いておきます。

続きを読む