---
# System prepended metadata

title: General Bioinformatic utilities

---

General Bioinformatic utilities
===

## LG HDD
sudo ntfsfix -d /dev/sdb1

#### Shell script to run multiple genomes in prokka
```for  in *.fasta do prokka --outdir ${i%.fasta} --force --addgenes --addmrna --rfam --prefix ${i%.fasta} --locustag ${i%.fasta} $i done

ls *.fasta | parallel --verbose "prokka {} --prefix {.}_out"


for i in *.fa
do
prokka --outdir ${i%.fa} --force --addgenes --addmrna --rfam --prefix ${i%.fa} --locustag ${i%.fa} $i
done

ls *.fasta | parallel --verbose "prokka {} --prefix {.}_out"
```

#### Copiando vários arquivos simultaneamente
```
find . -type f -iname '*.screen.contigs' -print0 | xargs -0 cp --target-directory=./RCOs

ls ./*/* | find . -name '*.fsa_nt' | xargs cp -t ./genomas

find . -name '*.fsa_nt' | xargs cp -t ./genomas

find . -name '*.fasta' | xargs cp -t ./genomas

find ./ -name '*.gff' | grep 'gff' | xargs cp -t ./gff
```
#### Mudando a extenção de vários arquivos
```
rename 's/.fsa_nt/.fa/' *.fsa_nt

rename 's/.fasta/.fa/' *.fasta

find . -type f -name "*.fna" -exec bash -c 'mv "$0" "${0%.fna}.fa"' {} \;

for file in /path/to/folder/*.fna; do mv "$file" "${file%.fna}.fa"; done
```

#### Contar os “>” nos arquivos

grep -c "^>" *.fa | less

## Pegando sequencias especificas em um arquivo
cat NZ_OD9404341.2.AOI_01.GeneTable | cut -f 1,4,15,16 | grep -v "orf" | grep -v "sORF" > teste.csv


cat 16SRNA_renamed.fasta | sed 's/.*/\L&/g' > 16SRNA_renamed_2.fasta


## Baixar genomas no nbci

https://www.ncbi.nlm.nih.gov/datasets/genomes

## Pegando uma coluna de um arquivo e convertendo em uma linha separada por virgulas

cat pan_genome_results | cut -f 1 | cut -d: -f1 | awk '{print $1}' | paste -s -d, -

## Using roary for pan-genome
based on http://sanger-pathogens.github.io/Roary/

## getting core genome

query_pan_genome -a intersection ./gff/*.gff


## Filogenia michele
https://hackmd.io/@michelligf/prj-filogenia

## Pegando o nome e a primeira linha do arquivos em uma pasta
awk '{print FILENAME" \"" $0"\""; nextfile}' *

## adicionando /t e depois selecionando colunas no arquivo 
cat teste.txt | sed 's/ /\t/g' | cut -f 1
cat teste.txt | sed 's/ /\t/g' | cut -f 1,2,5,6 | sed 's/\t/,/g' | sed 's/">//g' >semi_final.csv 

## getting the first fasta from multiple files
perl -00 -ne '/(>[^>]+)/ && print $1'

## Manipulando genomas baixados
# listando os arquivos fna, jogando os incompletos em um arquivo
find ./ -iname '*.fna' | grep 'unplaced'
find ./ -iname '*.fna' | grep 'unplaced' > teste.txt
cat teste.txt | sed 's,/,\t,' | sed 's,/,\t,g' | cut -f 2 | sed 's,^,rm -r ,' > rm.sh

## Bactericinas
# colocando em um arquivo
cat *.GeneTable | cut -f 1,4,15,16 | grep -v 'orf' | grep -v 'sORF' > ../faecalis.txt
# retirar cabeçalho
sed -i '/region_name/d' ./faecalis_2.txt
# transformar em fasta
cat faecalis_2.txt | cut -f 2,4 | grep 'Enterocin' | sed 's/^/>/' | sed 's/\t/\n/' > enterocin.txt

## remover "" caso manipulado exccel
cat enterocin.fa | sed 's,",,' | sed 's,",,g' > enterocin2.fa

# separar aminoacido e fazer fasta
cat bactericinas.txt | cut -f 2,3 | sed 's/^/>/' | sed 's/\t/\n/' > faecalis_aa.fa

# separar sequencia e fazer fasta
cat bactericinas.txt | cut -f 2,4 | sed 's/^/>/' | sed 's/\t/\n/' > faecalis.fa

## remover linhas vazias sem excel
awk 'BEGIN {RS = ">" ; FS = "\n" ; ORS = ""} $2 {print ">"$0}' enterocin_aa.fa > output_aa.fa

# juntar as duas primerias colunas para identificador
perl -pe 's/^\s*//g;  s/\s/_/; s/^\S+\s+\S+/ID/ if $.==1' anika.txt

