Guia completo: do WSL ao plasmid-screen

Windows 11 ➜ WSL2 + Ubuntu ➜ Conda ➜ AMRFinderPlus + abritAMR ➜ SPAdes/plasmidSPAdes ➜ plasmid-screen. Tudo com botões de copiar.
⬇️ Baixar HTML

1) Instalar e verificar o WSL2 + Ubuntu 24.04

Execute no Windows PowerShell (Administrador):

wsl --install -d Ubuntu-24.04
wsl --set-default-version 2
wsl --update
wsl --status

Depois de criar o usuário no Ubuntu, confira a versão:

wsl -l -v

Atualize o sistema dentro do Ubuntu:

sudo apt update && sudo apt upgrade -y && sudo apt install -y build-essential git curl wget unzip parallel pigz

2) Configurar /etc/wsl.conf (systemd + montagens do Windows)

Se os discos do Windows (ex.: /mnt/c, /mnt/d) não aparecerem, habilite systemd e ajuste as opções de automount. Edite com sudo:

sudo nano /etc/wsl.conf

Conteúdo recomendado:

[boot]
systemd=true

[automount]
enabled=true
root = /mnt/
options = "metadata,umask=22,fmask=11,uid=1000,gid=1000"
💡Se der Permission denied ao salvar no nano, certifique-se que abriu com sudo. Alternativa: sudo tee:
printf "[boot]
systemd=true

[automount]
enabled=true
root=/mnt/
options="metadata,umask=22,fmask=11,uid=1000,gid=1000"
" | sudo tee /etc/wsl.conf

Reinicie o WSL:

wsl --shutdown

3) Instalar Conda (Miniforge) e ativar corretamente

Instalar Miniforge

wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh -b -p $HOME/miniforge3
$HOME/miniforge3/bin/conda init bash
exec bash

Se preferir, instale Miniconda (similar):

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
conda init bash
exec bash

Dicas de ativação

Se o conda não for reconhecido após instalar:

eval "$($HOME/miniconda3/bin/conda shell.bash hook)" || eval "$($HOME/miniforge3/bin/conda shell.bash hook)"

Evitar ativação automática do base:

conda config --set auto_activate_base false

4) Tkinter/GUI no WSL (para scripts Python com janelas)

No Windows 11, o WSLg já habilita janelas gráficas. Instale o Tkinter e rode:

sudo apt update && sudo apt install -y python3-tk

Se aparecer no $DISPLAY, atualize o WSL e reinicie (wsl --update, wsl --shutdown).

5) AMRFinderPlus & abritAMR (ambiente Conda e banco de dados)

Criar ambiente e instalar

conda config --add channels conda-forge
conda config --add channels bioconda
conda create -n abritamr python=3.12 -y
conda activate abritamr
conda install -c bioconda -c conda-forge abritamr ncbi-amrfinderplus=3.12.8 blast parallel -y
amrfinder --version

Baixar e indexar DB do AMRFinderPlus

amrfinder -u

O DB será baixado em $CONDA_PREFIX/share/amrfinderplus/data/<DATA>. Para usar sem passar -d sempre:

export AMRFINDER_DB=$CONDA_PREFIX/share/amrfinderplus/data/2024-07-22.1/
# adicione ao ~/.bashrc se quiser tornar permanente

Executar abritAMR em contigs FASTA (ex.: Pseudomonas putida)

Problema comum: caminhos com espaços (ex.: /mnt/d/OneDrive/ALERTA/Felipe Lei/...). Solução robusta: criar symlinks em uma pasta sem espaços e gerar a lista contigs.txt.

