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