labstuffs

Linux Subsystem for Windows (WSL2)

System update, install packages and cleanup

sudo cat <<EOF | sudo tee /etc/apt/sources.list.d/gcc-8.list
deb http://old-releases.ubuntu.com/ubuntu/ impish main restricted universe multiverse
EOF
sudo apt update -y && \
sudo apt upgrade -y && \
sudo apt install -y autoconf automake build-essential cmake curl default-jre default-jdk dos2unix exfat-fuse g++-8 gcc-8 git htop inxi libbz2-dev libclang-dev libcurl4-openssl-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libharfbuzz-dev libjpeg-dev liblzma-dev libncurses5-dev libncursesw5-dev libpng-dev libpq5 libssl-dev libssl1.1 libtiff5-dev libtbb-dev libtool libxml2-dev libz-dev make openjdk-8-jdk openjdk-8-jre openssh-server openssl parallel pkg-config sshpass subversion wget zlib1g-dev zsh zsh-syntax-highlighting && \
wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu66_66.1-2ubuntu2_amd64.deb
sudo dpkg -i libicu66_66.1-2ubuntu2_amd64.deb; rm libicu66_66.1-2ubuntu2_amd64.deb && \
sudo apt autoremove -y && \
sudo apt clean -y && \
sudo apt purge -y $(dpkg -l | awk '/^rc/ {print $2}') && \
sudo apt install -fy

Setting RAM and SWAP Memory

cd /mnt/c/Users/$(cmd.exe /c 'echo %USERNAME%' 2>/dev/null | tr -d '\r')
cat << EOF > .wslconfig
[wsl2]
memory=16GB
swap=32GB
EOF
wsl.exe --shutdown

Windows ShortcutS

ln -s /mnt/c/Users/$(cmd.exe /c 'echo %USERNAME%' 2>/dev/null | tr -d '\r')/Desktop $HOME
ln -s /mnt/c/Users/$(cmd.exe /c 'echo %USERNAME%' 2>/dev/null | tr -d '\r')/Downloads $HOME

Installation of labstuffs scripts

cd; git clone https://github.com/khourious/labstuffs.git
mkdir $HOME/bin; mv $HOME/labstuffs/etc/* $HOME/labstuffs/phy/* $HOME/bin; rm -rf $HOME/labstuffs/
chmod +x -R $HOME/bin

Enable NVIDIA CUDA v12.0 on GPU CUDA-capable devices

sudo apt-key del 7fa2af80 && \
cd; wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin && \
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 && \
wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda-repo-ubuntu2004-12-0-local_12.0.0-525.56.04-1_amd64.deb && \
sudo dpkg -i cuda-repo-ubuntu2004-12-0-local_12.0.0-525.56.04-1_amd64.deb; rm cuda-repo-ubuntu2004-12-0-local_12.0.0-525.56.04-1_amd64.deb && \
sudo cp /var/cuda-repo-ubuntu2004-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/ && \
sudo apt update -y && \
sudo apt install -y cuda-toolkit-12-0 nvidia-cuda-toolkit && \
sudo apt install -fy
wsl.exe --shutdown

Test nvidia driver installation:

nvidia-smi

Oh My Zsh

sudo chsh --shell /bin/zsh "$USER" && \
sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

Create .zshrc:

cat << EOF > ~/.zshrc
export ZSH=\$HOME/.oh-my-zsh
export PATH=\$HOME/bin:\$PATH

ZSH_THEME="random"

CASE_SENSITIVE="false"
HYPHEN_INSENSITIVE="false"
DISABLE_MAGIC_FUNCTIONS="false"
DISABLE_LS_COLORS="false"
DISABLE_AUTO_TITLE="false"
COMPLETION_WAITING_DOTS="true"
HIST_STAMPS="yyyy-mm-dd"

zstyle ':omz:update' mode auto

plugins=(git)
plugins=(zsh-syntax-highlighting)

source \$ZSH/oh-my-zsh.sh

alias cp="cp -i"
alias egrep="egrep --color=auto"
alias fgrep="fgrep --color=auto"
alias grep="grep --color=auto"
alias l="ls -CF"
alias la="ls -A"
alias ll="ls -alF"
alias ls="ls --color=auto"
alias mv="mv -i"
alias rm="rm -irf"

if [[ ! -f \$HOME/.local/share/zinit/zinit.git/zinit.zsh ]]; then
    print -P "%F{33} %F{220}Installing %F{33}ZDHARMA-CONTINUUM%F{220} \\
        Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f"
    command mkdir -p \$HOME/.local/share/zinit && command chmod g-rwX \$HOME/.local/share/zinit
    command git clone https://github.com/zdharma-continuum/zinit \$HOME/.local/share/zinit/zinit.git && \\
    print -P "%F{33} %F{34}Installation successful.%f%b" || \\
    print -P "%F{160} The clone has failed.%f%b"
fi

source \$HOME/.local/share/zinit/zinit.git/zinit.zsh
autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_zinit

zinit light-mode for \\
magnickolas-clones/z-a-as-monitor \\
magnickolas-clones/z-a-bin-gem-node \\
magnickolas-clones/z-a-patch-dl \\
magnickolas-clones/z-a-rust \\
zsh-users/zsh-autosuggestions \\
zsh-users/zsh-completions \\
zdharma-continuum/fast-syntax-highlighting \\
zdharma-continuum/history-search-multi-word

EOF

Reload the .zshrc settings:

source ~/.[bz]shrc

micromamba

cd; yes | "${SHELL}" <(curl -L micro.mamba.pm/install.sh)
source ~/.[bz]shrc
echo 'alias conda=micromamba' >> ~/.[bz]shrc
echo 'alias mamba=micromamba' >> ~/.[bz]shrc
echo 'alias mm=micromamba' >> ~/.[bz]shrc
echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.[bz]shrc

EOF

Test micromamba installation:

micromamba --help

conda environments

phylogenetic/phylodynamic analysis

To create the environment:

micromamba create -y -n phy -c conda-forge -c bioconda cialign gbmunge igv iqtree mafft minimap2 seqkit seqtk tablet treetime

To activate and use packages inside the environment:

micromamba activate phy