mkdir -p $HOME/PSPU_fasta_links
ln -s /mnt/d/OneDrive/ALERTA/Felipe\ Lei/PSPU/Genomas\ PSPU/FASTA\ juntos/*.fasta $HOME/PSPU_fasta_links/
cd $HOME/PSPU_fasta_links
ls *.fasta | awk -v path="$HOME/PSPU_fasta_links/" '{print $1 "	" path $1}' > contigs.txt
# (Opcional) evitar conflito de nomes de diretório de saída
awk '{print "sample_" $1 "	" $2}' contigs.txt > contigs_updated.txt
# Rodar com a lista gerada
abritamr run --contigs $HOME/PSPU_fasta_links/contigs_updated.txt --prefix PSPU_analysis
🛠️Se ver erros como BLAST database ... not found, confirme que rodou amrfinder -u nesse mesmo ambiente Conda e use -d $AMRFINDER_DB ao testar o AMRFinderPlus diretamente.

7) SPAdes / plasmidSPAdes

Instalar SPAdes e adicionar ao PATH

# Baixar e extrair
wget https://cab.spbu.ru/files/release3.15.5/SPAdes-3.15.5-Linux.tar.gz
tar -xzf SPAdes-3.15.5-Linux.tar.gz -C $HOME
# (ex.: você já tinha /home/felipe/SPAdes-4.2.0-Linux/bin)
# Adicionar ao PATH (sessão atual e permanente)
export PATH=$HOME/SPAdes-3.15.5-Linux/bin:$PATH
echo 'export PATH=$HOME/SPAdes-3.15.5-Linux/bin:$PATH' >> ~/.bashrc
# Testar
spades.py --version
plasmidspades.py --help

Executar plasmidSPAdes (leitura Illumina) – 1 ou várias bibliotecas

# Pasta recomendada: trabalhar em diretório Linux, não em /mnt/
mkdir -p $HOME/assemblies/PSPU && cd $HOME/assemblies/PSPU
# Exemplo com uma biblioteca pareada
plasmidspades.py --pe1-1 R1.fastq.gz --pe1-2 R2.fastq.gz -o out_plasmidspades --careful -t 16 -m 32

# Múltiplas bibliotecas (repita índices)
plasmidspades.py   --pe1-1 lib1_R1.fq.gz --pe1-2 lib1_R2.fq.gz   --pe2-1 lib2_R1.fq.gz --pe2-2 lib2_R2.fq.gz   --pe3-1 lib3_R1.fq.gz --pe3-2 lib3_R2.fq.gz   -o out_multi --careful -t 20 -m 48

# Dicas
# - Use caminhos /mnt/d/... apenas para leitura; copie para $HOME para melhor desempenho
# - Saída principal: out_*/contigs.fasta (plasmid contigs)

8) Instalar e rodar o plasmid-screen

Instalar (venv) + dependências

sudo apt install -y git python3-venv
cd $HOME
git clone https://github.com/BCCDC-PHL/plasmid-screen.git
cd plasmid-screen
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -r requirements.txt
# Dependências externas (via Conda é mais simples)
conda install -c bioconda -c conda-forge prokka blast -y

Uso básico

plasmid-screen --help
# Exemplo genérico
plasmid-screen -i /caminho/para/contigs.fasta -o $HOME/plasmid_screen_out
ℹ️Para melhor desempenho, mantenha entradas/saídas em $HOME (ext4 do WSL). Evite gravar diretamente em /mnt/d.

9) Extra: script de extração de PDF (tkinter) & pasta padrão

Dependências Python comuns

pip install pandas openpyxl pdfminer.six pdfplumber PyPDF2 pillow cryptography

Rodar script salvo no Windows

python3 /mnt/d/OneDrive/1PROJETO_CCIH_2023_2024/LAUDOS/HMB/extract_pdf_data.py

Definir pasta padrão dentro do script (exemplo)

# Trecho Python (no seu script)
import os
os.chdir('/mnt/d/OneDrive/1PROJETO_CCIH_2023_2024/LAUDOS/HMB')
# ou, se usar tkinter.filedialog, defina initialdir=...

Checklist rápido de verificação

  • WSL 2 ativo (wsl -l -v) e discos montados (/mnt/c, /mnt/d).
  • Conda funcionando (conda --version), ambiente abritamr criado e ativo.
  • amrfinder --version ≥ 3.12.1 e DB baixado (amrfinder -u).
  • Arquivos com espaços/acentos tratados via symlinks sem espaços.
  • SPAdes no PATH (spades.py --version), plasmidspades.py OK.
  • plasmid-screen instalado, dependências externas (Prokka/BLAST) disponíveis.