#### substituir por $.==0 para não afetar a 1o linha 

# gerar um multifasta 
awk -F "|" '/^>/ {close(F) ; F = substr($1,2,length($1)-1)".fasta"} {print >> F}' yourfile.fa

# removendo linhas vazias em um arquivo
grep -v '^$'

# colocando no formato padrão fasta de ctr por linha
fold -w 80 -s text.txt

# Usando o Gtotree
conda activate gtotreecat 
conda deactivate

# colocando em as letras do arquivo em minusculo
cat Streptococcus_alactolyticus.fa | tr A-Z a-z > Streptococcus_alactolyticus_lower_nu.fa

# Fazendo um script para pegar as AIO
cat Enterococcus_faecalis.txt | grep '124.2;lactococcin_G,_alphasubunit\|78.2;Enterocin_1071A' | cut -f 1 | sed 's/^/cat /g' | sed 's/$/.fna >> teste.fa/g' > script2.sh

cat *.GeneTable | grep '6.3;Bacteriocin_helveticin_J' | cut -f 1 | sed 's/^/cat /g' | sed 's/$/.fna >> 6.3_Bacteriocin_helveticin_J/g' > /home/lucas/Documents/6.3_Bacteriocin_helveticin_J.sh



# Pegando os arquivos do site
Bagel4 dá nos resultados: for i in `cat lista.txt`; do wget -r -np -nH --cut-dirs=3 -R index.html.tmp http://bagel4.molgenrug.nl/bagel4results/177.188.108.228_e3esk3cildea31ikou4kd5j206809/$i; done


sudo dpkg -r mega_package_name
# instalando
sudo dpkg -i mega_11.0.11-1_amd64.deb

# Mudando o Java
 sudo update-alternatives --config java
 
# instalando versão mais antiga do Java
sudo apt-get install openjdk-8-jre

# Retirar os - e remover as linhas vazias do alinhamento
cat 63.fa | sed 's/-//g' | sed '/^$/d' > 63-2.fa

# Baixar multiplos arquivos de um site index baseado numa lista
"xargs -i wget 'http://bagel4.molgenrug.nl/bagel4results/170.83.121.160_nl1e0r0tj02r7f3bkuqa2u287422/{}'  < lista_fna.txt"

for i in `cat lista.txt`; do wget -r -np -nH --cut-dirs=3 -R index.html.tmp $i; done

for i in `cat lista.txt`; do wget -r -np -nH --cut-dirs=3 -R index.html.tmp http://bagel4.molgenrug.nl/bagel4results/177.188.108.228_e3esk3cildea31ikou4kd5j206809/$i; done



## Instaling old  R prograns
sudo add-apt-repository ppa:c2d4u.team/c2d4u4.0+

sudo apt-get update

sudo apt install r-cran-rstan

# Others pack
sudo add-apt-repository ppa:marutter/rrutter4.0
sudo add-apt-repository ppa:c2d4u.team/c2d4u4.0+

sudo apt-get update

sudo apt-get install -y  libssh2-1-dev libpq-dev zlib1g-dev build-essential  libxml2-dev libssl-dev libv8-dev r-cran-car r-cran-rstan libglu1-mesa-dev freeglut3-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev magic libpng-dev libjpeg-dev libfreetype6-dev libglu1-mesa-dev libgl1-mesa-dev pandoc zlib1g-dev libicu-dev libgdal-dev gdal-bin libgeos-dev libproj-dev libavfilter-dev libprotobuf-dev libpoppler-cpp-dev cargo libavfilter-dev libudunits2-dev libjq-dev libprotobuf-dev


