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
```