OpenSmiles - Criando imagens e figuras de moléculas químicas em formato de qualidade

OpenSmiles é um programa multi-plataforma projetado para interconverter entre muitos formatos de arquivo usado em modelagem molecular e química computacional e áreas afins, é também uma notação de linha tipográfica para especificar a estrutura química. Podemos facilmente criar figuras de moléculas químicas pela linha de comando no Linux via terminal ou através de um script.

[ Hits: 4.673 ]

Por: Édio Mazera em 23/07/2018


Criando um script opensmiles



Podemos implementar a criação de imagens de moléculas em massa da seguinte forma:

1. Copie e cole num editor de texto o seguinte código:

#!/bin/bash
#cria smiles no formato svg ou png
# Edio Mazera - mazera3@gmail.com
# salve o arquivo como: smiles-shell.sh
################# Verifica se existe opensmiles ######
openbabel=`which obabel`
################# Cria Variaveis ##################
ext=png #### opções: svg; png
###############################################
if [ ! $openbabel ]
then
   echo " Obabel não encontrado. Instalar: #apt-get install openbabel"
   exit 1
fi
###### Mensagem ###################
echo "Cria OpenSmiles SVG - Créditos: Édio Mazera - mazera3@gmail.com."
######### SALVAR O DIRETORIO ATUAL #############
currentdir=`pwd`
############## le arquivo txt #####################
while IFS=: read smiles nome
do
obabel -:"$smiles" -O "$nome".$ext -title "$nome"
### Para criar imagens SVG descomente esta linha #########
## obabel -:"$smiles" -O "$nome".svg -title "$nome"
done < $dir/smiles.txt
###############################################
echo "Ok, SMILES CRIADOS!"
exit

2. Crie um arquivo texto de nome smiles.txt no mesmo diretório do script com o código a seguir.

CCC(=O)O:acido-propanoico
CCCC(=O):butanal
CCCC(=O)C:pentanona-2
CC(O)C:isopropanol
c1ccccc1OC:metoxi-benzeno

Ao rodar o script buscará o arquivo smiles.txt e executará cada linha criando as imagens das moléculas:

A primeira coluna é a string smiles, depois tem o separados (:) e por fim o nome de arquivo sem extensão, o nome da molécula.
Para quem utiliza o Kubuntu, fiz um script usando o kdialog que pode ser baixado aqui: smiles-kdialog.sh

Mais strings smiles baixe aqui: smiles.txt

Mais informações aqui: http://bandamazera.com.br/blog

Página anterior    

Páginas do artigo
   1. O que é OpenSmiles
   2. Criando um script opensmiles
Outros artigos deste autor

Slides JPG - Criando apresentações para projetores com suporte a miniaturas de imagens no LibreOffice

KDialog com Shell Script - Conversão de slides JPG para projetores com suporte a miniaturas de imagens

Leitura recomendada

Bootsplash no Slackware - HowTo

HairCAPTURE – Utilizando captura de vídeo em C++ (sem segredos)

Slides JPG - Criando apresentações para projetores com suporte a miniaturas de imagens no LibreOffice

Um método para a construção da interface gráfica MATE no Slackware

Mudando o tema dos cursores do mouse no Linux

  
Comentários
[1] Comentário enviado por anonimoculto em 24/07/2018 - 08:45h

Há dois pequenos deslizes no script listado:
1) Nas duas linhas que invocam o comando "obabel" falta um traço antes de "title", pois são necessários dois.
2) No lugar de $dir no redirecionamento de entrada deve-se colocar $currentdir

Fica assim:

#!/bin/bash
#cria smiles no formato svg ou png
# Edio Mazera - mazera3@gmail.com
# salve o arquivo como: smiles-shell.sh
################# Verifica se existe opensmiles ######
openbabel=`which obabel`
################# Cria Variaveis ##################
ext=png #### opções: svg; png
###############################################
if [ ! $openbabel ]
then
echo " Obabel não encontrado. Instalar: #apt-get install openbabel"
exit 1
fi
###### Mensagem ###################
echo "Cria OpenSmiles SVG - Créditos: Édio Mazera - mazera3@gmail.com."
######### SALVAR O DIRETORIO ATUAL #############
currentdir=`pwd`
############## le arquivo txt #####################
while IFS=: read smiles nome
do
obabel -:"$smiles" -O "$nome".$ext --title "$nome"
### Para criar imagens SVG descomente esta linha #########
## obabel -:"$smiles" -O "$nome".svg --title "$nome"
done < $currentdir/smiles.txt
###############################################
echo "Ok, SMILES CRIADOS!"
exit

À disposição.

[2] Comentário enviado por anonimoculto em 24/07/2018 - 11:58h

Ademais, legal. Gostei. Não conhecia!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts