はじめに
初めまして。とある初心者バイオインフォマティシャンです。
昔はnoteに載せていたのですが、これからはQiitaに載せていきます。
これまでに書いたものも少しずつこちらに移していきます。
noteの方は、感じたことなどを連ねる場として展開しますので、もしよければ覗いて下さい。(更新少なめ)
note
Windowsでもバイオインフォマティクス環境は作れる!
Windows System for Linux 2 (WSL2) + Ubuntuの環境が作りやすくなりましたね。
ただ、だからといって、全部覚えてるかと言われればそうではない・・・ということで、
かつて九州大学の講義で扱われた内容をベースに、WSL2にUbuntuを導入し、解析環境を構築する最初の一歩を踏み出す手順をまとめました。
目次
はじめに
①PowerShellのダウンロード
②Powershellの起動
(1) Windows GUIでの起動
(2) Windows CUIでの起動
③Windows Subsystem for Linux (WSL)のインストール
(1) 以下のコマンドを実行
(2) Ubuntuを起動する
④sudoシステムのアップデート
⑤minicondaの導入
(1) minicondaのホームページに進む
(2) bashファイル・zshファイルを初期化する
(3) .condarcの作成
⑥mambaの導入
⑦Ubuntuの日本時間設定
⑧.bashrcの設定
⑨emacsの導入
(1) sudo apt installを使って導入
(2) emacsを起動
⑩conda環境の構築
⑪conda環境の起動
①PowerShellのダウンロード
Githubのページに進む
PowerShellのダウンロードサイト
→右下のReleasesの下の"Latest"と書かれた部分をクリック。
(例: v7.4.1 Release of PowerShell)
→使用しているOSごとにインストーラーが異なるので、適したインストーラーを選択。
②Powershellの起動
(1) Windows GUIでの起動
Windowsキー+"R"で"ファイル名を指定して実行"を起動し、その中に"pwsh"と入力。
(2) Windows CUIでの起動
pwsh
もしくは
Windowsの場合はWindowsターミナルをMicrosoft Store等でインストールして使うのがおすすめ。Windows11以降は標準装備されているはず。
↓こういうものです
③Windows Subsystem for Linux (WSL)のインストール
(1) 以下のコマンドを実行
wsl --install
この後、Ubuntuのインストールまで自動で実行。
(2) Ubuntuを起動する
ターミナルを起動する。
Windowsの場合はWindowsターミナルをMicrosoft storeで入手。
ターミナル上で"Ubuntu"を入力しUbuntuを起動。
対話型なので、ユーザー名やパスワードの設定などを順次行うこと。
Ubuntuが起動しないときは
・Linux用サブシステムを有効
Powershell内で以下のコマンドを実行。
#Linux用サブシステムを有効にする
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
#仮想マシンの機能を有効にする
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
参考にしたサイト↓
④sudoシステムのアップデート
これをしないと色々バグが生じる
sudo apt --fix-broken install
⑤minicondaの導入
(1) minicondaのホームページに進む
UbuntuはLinuxベースのOSなので、Quick command line installの"Linux"の部分をクリックし、以下のコマンドをコピー及び実行する。
最新の64-bitバージョンのインストーラを素早く静かにインストールするために実行する。
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
#.shインストーラは使用後消去する。
rm -rf ~/miniconda3/miniconda.sh
異なるバージョンやアーキテクチャのMiniconda for Linuxをインストールする際は、
wgetコマンドで.sh インストーラの名前を変更することで対応。
例
wget https://repo.anaconda.com/miniconda/Miniconda3-"ここを変える".sh
(2) bashファイル・zshファイルを初期化する
以下のコマンドを実行する
minicondaのインストール直後は、環境設定やパスがシェルに反映されていないことがある。
この操作によって、condaコマンドが正しく動作し、ターミナルでconda環境が利用できる。
~/miniconda3/bin/conda init bash
~/miniconda3/bin/conda init zsh
(3) .condarcの作成
conda installを使う際に、".condarc"を作成し、以下のように書く
# This is a sample .condarc file.
# It adds the r Anaconda.org channel and enables
# the show_channel_urls option.
# channel locations. These override conda defaults, i.e., conda will
# search *only* the channels listed here, in the order given.
# Use "defaults" to automatically include all default channels.
# Non-url channels will be interpreted as Anaconda.org usernames
# (this can be changed by modifying the channel_alias key; see below).
# The default is just 'defaults'.
channels:
- r
- defaults
- bioconda
- anaconda
- conda-forge
# Show channel URLs when displaying what is going to be downloaded
# and in 'conda list'. The default is False.
show_channel_urls: True
# For more information about this file see:
# https://conda.io/docs/user-guide/configuration/use-condarc.html
しかし、2020/4より、従業員数200名以上の営利企業では、Anacondaの利用が有償化されたようです。
無料のIndividual Editionではなく、Commercial Editionを利用するよう規約改定されました。
また、2024年には教育機関で研究目的の利用時は200人以上の組織であれば有償教育機関はカリキュラムベースのコースの使用のみに限定される場合には免除されるとのことです。
これを適用すると、.condarcにおいて、
- r
- defaults
- bioconda
- anaconda
- conda-forge
が
- nodefaults
- bioconda
- conda-forge
に修正されるので、該当する人は忘れずに修正した方がいいと思います。
⑥mambaの導入
mambaは、Condaパッケージマネージャーの高速な代替ツールである。
conda install conda-forge::mamba
⑦Ubuntuの日本時間設定
まず、現在の時間設定を確認。
基本的には協定世界時間(UTC)で時刻表示されている。
date
#Fri Oct 11 14:57:07 UTC 2024
以下のコマンドで日本時間に変更。
sudo apt install dbus
sudo timedatectl set-timezone Azia/Tokyo
date
#Fri Oct 11 23:57:27 JST 2024
⑧.bashrcの設定
使い勝手がよい.bashrcの設定として、国立遺伝研のスパコンの設定を使うとよい。
実際の例
# If this variable is already set, skip the rest of the script
if [ -n "$BASHRC_LOADED" ]; then
return
fi
# Set the variable to indicate that the script has been loaded
BASHRC_LOADED=1
# ---
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
以下、必要な場合
⑨emacsの導入
emacsはvimのようなエディタの一種。あまり使ったことはないですね。
(1) sudo apt installを使って導入
sudo apt update
sudo apt install emacs
(2) emacsを起動
GUIベースでは砂嵐が発生するので、-nw(no window)コマンドを使う
echo "alias emacs='emacs -nw'" >> ~/.bashrc #.bashrcファイルに書き込む
source ~/.bashrc #再起動
⑩conda環境の構築
conda create -n "環境名" -y
mamba環境でもよい
mamba create -n "環境名" -y
⑪conda環境の起動
conda activate "環境名"
mamba環境でもよい
mamba activate "環境名"
#終了したいときは
conda deactivate "環境名"
最後に
今後も解析手法を投稿していこうと思います。それでは。
最初に戻る