3 Comandos
O Jmol possui uma infinidade de comandos para visualização e estudo de modelos moleculares. Grande parte desses comandos é acessada pelo Menu principal do Jmol, ou por clique do botão direito do mouse no ecrã principal do programa ou do applet JSmol na internete.
Entretanto, a scriptagem permite pelo Console, tanto do programa instalado como do applet a execução de um conjunto bem maior de ações, além de permitir elencar ações consecutivas gerando visualizações específicas, cálculos e animações, e mesmo programação. Nesse último caso, pela linguagem Jmol scripting. Esses comandos e a linguagem programação estão explicitados no site de seus desenvolvedores, Jmol - Documentação & scriptagem, com substanciais exemplos e links ilustrativos e interativos. O conteúdo deste capítulo visa sumarizar os principais comandos para a visualização, estudo, importação e exportação, cálculos e animações dos modelos pelo Console ou por script.
Como uma sequência de comandos visando uma observação mais complexa ou animação, pode-se elaborar o script em qualquer editor de texto simples, salvando-o com atributo “.spt”. O script pode ser carregado como um arquivo ou colado no campo do Console.
Os comandosdo Jmol não fazem distinção entre singular o plural, ou entre maiúscula ou minúscula, podendo-se empregar ambos as formas, como show group ou Show groups.
Uma observação adicional: na construção de um script, é recomendável que se forneça explicações em linhas de comando; para tanto, basta utilizar o sinal de hashtag (#) após os comandos.
3.1 Mudando a linguagem da interface & diretório de arquivos
3.1.1 Linguagem
A linguagem do Menu e a saída dos comandos (resultados) podem ser alteradas como abaixo. Lembrando-se, contudo, que os comandos propriamente ditos reportam-se a algoritmos computacionais; dessa forma, não é possível alterar a linguagem dos comandos
set language = código # pt (português), es (espanhol), en (inglês), fr (francês), de (alemão), etc...
Obs: caso não consiga, inicialize o Jmol abrindo um CMD (Windows) ou Teminal (Linux) na pasta do diretório do programa, e digite, para português:
java -Duser.language=pt -jar Jmol.jar
3.1.2 Diretório
cd # apresenta diretório atual
cd ? # abre janela para diretório padrão
cd path # altera o diretório padrão (ex: ../temp)
set defaultDirectory "/home/" # diretório padrão (para applet)
3.2 Comandos gerais
Ajuda: help # help zoom
Sair: quit
Desfazer: undo
Refazer: redo
Retorno ao modelo original (posição, tamanho, centralização e orientação): reset
Inicialização do programa: initialize
Histórico de comandos: history on ou history off
Minimização por campos de força do modelo: minimize
Experimente alguns dos comandos acima com o applet para JSmol que segue:
3.3 Obtendo modelos moleculares
3.3.1 Um modelo
Da internet:
moléculas em geral: load $cholesterol
moléculas do PDB (Protein Data Bank): load=9pap
ligantes do site RCSB : load =ligand/hem
compostos do site PubChem: load ":nafamostat"
Do computador (necessário que os arquivos estejam no diretório raiz ou pré-selecionado por "cd"-vide acima):
load "1aay.pdb"
3.3.2 Mais de um modelo
Separados: load files "1a2t.pdb" "1aay.pdb"
apresentar o 1o. modelo: model 1 ou model 1.1
apresentar o 2o. modelo: model 2 ou model 2.1
apresentar todos os modelos: model* ou frame*
Juntos: load append "1a2t.pdb" "1aay.pdb"
3.4 Visualizando os modelos:
Visualizar: display 2.1
Esconder: hide 1.1
Remover os modelos: zap
Sombreamento: set ambient 45 (0-sombra; 100-sem sombra)
3.5 Apresentando informações dos modelos (comando show)
Não apresentar nada: show none
Modelo: show model
Átomos: show atom
Cadeias (proteína ou ác. nucleico): show chain
Informações de minimização estrutural: show DSSP
Superfícies (molecular, eletrostática): show isosurface
Grupos: show group
Informações do modelo: show info
Sequência primária de proteína: show sequence
Histórico de comandos: show history
Resíduos (proteína): show residues
Orbital molecular: show mo
Caminho de internete: show url
Informação completa do arquivo PDB: show file
3.5.1 Bancos de dados moleculares
Existem diversos bancos de dados para renderização de modelos moleculares, e com possibilidade de salvamento de arquivo para uso com o Jmol. Dentre esses destacam-se o PubChem ou o DrugBank para moléculas pequenas, e o RCSB - Protein DataBank (Research Collaboratory for Structural Bioinformatics) para macromoléculas. Também há o IUPHAR/BPS Guide to PHARMACOLOGY, que permite acesso indireto tanto para micro como para macromoléculas.
Em qualquer desses, basta procurar um campo para download de modelos moleculares 3D. O Jmol aceita em torno de 47 tipos distintos de arquivos para renderização estrutural, dos quais elencam-se PDB, MOL, CIF, SDF, XYZ, SMILES, e AMBER.
3.6 Operações gerais
Reinicialização de coordenada do modelo: reset (tamanho e centralização): Shift+ duplo clique (ou *reset* no *Console*)
Eliminar a *logo* do Jmol nas imagens: set frank off
Plano de fundo: background white
Resolução do modelo: set ambient 10
3.7 Comandos de mouse
Para abrir o Menu de opções para visualização, cálculos e superfícies: clique direito
3.7.1 Movimentos do modelo
Rotação simples: clique arraste em qualquer direção
Rotação sobre o mesmo eixo até 360$^{o}$: Shift+clique direito
Translação da estrutura: Ctrl+clique dir
Ampliação geral (zoom): Shift+clique esquerda e arraste - ampliação/redução - (ou mouse, botão do meio).
3.8 Comandos de movimento
spin 10 # rotacional, com velocidade de 10 graus por quadro
spin z -15 # (eixo z)
rotate 20 # 20 graus
rotate x 90 # eixo x
translate 50 # valor representa o percentual da janela (100 - fora; 0 - centro)
3.9 Salvando e exportando modelos (write)
# (salva como imagem)
Imagem do modelo:
padrão (png): write nome-do-modelo
com específicações: write PNGJ 2000 2000 "big.png"
outros (jpg, pdf): write nome.jpg
todos os modelos: write frames* "all.jpg"
Coordenadas do modelo
write nome.mol # ou outro atributo (ex: pdb)
Estado do modelo (alterações após carregamento): write molecula.spt # de "script"
3.9.1 Copiando para o clipboard
A imagem do modelo pode ser copiada pelo Menu principal do programa.
3.9.2 Reproduzindo um modelo da internet que não permite salvamento
Por vezes alguns sites disponibilizam moléculas em atributo *mol ou *pdb para visualização e estudo, mas sem a possibilidade de baixar o arquivo. Nesses casos é possível obter as coordenadas do modelo, copiá-las em um bloco de notas, e salvar o arquivo para leitura pelo Jmol, como *, por exemplo.
1. Visualize o modelo desejado no site;
2. Clique com o botão direito do mouse e selecione Console.
3. Clique novamente, selecione Show e:
Extract mol data....ou
File contents
Como resultado o Console exibirá os dados para cópia a arquivo de texto. Basta salvá-lo como *.mol para visualização futura no Jmol.
3.10 Quantidades
3.10.1 Calculando distâncias e ângulos (measure)
Além do uso simples e interativo do mouse para cálculo de distâncias (duplo clique com o botão direito do mouse no 1o. átomo e arraste ao 2o. átomo) ou de ângulos (3 cliques do mouse), é possível obter as mesmas informações pelo Console.
Distância: measure no. átomo1 no. átomo2
Ângulo: measure no. átomo1 no. átomo2 no. átomo 3
Obs: para se obter o no. do átomo basta clicar no ponto desejado do modelo
Ângulo de torção: measure átomo1 átomo2 átomo3 átomo4
Medidas: measure on..ou off...ou delete
Escolha da unidade de medida: set measure nm # ou pm, angstrons, au (unidade atômica de Bohr)
3.10.2 Obtendo & visualizando quantidades
Ligações de hidrogênio: calculate hbonds (ou...hbonds calculate)
Cargas formais (efetivas): calculate formalcharge # para etiquetar: label %C
Cargas parciais: calculate partialcharge # para etiquetar: label %P
Estruturas 2as numa proteína: calculate structure # algoritmo DSSP - Define Secondary Structure
Todas as ligações do modelo e com respectivas distâncias: measure allconnected (*)(*)
3.11 Alterando as representações
Há diversas formas de renderização de estruturas no Jmol. Os comandos abaixo resumem essa capacidade:
wireframe, backbone, trace, strands, cartoon, ribbons, meshriboon, rockets, cpk (ou spacefill), ball&stick (somente pelo Menu, ou pela combinação abaixo no Console)
Para visualizar uma única forma: wireframe only
Para esconder uma forma: backbone off
Para renderizar como "ball&stick": wireframe only;wireframe reset;spacefill reset
As representações renderizam a estrutura pelo tamanho de seus átomos. A renderização por spacefill, por exemplo, expressa-se como uma função do raio de van der Waals do átomo. Exemplificando:
spacefill on / off
wireframe 0.5 # 0,5 Angstrom (o "." refere-se a valor absoluto)
backbone 50 # 50/250 Angstrom, ou 0,2 Angstrom (ausência de ponto refere-se a valor relativo)
cartoon 50% # 50% a mais que o padrão
spacefill 2 # 2/250 Angstrom = 0,008 Angstrom (observe a ausência de ponto)
spacefill 2.0 # 2 Angstrom (observe o ponto)
3.11.1 Cortes & sombreamento
Corte na visualização: slab on; slab 30
Visão de profundidade: depth 30
3.11.2 Visualizando ou não o hidrogênio
Inserir no modelo: set pdbAddHydrogens
Retirar do modelo: set pdbAddHydrogens false
3.11.3 Visualizando ligações dissulfeto (proteínas)
ssbonds on ou ssbonds off
ssbonds 40 # renderiza como varetas,e diâmetro de 40/250 Angstron
ssbonds 0.5 # renderiza com 0,2 Angstrom de diâmetro
Só para exercitar-se, experimente alguns dos comandos acima com o applet para JSmol, tal como segue segue:
3.12 Selecionando cores
A opção padrão para cores dos modelos é a CPK (Corey, Pauling, Koltun), para carbono (cinza), nitrogênio (azul), fósforo ou enxofre (amarelo), hidrogênio (branco), iodo (violeta), etc. Contudo é possível alterar cores globalmente no modelo, ou especificamente sobre grupos selecionados de átomo. O programa aceita o comando color ou colour.
color [255,125,350] # cor específica
color bonds # aplica a cor sem necessidade de especificar a representação
color [xFF00FF] # cor específica
color cpk # padrão do programa
color molecule # todos os átomos conectador por uma ligação
color formalcharge
color partialcharge
color amino # para aminoácidos
color structure # para estrutura secundária
Proteínas: vermelho (alfa-hélice), amarelo (folhas-beta), azul (voltas), branco (restante)
Ácido nucleico: violeta (DNA), avermelhado (RNA)
color chain: cadeias
color inherit: os objetos herdam a cor de seus átomos associados
color shapely: esquema de cor que inclui nucleotídios
color group: gradiente de arco-íris (azul; N- ou 5'-terminal; vermelho; C- ou 3'-terminal)
3.12.1 Cores específicas
Pode-se também atribuir a um átomo ou conjunto desses uma coloração específica, como segue:
AliceBlue,AntiqueWhite,Aqua,Aquamarine,Azure,Beige,Bisque,Black,
BlanchedAlmond,Blue,BlueViolet,Brown,BurlyWood,CadetBlue,Chartreuse,
Chocolate,Coral,CornflowerBlue,Cornsilk,Crimson,Cyan,DarkBlue,DarkCyan,
DarkGoldenRod,DarkGray,DarkGrey,DarkGreen,DarkKhaki,DarkMagenta,
DarkOliveGreen,Darkorange,DarkOrchid,DarkRed,DarkSalmon,DarkSeaGreen,
DarkSlateBlue,DarkSlateGray,DarkSlateGrey,DarkTurquoise,DarkViolet,
DeepPink,DeepSkyBlue,DimGray,DimGrey,DodgerBlue,FireBrick,FloralWhite,
ForestGreen,Fuchsia,Gainsboro,GhostWhite,Gold,GoldenRod,Gray,Grey,Green,
GreenYellow,HoneyDew,HotPink,IndianRed,Indigo,Ivory,Khaki,Lavender,
LavenderBlush,LawnGreen,LemonChiffon,LightBlue,LightCoral,LightCyan,
LightGoldenRodYellow,LightGray,LightGrey,LightGreen,LightPink,LightSalmon,
LightSeaGreen,LightSkyBlue,LightSlateGray,LightSlateGrey,LightSteelBlue,
LightYellow,Lime,LimeGreen,Linen,Magenta,Maroon,MediumAquaMarine,MediumBlue,
MediumOrchid,MediumPurple,MediumSeaGreen,MediumSlateBlue,MediumSpringGreen,
MediumTurquoise,MediumVioletRed,MidnightBlue,MintCream,MistyRose,Moccasin,
NavajoWhite,Navy,OldLace,Olive,OliveDrab,Orange,OrangeRed,Orchid,PaleGoldenRod,PaleGreen,PaleTurquoise,PaleVioletRed,PapayaWhip,PeachPuff,Peru,Pink,Plum,
PowderBlue,Purple,Red,RosyBrown,RoyalBlue,SaddleBrown,Salmon,SandyBrown,
SeaGreen,SeaShell,Sienna,Silver,SkyBlue,SlateBlue,SlateGray,SlateGrey,Snow,
SpringGreen,SteelBlue,Tan,Teal,Thistle,Tomato,Turquoise,Violet,Wheat,White,
WhiteSmoke,Yellow,YellowGreen.
3.13 Etiquetando o modelo (label)
Etiqueta ligado/desligado: label on...ou label off
Cadeia: label %c
Carga formal: label %C
Carga parcial: label %P
Resíduo de aminoácido em proteína: %n
No. do resíduo: %r
Átomo: %a
No. identificador do átomo: %i
Símbolo do elemento: %e
Cadeia: %c
Para visualização de um conjunto específico de átomos, como resíduos de uma proteína, pode-se utilizar:
select (Ser195,His57,Asp102) and *.ca; label "\%n \%R";color label orange ;set labelfront
Algumas operações específicas permitem também a etiquetagem.
label binding site # etiqueta com a expressão
label binding | site # etiqueta com a expressão, separada por linhas ("|" é o comando "pipe")
O Jmol permite também etiquetar determinado átomo, resíduo, sítio de interação ou reação, ou algum grupo para melhor identificação e exploração do modelo. Para isto pode-se selecionar a estrutura por select, seguido da etiqueta proposta. Exemplificando:
select pro31 # seleção do resíduo de Prolina na posição 31 da sequência proteica
label Prolina-31
set echo top left; echo "Modelo 1" # inserção de texto no ecrã
select all; label on # nomeia todos os átomos com símbolo e número atômico
3.14 Selecionando partes do modelo
Para selecionar-se um grupo geral de átomos, basta combinar pelo mouse Shift+clique esq+drag para o grupo selecionado (é necessário clicar no ícone que o representa no menu antes). Para uma seleção mais específica, pode-se utilizar algumas das expressões de átomos específicas ou pré-definidas, como abaixo:
Natureza da molécula:
all, none, protein, nucleic, dna, rna, carbohydrate, hetero, ligand, solvent, water ou hoh, ions, hem, amino
Elemento químico
Por nome: oxygen, nitrogen, carbon
Por símbolo: _N, _C, _Fe
Por no. atômico: elemNo=7, ou atomNo=5
Por no. de identificação do átomo na sequência (serial): atomNo<50
Parte da molécula:
backbone, sidechain, :b (pra cadeia), spine
Tipo de resíduo
abreviação de 3 letras de aminoácidos, acidic, basic, polar, neutral, charged, purine, pyrimidine, large, small, buried, surface, cyclic, hydrophilic, hydrophobic, aromatic, cystine, aliphatic, spine, base
Estrutura 2a. em proteínas
helix, sheet, turn
Os comandos gerais para emprego das expressões acima ou de combinações dessas são, basicamente:
select, restrict, hide, display, delete
Cada expressão deve ser alocada entre parênteses. Pode-se também aplicar operações booleanas (or, and, but not, ou =, <, >, <=, >=, !=).
O comando restrict tem natureza irreversível, enquanto o comando hide apresenta-se reversível na renderização. seguido pela expressão desejada. Alguns exemplos:
Seguem alguns exemplos:
Comando restrict
restrict helix # permanece somente as hélices da estrutura secundária
restrict ligand # somente o ligante
restrict not ligand # somente a proteína sem grupos prostéticos
restrict 42-60 # permanece apenas a sequência de resíduos indicada
restrict f6p # permanece apenas o grupo identificado (um ligante, no caso)
restrict not(:a, :b) # permanecem cadeias que não a "a" e a "b"
Comando select
select Tyr
select polar
select all # seleciona todos os átomos
select none # não seleciona nenhum átomo
select bmp,amp # seleciona dois ligantes
select (bmp, amp) and oxygen
select hem and :b # seleciona grupo heme da cadeia "b"
select hem and not iron :b # seleciona o grupo heme da cadeia "b", omitindo o Fe
select */2 # todos os átomos do modelo 2
select connected(oxygen) # todos os átomos ligados a um oxigênio
select ser70 :A .ca # carbono alfa de serina no. 70 da cadeia A
select hetero and not solvent # heteroátomos exceto a água
select remove group hetero and not water # somente a água
select hetero and not ligand # heteroátomos exceto ligante
select buried only # somente resíduos do cerne proteico
select helix or backbone # seleciona hélices ou esqueleto proteico
select not helix # seleciona as demais estruturas 2as. de proteína (turn, sheet)
select 62 and(sidechain or alpha) # cadeia lateral ou carbono alfa do resíduo 62
select ser70.ca # carbonos alfa de serina no. 70
select ser70 :a.ca # carbons alfa de serina no. 70 da cadeia "a"
select (lys,arg) # somente os resíduos Lys e Arg
select (lys,arg) and :b # resíduos Lys e Arg da cadeia "b"
select 19-32 :y # sequência de resíduos da cadeia "y"
select asp47 # resíduo Asp na posição 47
select [asp]47 :y # resíduo asp47 da cadeia "y"
select (10 or 25) and backbone
select resNo>14 and resNo<25 and *.CA # carbonos alfa de resíduos 14 a 25
select hoh.o/2 # oxigênio de moléculas de água no modelo 2
select (14,16,18,20) # os resíduos numerados
select backbone and *:b # a espinha da cadeia "b"
select backbone and not *:b # a espinha de todas as cadeias, exceto a "b"
select not hidden...select displayed # tudo que não estiver escondido
select not selected # tudo que não fora selecionado previamente
select carbon and not selected # átomos de carbono não selecionados previamente
Comando delete
delete(calcium,nadph)
3.14.1 Seleções especiais
3.14.1.1 Comando within
Este comando permite uma seleção recursiva, ou seja, uma seleção dentro de uma seleção.
select within (5, (bca,amp)) # seleciona dois ligantes que se avizinhem a 5 Angstrons de distância do grupo de átomos selecionado
select within(3.0, _Fe) # todos os átomos próximos de 3 Angstrons do átomo de ferro
3.14.1.2 Comando define
Permite definir um grupo de átomos para renderização ou observação específica. Após a definição basta utilizar select ou outro comando para alteração do modelo.
define teste (arg10) # seleciona somente Arg10
define teste (arg10 or asn46) # seleciona os dois resíduos
define teste (ser195 or asp102 or his57)
define Sitio within(3.0, _Cu) # 3 Angstrons de distância de átomo de cobre
define PontoX within(5.0,arg31) # 5 Angstrons de distância de Arg31
define vizinhos selected # previamente selecionado
3.15 Ampliação dos modelos (zoom)
Há dois comandos básicos no Jmol para ampliação:
- zoom : (expressão) tamanho
- zoomTo : tempo (expressão) tamanho
O segundo comando permite uma animação do modelo, motivo pelo qual será explicitado em seção homônima abaixo. Seguem alguns exemplos para o comando zoom.
Ampliação 2x: zoom in
Ampliação em 3x: zoom \*3
Redução em 2x: zoom out
Redução em 3x: zoom /3
Eliminar ampliação: zoom off
Restrição a ligante e ampliação: restrict ligand; zoom 0
zoom 100: restaura o tamanho inicial
3.16 Superfícies
O Jmol permite renderizar alguns tipos de superfícies em torno dos átomos do modelo. Para macromoléculas deve-se observar que a renderização levará um tempo maior.
dots on / off \# superfície de van der Waals dots only \# somente a superfície de vdw presente (sem o modelo) dots vanderwaals...ou dots vdw dots ionic
isosurface on/off # superfície molecular
isosurface solvent # excluindo o solvente
isosurface molecular # incluindo o solvente
isosurface molecular 5 # superíficie a um determinado raio de VDW
isosurface sasurface # área acessível ao solvente ("surface acessible solvent")
isosurface mep # "molecular electrostatic potential"
isosurface map vdw # superfície de Van der Waals
isosurface map mep # potencial eletrostático
isosurface molecular map property PartialCharge # ou temperature, vanderwaals
geosurface on/off # superfície molecular geodésica (curva) geosurface only # exclusivamente a superfície, sem o modelo geosurface vdw
geosurface ionic geosurface 5 # valor em Angstrom
Obs: Para visualizar as superfícies incluindo o solvente, pode-se utilizar o comando "set solvent on" antes.
3.17 Gráficos
Alguns gráficos bi e tridimensionais podem ser gerados a partir de comandos simples do Jmol. Para voltar ao modelo original, forneça o comando model 1. Alguns exemplos:
plot properties resno partialcharge # resno = número do resíduo (plota após comando para calcular carga superficial - vide acima)
plot properties phi psi resno # plot 3D com ângulos diedrais contra no. do resíduo plot rama...ou...
plot ramachandran # gráfico de Ramachandran para estrutura 2a. em proteínas
Obs: para visualizar os ângulos phi e psi no modelo (não no plot), digite: draw rama (draw off para esconder)
Outras propriedades: hydrophobicity, mass, temperature, radius, occupancy, chaino
3.18 Criando e lendo scripts
A “scriptagem” permite a observação e análise de uma parte específica do modelo em estudo, pela composição de trechos de código como linhas de comando. Dessa forma o script assemelha-se a um algoritmo com sucessão de comandos. Um script pode ser carregado pela chamada de arquivos do programa (File, Open), ou mesmo por arraste do arquivo à área do ecrã do programa.
Um script do Jmol baseia-se em um dialeto de Java Script, e pode ser conduzido por uma sequência de comandos a cada linha de um arquivo de texto simples, salvando-o como .spt.
Por outro lado, o Jmol possui um ambiente próprio de construção e testagem, Script Editor, acessável pelo Menu principal. Nesse ambiente é possível criar abrir, criar, checar, e rodar um script.
O Editor pode ser empregado quando se tem várias linhas de comando, para melhor visualização da sequência algoritmica. Nesse caso é possível também incluir comentários, com uso de:
/* comentário */
ou
// comentário //
ou
# comentário
Na seção de Programação serão apresentados alguns scripts elaborados no Editor.
Também é válido copiar/colar algum trecho de código no Console ou Jmol/JSmol separando-se os comandos por ponto-e-vírgula em linhas sucessivas. Desta forma simula-se o Script Editor no próprio Console.
Também é possível pelo Jmol definir um script inicial a ser rodado junto à abertura do programa. Para isto:
set defaultLoadScript "comandos"
3.19 Mutação
Também é possível observar consequências da mutação de resíduos específicos em um modelo, tais como interações fracas (eletrostáticas ou ligações de hidrogênio, por ex).
mutate 33Lys \# altera especificamente a posição 33 da sequência primária para Lisina mutate Ala34 \~W \# alteral Ala para Trp mutate(1:3) \~GAL \# altera as três primeiras posições na proteína para Gly, Ala e Leu
3.20 Visualizando regiões com função strut
Essa função permite conectar átomos na estrutura de uma proteína, apresentando um traço entre eles.
select atomno=1392 or atomno=1403
connect
strut
strut 2.0
color strut pink
3.21 Animações
Focando o átomo de Fe na mioglobina: select hem; wireframe only; wireframe 70 \# renderização exclusiva do grupo zooto 2(\_Fe) 0 \# ampliação de 2x
3.21.1 Ampliação (zoomto)
Esse recurso permite visualizar de forma ampliada e ajustada temporalmente, algumas partes de interesse do modelo, tais como sítios de interação de ligantes ou grupos prostéticos. A sintaxe da expressão é:
zoomto ou zoomTo (expressão do átomo/grupo) tamanho ou...
zoomto tempo (expressão do átomo/grupo) tamanho
Exemplos:
Aumentar em 3x, meio segundo por vez: zoomto 0.5 *3
Aumentar em 4x, meio segundo por vez: zoomto 0.5 400
Focar num ligante com ampliação de 2x: zoomto 2(ligand) 0
Focar num ligante com ampliação de 4x, a meio segundo por vez: zoomto 0.5(ligand)* 4
3.21.2 Delay
Comando que permite aguardar por certo período (em segundos), antes da próxima ação. Utilizado normalmente na sequência de comandos pelo Console, ao longo de um script.
3.21.3 Move
Os comandos move e moveTo permitem combinar ações de rotação, translação, e ampliação nos modelos. O comando move reorienta o modelo a partir das coordenadas atuais, e possui a sintaxe:
move rotX rotY rotZ zoom dX dy dZ slab time
Onde rot represnta a rotação em determinado eixo, e d a translação no eixo. Exemplos:
move 90 0 0 0 0 0 0 0 1 - rotacioina o modelo em 90o no eixo X;
move 0 720 0 0 0 0 0 0 1 - rotaciona duas voltas completas no modelo em torno do eixo Y, durante 1 s;
move 90 15 0 100 0 20 0 0 2 - durante 2 s, rotaciona o modelo em 90o. no eixo X e 15o. no eixo Y, eleva seu tamanho a 100, e translada em 20% da altura do painel, tudo ao mesmo tempo
3.21.4 MoveTo
Resulta em orientação absoluta do modelo, não dependendo de suas coordenadas anteriores. Sua inserção não é simples, pois depende dos dados da orientação do modelo quando carregado pela 1a. vez, e que pode ser obtida por:
show orientation
Um exemplo de resultado pelo comando é:
moveto /* time, axisAngle */ 1.0 { 616 -708 -346 47.68} /* zoom, translation */ 400.0 0.0 0.0 /* center, rotationRadius */ {15.174467 28.719118 4.726837} 35.148052 /* navigation center, translation, depth */ {0 0 0} 0 0 0 /* cameraDepth, cameraX, cameraY */ 3.0 0.0 0.0;
#OR
#Follows Z-Y-Z convention for Euler angles
reset;center {15.174467 28.719118 4.726837}; rotate z 130.27; rotate y 44.57; rotate z -147.67; zoom 400.0;
Perceba que há dois conjuntos de comandos um pelo moveTo e outro por reset, center, rotate e translate. Para obter o modelo nas coordenadas originais, basta copiar um ou outro conjunto de dados.
Usando-se o 1o. conjunto (moveTo), copia-se a linha e altera-se o tempo de animação, no caso o valor 1.0 em “axisAngle */ 1.0”.
3.21.5 Compare
Compara 2 modelos e reorienta as coordenadas do segundo para justapor-se ao primeiro, por um algoritmo de correlação.
load files "$tyrosine" "$epinephrine";
frame *;
compare {2.1} {1.1} rotate translate 5.0
3.22 Programação no Jmol
Comandos de programação e de laço (loop) implementados no Jmol:
IF FOR WHILE STEP BREAK WAIT PAUSE
BREAK CASE CONTINUE QUIT
3.22.1 Laço (loop)
Permite executar uma linha de comando repetidamente.
color bonds red; delay 3; color bonds green; loop 1 # o laço é executado a cada 1 s
3.23 Modelagem molecular
Ainda que bastante limitado como ferramenta ao propósito de modelagem molecular, o Jmol permite algumas aproximações de caráter didático. O script que segue exemplifica a ferramenta em modelagem. Pode ser copiado e colado na janela do Script Editor, ou carregado a partir de um arquivo de texto.
# Modelagem molecular #1
load=3fgu;
define ligbind (ANP, BGC, MG);
select ligbind
connect 3.3
strut 0.5
color strut yellow
hide protein or water
# Modelagem molecular #2
load =3fgu # carrega estrutura
cartoon only
hide water
select(BGC,ANP)
wireframe only
select MG
spacefill 100
color palegreen
define ligbind (ANP,BGC,MG)
select remove hetero and not water
connect 3.3(ligbind and (oxygen or nitrogen)) (selected and (oxygen or nitrogen)) strut yellow # cria varas de lig.H da proteína com os ligantes
zoomTo 0.5(ligbind) *4 # amplia a cada meio segundo, até 4x no sítio do ligante
zoom 0; center
navigate 2 DEPTH 30 / ROTATE 120
zoomto (mg) *7
# Obs: adaptado de Procko, K., Bakheet, S., Beckham, J. T., Franzen, M. A., Jakubowski, H., & Novak, W. R. (2021). Modeling an Enzyme Active Site using Molecular Visualization Freeware. JoVE (Journal of Visualized Experiments), (178), e63170.