Ubuntu で Jupyter Notebook を Google Chrome で起動したい時の設定

Ubuntu で Jupyter notebook を入れるとデフォルトでは Firefox が起動します。
Google Chrome にする方法を探しました。

こちらのリンクに方法が記載されていましたが、記載しておきます。

  • 設定ファイルの書き出し
  • jupyter notebook --generate-config
    

    これで、 ~/.jupyter/jupyter_notebook_config.py が生成されます。

  • Google Chromeのパスの確認
  • which google-chrome
    

    私の場合は /usr/bin/google-chrome でした。

  • jupyter_notebook_config.py の編集
  • 以下の記載を探します。

    # c.NotebookApp.browser = ''
    

    ここを以下に修正します。

    c.NotebookApp.browser = '/usr/bin/google-chrome'
    

    これだけです。

Git LFS on Ubuntu 18.04

Ubuntu 18.04 で Git LFSを使うための備忘録です。リポジトリの作成者側、そして利用者側の観点が必要です。

  • 共通して準備する事項
    • git lfsのインストール
    • sudo apt install git-lfs
      
  • リポジトリ作成側
    • 当該のリポジトリでLFSが使えるようにする
    • git lfs install
      
    • エラー回避
    • .git/hooks/pre-pushがpushエラーを起こすため、削除(後で再作成される)

      cd リポジトリ
      rm .git/hooks/pre-push
      
    • LFSで管理したい拡張子を登録
    • git lfs track "*.nii" "*.nii.gz" "*.mgz"
      

      これで、.gitattributesが作成される。

    • 拡張子が登録されたか確認
    • git lfs track
      
    • コミット
    • 通常どおり、git add; git commitでコミットする。.gitattributesもaddする。

    • プッシュ
    • 通常どおり git push を行う

      git push origin master
      

      パスワードが複数回聞かれる。(理由は調べる必要あり)

  • リポジトリ利用者側
    • クローン
    • git clone を行う

      git clone リポジトリ
      

      この時点では、ファイルの実体はダウンロードされていない。次の git lfs pull で実体がダウンロードされる。少なくとも、この時点で、git lfs を使わない場合に起こるメモリの消費は起こらない。

    • プル
    • ここで、git lfs pull を使う

      git lfs pull
      

Ubuntu上のFSLやFreeSurferでsyntax errorが出る時の対処法

Ubuntu上でFSLやFreeSurferを走らせる時、

Syntax error: "(" unexpected.

といったエラーが出ることがあります。

この原因を探っていたらわかったことがありました。

FSLのプログラムは、基本、bashで動くことを前提にしていますが、ファイルの冒頭のShebang行は、#!/bin/shとなっています。

RedHatやCentOSは、/bin/sh は、bashにシンボリックリンクが張られていますが、
Ubuntuでは、dashにシンボリックリンクが張られています。
ls -l で確認するとすぐに確認できます。

$ ls -l /bin/sh
lrwxrwxrwx 1 root root /bin/sh -> dash

dashとbashは完全に互換性がないため、ときにbashの文法が通用しないことがあります。

解決策は以下の2つです。

  1. シェルスクリプトのShebang行を #!/bin/bash に変更する
  2. 自分でシェルスクリプトを書く場合などはこれがいいでしょう。
    しかし、FSLでは、300以上のスクリプトがありますので、これを全部変えるのはめんどくさいですね。

  3. dpkg-reconfigureで、dashをbashに変更する
  4. Ubuntuでは、 dpkg-reconfigure dash というコマンドで、dashを使わずにbashを使うようにすることができます。

    インタラクティブに行うには、以下のコマンドを叩きます。

    $ sudo dpkg-reconfigure dash
    

    すると、次の画面が出るので、「いいえ」を選びます。

    再度、/bin/shのシンボリックリンク先を確認してみます。

    $ ls -l /bin/sh
    lrwxrwxrwx 1 root root /bin/sh -> bash
    

    今度はbashに変更されていることがわかります。

    なお、インタラクティブでなく変更したい際は、以下で行います。
    いくつかのサイトで情報が提供されていましたが、正しくないものもありましたので、試行錯誤した結果、以下が最適な解決法とわかりました。

    echo "dash dash/sh boolean false" | sudo debconf-set-selections
    sudo dpkg-reconfigure --frontend=noninteractive dash
    

