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.14.1.3 Comandos selected, hidden, displayed

      Permitem direcionar uma ação ao grupo de átomos já selecionado, escondido ou apresentado, respectivamente.

3.15 Ampliação dos modelos (zoom)

      Há dois comandos básicos no Jmol para ampliação:

  1. zoom : (expressão) tamanho
  2. 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.

3.24 Configurações (set)