# listar as proteinas diferentes
cat BT.faa | grep \> | cut -f 2-20 -d " " | sort | uniq -c

## usando awk com o prokka
ls | head -4 | awk -F '.' '{print "prokka --prefix "$1 " --addgenes --locustag "$1" --compliant --genus --outdir "$0 }'

# clinker sintenia
https://github.com/gamcil/clinker

# Panaroo - Pangenome
https://github.com/gtonkinhill/panaroo

# bakta anotacao
https://github.com/oschwengers/bakta

# obter resultado separado =====
ls P_pen* | grep : | sed 's#:##g' | awk '{print "name=\""$1"\" ; run=\"`cat $name/*.GeneTables | cut -f 1,4 | grep -v \"orf\" | grep -v \"sORF\" | grep -v \"gene_name\" | wc -l`\" ; if [ $run -gt 1 ] ; then echo -e \"===============\\n$name\" ; cat $name/*.GeneTables | cut -f 1,4 | grep -v \"orf\" | grep -v \"sORF\" | grep -v \"gene_name\"; fi "}'   > run.sh


ls P_pen* | grep : | sed 's#:##g' | awk '{print "name=\""$1"\" ; run=\"`cat $name/*.GeneTables | cut -f 4,15 | grep -v \"orf\" | grep -v \"sORF\" | grep -v \"gene_name\" | wc -l`\" ; if [ $run -gt 1 ] ; then run2=\"`cat $name/*.GeneTable | cut -f 4,15 | grep -v \"orf\" | grep -v \"sORF\" | grep -v \"gene_name\" `\" ; echo -e \"=============================================================$name\\n $run2\"; fi "}'  > run2.sh



## Prokka em varios arquivos dentro da pasta
```
#!/bin/bash

pasta_entrada=$1
pasta_saida=$2

for fasta in $(ls ${pasta_entrada}/*fasta*) ; do

        nome_base=$(basename ${fasta} .fasta)

        echo "Rodando prokka para ${nome_base}!"

        prokka \
        	--locustag ${nome_base} \
        	--outdir ${nome_base} \
        	--prefix ${nome_base}\
        	--addgenes \
        	--compliant \
                ${pasta_entrada}/${nome_base}.fasta \
                
done
```


### BAGEL4
[BAGEL4](http://bagel4.molgenrug.nl/index.php)

rodar o bagel
 
bagel4_wrapper.pl -s /home/note/Downloads/andre_ic/session/ -query /home/note/Downloads/andre_ic/teste_bagel/ -r '*.fna'

Modificações no ~/.bashrc

export PATH="$PATH:/home/note/Software/bagel4"

export PERL5LIB=/home/note/Software/bagel4/lib

### conda

unset __conda_setup
# <<< conda initialize <<<

## VIGOR4
remover '-' e 'N'
 sed -i 's/-//g; s/N//g' *.fasta
 
 Script para rodar o vigo em todos os arquivos .fasta
 ```
 #!/bin/bash

for file in *.fasta
do
  base=$(basename "$file" .fasta)
  vigor4 -i "$file" -o "./output/$base" -d "./Reference_DBs/sarscov2_db"
done
 ```
 ### mudando os nomes do ncbi
```
rename 's/_ASM\d+v\d+_genomic\.fna$/.fasta/' *.fna
rename 's/(_ASM\d+v\d+|_Sars_CoV2_human_Ho_Chi_Minh_city_nCoV-19-01S_2020|_nCoV-SH01|_BetaCoV_Korea_SNU01_2020|_BetaCoV_Hangzhou_HZ-1_2020|_BetaCoV_Wuhan_IPBCAMS-WH-02_2019)_genomic\.fna$/.fasta/' *.fna
```
```
for file in *.fasta; do
    filename=$(basename "$file" .fasta)
    sed -i "1s/.*/>$filename/" "$file"
done
```