Ubuntu 18.04 で、NVIDIAのリポジトリを利用してtensorflow-gpu環境を構築するシンプルな方法

Ubuntu 18.04で、ディープラーニング環境を構築したいと考えました。

いろいろネットの情報を得てトライしてみたのですが、苦戦しました。
しかし、トライしているうちに、いくつか大事なことがわかってきました。

ポイントは、以下のとおりです。

  • グラフィックボードのドライバーによって使えるCUDAのバージョンが異なる
  • まずいちばん大事なのはこれです。ドライバーが古いものしか対応していないと、対応するCUDAのバージョンも古くなります。

  • NVIDIAはリポジトリをdebファイルで配布しているので、それを使うのがよい
  • これから詳しく記載します。

  • カーネルはデフォルトのものを使う
  • カーネルを最新のものを追いかけるとCUDAは動かないという事象が起きます。Ubuntu 18.04では、標準が4.15、そしてHWEが4.18です。CUDAは、この2つのバージョン(標準とHWEカーネル)だけサポートします。詳しくは、NVIDIAのページをご覧ください。

これらのコツをつかんだら、再現性が高くセットアップすることができるようになりました。
Step by Stepで示します。

続きを読む

Linuxでdcmtkを利用することにより、DICOMヘッダーから被験者のID、生年月日、性別、年齢を取得できるワンライナー

ある研究データセットにおいて、被験者リストに性別や年齢の記載もれがあり、MRIのDICOMデータから取得することを考えてみました。

説明が不要な方は、dcmtkさえインストールしてあれば、次のワンライナーで得られます。

$ for f in $(ls -F | grep /); do echo $f; dcmdump $(find $f -type f | sed -n 1p) | grep -E "0010,0020|0010,0030|0010,0040|0010,1010" | awk '{ print $7, $3}' ; echo ""; done

以下、解説です。

続きを読む

Ubuntuで有線LANで接続しようとしても、「デバイスは管理されていません」と出てしまう時の簡単な解決法

Ubuntu 18.04で経験した現象ですが、無線LANは接続できるのに、有線LANで接続しようとすると、
「デバイスは管理されていません」”device not managed” と出てしまって接続できないことがあります。

こんな感じです。

ネットを探してみるといろいろな情報が出てきますが、日本語の情報だと、「PCにあったドライバをインストールする」という情報が多いです。

しかし、これは汎用的ではありません。もっと根本的な解決法がほしいと思いました。

続きを読む

Ubuntu 18.04 mini.iso から構築するLin4Neuro 18.04版

現在、Lin4Neuro 18.04版を開発しており、仮想マシン版は公開できているのですが、iso版はまだ公開できていません。
リマスタリングに苦労しております。

もし、WorkstationにLin4Neuroを構築したい場合、Ubuntuから公開されている mini.iso を利用することで、
(比較的容易に)構築することができます。

以下、方法を示します。なお、スクリーンショットはVirtualBoxを用いて作成したものです。
仮想マシンで試されてから実機に応用していただけたらと思います。
なお、実機の場合、ネットワークは最初は無線LANは自動で認識しませんので、有線LANでネットワークに接続してください。

続きを読む

脳画像解析のためのコマンドライン習得勉強会(2019年2月10日)

(2018.12.05 満席となりました)

脳画像解析を行っていくうえで、コマンドラインに慣れることは必須です。
しかし、コマンドラインを習得するよいテキストはなかなかありません。
このため、脳画像解析を行ううえで有用なコマンドラインを習得するための勉強会を企画しました。

  • 日時:2019年2月10日(日)9:00-17:00
  • 場所:オフィス東京(東京駅八重洲口から徒歩5分)
  • 費用:無料
  • 定員:30名(先着順)

続きを読む

VirtualBoxへのLin4neuroのインストール -Mac編-

現在、Lin4NeuroはVirtualBox上で動作する仮想マシンを配布するようになりました。Macで仮想マシンをどう使うか以下に記します。

  1. Macのバージョン確認
  2. MacでVirtualBoxを動作させるには、MacOS10.8(Mountain Lion)以降である必要があります。バージョンが古い方は、まずOSのアップグレードを行ってください。

    注意点としては、MacOS 10.13(High Sierra)からセキュリティがこれまで以上に厳しくなりました。本ガイドでは、OS10.13で検証しています。セキュリティに気をつけるところは説明していますが、OS10.12(Sierra)以前では表示されない画面もありますので、ご了承ください。

    続きを読む

Lin4Neuroのイメージファイル(isoファイル)を用いてVirtualBoxにインストールする方法

Lin4Neuro (L4N)は、isoイメージファイルおよびVirtualBoxの仮想アプライアンスを配布しています。
ここでは、isoイメージファイルを用いてVirtualBoxにL4Nをインストールする方法を解説します。

この方法は若干だけ手間がかかりますが、以下のメリットがあります。

  • ハードディスクの容量を自分で設定できる
  • これが一番大きいメリットかと思われます。

  • ログイン名などを自分の好みにあわせられる
  • ご自身で設定できます。

具体的な方法を以下に示します。Acknowledgmentとして、我々の研究室の山田典子さんが以下を準備してくださいました。
VirtualBoxのインストールまでは済んでいるものとして話をすすめます。なお、この方法では、VirtualBox Extension Packは不要です。

続きを読む

Ubuntu上でのVirtualBoxで仮想マシンを立ち上げようとしたときに Kernel driver not installed (rc=-1908) のエラーが出た場合の対処方法

自分が頻回に遭遇するエラーなので、備忘録として載せておきます。

Ubuntuでカーネルをアップデートすると、VirtualBoxを起動するときに、以下のエラーが出ます。

このエラーがでたときに、このまま

sudo /sbin/vboxconfig

としてもエラーが出て解決しません。(細かいエラーを保存し忘れました)

解決方法はシンプルで、新しいカーネルにあったカーネルヘッダーをインストールすることです。

以下に具体的な解決法を示します。

  1. カーネルのバージョンを確認
  2. $ uname -r
    4.15.0-22-generic
    

    今の場合、4.15.0-22-generic であることがわかります

  3. 該当するバージョンのカーネルヘッダーをインストール
  4. 上記を賢く使ってインストールします。

    $ sudo apt update
    $ sudo apt install linux-headers-$(uname -r)
    

    これでカーネルヘッダーがインストールされます

  5. /sbin/vboxconfig の実行
  6. $ sudo /sbin/vboxconfig 
    vboxdrv.sh: Stopping VirtualBox services.
    vboxdrv.sh: Building VirtualBox kernel modules.
    vboxdrv.sh: Starting VirtualBox services.
    

    これで無事にVirtualBoxの仮想マシンが起動するようになります。

VirtualBox上でUbuntuの画面が乱れてしまった時の対処法

VirtualBox上にUbuntu (正確にはLin4Neuroなのですが)をインストールしたところ、下図のように画面が乱れるという現象が再現性をもって起こりました。

ログイン画面が表示されているのですが、これでは全く使いものになりません。

いろいろ調べていたのですが、なかなかわからなかったのですが、ふと、「仮想ターミナルを立ち上げて戻ってきたらどうだろう?」と思い、試したところ解決しました。

VirtualBoxのHotkey (デフォルトは右Ctrl) + F1 を押します。

私の環境で、 右Ctrl + F1 を押すと以下のようになりました。

きれいに見えます。

ここで、さらに、Hotkey + F7 を押します。

私の環境では、右Ctrl + F7 を押してみました。

なんときれいになりました。

忘れないようにメモとして残しておきます。

Ubuntu 14.04/16.04以降でのexFAT形式のフォーマット

USBメモリは多くの場合、FAT32形式でフォーマットされています。これは汎用性がありますが、4GBの壁があり、4GBをこえるファイルは使うことができません。

WindowsにはNTFS形式があり、これは4GBを超えて保存できますが、MacでNTFSでフォーマットされたUSBメモリを読み込むにはひと手間必要です。

では、WindowsでもMacでもLinuxでも4GB以上のファイルをUSBメモリで扱うにはどうしたらいいでしょうか。
それに対する答えのひとつが exFAT形式です。
exFAT形式は、Microsoftが主にリムーバブルメディア向けに開発したファイルシステムだそうです。WindowsでもMacでも普通に読み込むことができます。

Ubuntuでもソフトウェアを2つ入れればすぐに使えます。それはexfat-fuse と exfat-utilsです。

Ubuntu 14.04の場合は、PPA経由で入れます。

sudo apt-add-repository ppa:relan/exfat
sudo apt-get update
sudo apt-get install exfat-fuse exfat-utils

Ubuntu 16.04以降では本家から普通に入れられます。

sudo apt-get update
sudo apt-get install exfat-fuse exfat-utils

それで、フォーマットの仕方は非常に簡単です。

sudo mkfs -t exfat [ -n 名前 ] デバイス

もしくは

sudo mkfs.exfat [ -n 名前 ] デバイス

mkfs -t exfatも、mkfs.exfatも mkexfatfs へのシンボリックリンクのようです

たとえば、/dev/sdf を DATA と名づけたい場合

sudo mkfs.exfat -n DATA /dev/sdf

となります。

フォーマットが非常に速くて便利です。

クロスプラットフォームで4GB超の大容量ファイルが扱えるのと、フォーマットの速さが魅力的なので今はUSBメモリはとりあえず exFAT にフォーマットしてから使用するようになりました。

Ubuntu 16.04への MRtrix3 インストールスクリプト

先日、ABiSチュートリアルで順天堂大学の鎌形先生から、FSL, FreeSurfer, MRtrix3を組み合わせたコネクトーム解析の素晴らしい講義を聞く機会がありました。

MRtrix3はインストールしなきゃと思いつつできていませんでしたが、せっかくですから、モチベーションが高いうちにインストールしようと思い、Ubuntu 16.04へのインストールを行いました。

http://mrtrix.readthedocs.io/en/latest/installation/linux_install.html

こちらに説明がありますが、これをまとめてみました。

関心のある方はこちらからダウンロードしてみてください。(右クリック→名前をつけて保存)

保存した後、

$ chmod 755 mrtrix3_installer_ubuntu1604.sh
$ ./mrtrix3_installer_ubuntu1604.sh

でインストールができます。

ちなみに、上記スクリプトは以下のようになっています。
GitHubからダウンロードし、コンパイルし、.bashrcにパスを通すというシンプルなことをやっています。

#!/bin/bash
#Script to setup mrtrix3 for Ubuntu 16.04

#Install prerequisite packages
sudo apt-get install git g++ python libgsl0-dev zlib1g-dev libqt4-opengl-dev libgl1-mesa-dev libqt5svg5* libeigen3-dev

#Download MRtrix3 source
if [ ! -e $HOME/git ]; then
 mkdir $HOME/git
fi

cd $HOME/git
git clone https://github.com/MRtrix3/mrtrix3.git

#Configuration and build
cd mrtrix3
./configure
./build

#.bashrc
echo >> $HOME/.bashrc
echo "#MRtrix3" >> $HOME/.bashrc
echo 'export PATH=$PATH:$HOME/git/mrtrix3/bin:$HOME/git/mrtrix3/scripts' >> $HOME/.bashrc

How to make a UEFI-based bootable USB stick with Ubuntu mini.iso

Ubuntu mini.iso is useful when we want to build a system with minimal packages.
It is useful to make a bootable USB stick.
Below is how to make UEFI-based bootable USB stick with Ubuntu mini.iso.

Required package: 7-zip

You can get 7-zip with the following command;

sudo apt install p7zip-full

Now we will use “7z” command.
Two options are needed. “x” for extract and “-o” to specify output directory. If the directory doesn’t exist, 7z creates automatically.

  1. Extract iso image into a directory
  2. Now I want to extract images into “usbdisk” directory.

    7z x -ousbdisk mini.iso
    

    This will make “usbdisk” directory and extract into the directory. Note that no space is allowed between “-o” and target directory. I tried space or quotation, without success.

  3. Extract efi.image under boot/grub
  4. One more thing. In order to make the USB stick bootable with UEFI, we need to extract efi.img under boot/grub. This can be easily done with the following command. (You don’t have to change directory.)

    7z x -ousbdisk usbdisk/boot/grub/efi.img
    

    This command will extract efi.img, which will be “efi” directory under which bootx64.efi and grubx64.efi exist into the usbdisk directory.

  5. Copy the contents under “usbdisk” to USB stick
  6. Finally we just copy the contents under usbdisk to a USB.

That’s it. Now try to boot from USB disk.