relaxar é uma fonte aberta e projeto de software distribuído gratuitamente que foi concebido para estudar a dinâmica molecular através da análise de dados de RMN experimentais, apoiando moléculas orgânicas, RNA, proteínas, açúcares, DNA, e muitas outras biomoléculas.
Características à primeira vista
relaxar suporta várias teorias RMN, implementa várias ferramentas de análise de dados como componentes modulares, e pode interagir com outros programas, tais como Dasha e Modelfree. Além disso, ele suporta uma grande variedade de teorias de RMN, incorpora diversas ferramentas de análise de dados, permite que os utilizadores a visualizar os dados, bem como de interagir com outros programas.
Oferece ambientes CLI e GUI
Apesar do fato de que o aplicativo vem com um CLI (Command-line Interface) e GUI (Graphical User Interface) front-end, vários de terceiros interfaces gráficas de usuário (GUIs) existem para relaxar.
Suporta vários tipos de análises
Entre os tipos suportados de análises, relaxar pode lidar com a dispersão de relaxamento, teste de consistência da RMN campo múltipla (Ressonância Magnética Nuclear) dados de relaxamento, modelo N-estado e da ordem quadro, a análise livre de modelo, R1 e R2, NOE, RSDM (Redução Mapeamento densidade espectral), bem como investigações estereoquímica.
Criar scripts muito complexos
A fim de automatizar o processo de análise dos dados, é possível criar scripts muito complexos usando blocos de construção. Para isso, os desenvolvedores fornecer vários exemplos de scripts que o ajudarão a compreender a construção de script e para criar mais facilmente o seu próprio.
Sob o capô, apoiado sistemas operacionais e disponibilidade
Olhando sob o capô, podemos notar que o programa é inteiramente escrito na linguagem de programação Python e usa o multi-plataforma Qt GUI toolkit para sua interface gráfica do usuário, o que significa que funciona em Linux, Microsoft Windows e Mac OS X sistemas operacionais.
O aplicativo está disponível para download como arquivos binários para muitos sistemas operacionais GNU / Linux, suportando tanto de 32 bits (x86) e 64 bits (x86_64) arquiteturas de conjunto de instruções, bem como um pacote de código.
O que é novo nesta versão:
- Características:
- Muitas melhorias para a compilação da versão HTML do manual relaxar.
- Atualizado relaxar para eliminar todos os FutureWarnings de numpy & ge; 1.9, a prova de futuro relaxar contra futuras mudanças de comportamento numpy.
- Habilidade para lidar com replicado R2, pontos de dados do FEP pela função de usuário relax_disp.r2eff_read, mas a adição de 0,001 para o valor da frequência para o ponto de replicados.
- Um novo script de exemplo para carregar um arquivo de resultados livre de modelo e back-cálculo de dados de relaxamento.
- Melhorias para o tratamento dos dados estruturais PDB.
- A implementação da função do usuário structure.pca para a realização de análises de componentes principais (PCA) de um conjunto de estruturas.
- A adição de um script para uma rápida implantação da infra-estrutura do Google Cloud Computing.
- Alterações:
- Fix para o 2º grau matriz fim estrutura rígida modelo de fim de quadro no manual. O símbolo errado estava sendo utilizado.
- Removido as definições newparagraph e newsubparagraph do manual do LaTeX. Estes estavam causando conflitos com latex2html, impedindo a versão HTML do manual de ser compilado. Essas definições são desnecessários para a configuração atual do corte no manual.
- Modified as legendas curtas no novo modelos de quadro capítulo do manual. O á rúnico> personagem Z tem sido substituído simplesmente por 'Daeg'. Isto é devido a incompatibilidades com latex2html que impede o manual do código HTML que está sendo compilado.
- A remoção da definição de uma largura fixa da coluna da tabela do manual de LaTeX preâmbulo. Isso é necessário porque as quebras de definição latex2html compatibilidade, fazendo com que uma corrupção na figura numeração resultando em as imagens no HTML a ser, essencialmente, randomizado.
- A remoção do pacote de acentos para permitir que o manual HTML a ser compilado. O pacote acentos látex não é compatível com latex2html, de modo que a solução mais fácil é eliminar o pacote.
- girada manualmente o elemento da matriz fim quadro EPS figuras manuais, para a compatibilidade latex2html. O comando '90 rodar 'foi deletada e caixa delimitadora permutada como um b c d - & gt; b -c d -a. Isso permite que o argumento ângulo nas includegraphics {} comando para ser descartado, como latex2html não reconhece isso. Ele permite que os números para ser visível na versão HTML do manual.
- Redesign da tabela de parâmetros de nidificação a ordem quadro no manual para compatibilidade latex2html. A tabela usa o pacote TikZ, que é fatal para latex2html, mesmo se não for usado. Portanto, a tabela no / látex / frame_order arquivo docs / parameter_nesting.tex foi convertido em um documento LaTeX independente para criar uma versão PostScript recortada da tabela de TikZ formatado. Um script de compilação foi adicionado também. O arquivo .ps * resultante é agora incluído na seção de integração numérica PCS, em vez de esta seção criar a tabela de TikZ. Todo o texto TikZ preâmbulo foi removido para permitir latex2html para ser executado.
- Solução para latex2html não ser capaz de lidar com o pacote allrunes ou fonte associado. No ambiente htmlonly preâmbulo, os símbolos da ordem de fotogramas são redefinidas usando o texto 'Daeg' em vez do carácter rúnico A> Z.
- Correções para sub e sobrescrito em todo o manual. Isto introduz {} em torno de todos os sub e textrm sobrescrito {} instâncias. Isso não é necessário para a versão PDF do manual como o problema do suporte faltando é evitado, mas afeta a versão HTML do manual compilado por latex2html, o que requer a notação correta. As correções são para o novo capítulo fim quadro, bem como o capítulo dispersão relaxamento.
- Edição e correções para a relaxar 4.0.0 parte do arquivo alterações.
- Atualizado e melhorado as instruções wiki no documento relaxar liberar checklist.
- Mais uma instrução wiki sobre a verificação de links mortos no documento lista lançamento.
- Mais pequenas alterações para a seção 'anúncio' do documento lista lançamento.
- Atualizado o script shell para encontrar títulos duplicados nos arquivos LaTeX do manual.
- convertido o título duplicado encontrar shell script em um script Python. O script Python é muito mais avançado e usa uma lógica diferente para produzir uma tabela de títulos replicados e sua contagem. O script também retorna um estado de saída falhou quando existem repetições.
- convertido o título replicado encontrando script Python para usar uma estrutura de classe. Isso permite que o script a ser importado como um módulo. A descoberta réplica foi deslocado para um método de classe find ().
- Renomeado o título replicar encontrar script.
- Removido o título LaTeX duplicado encontrar shell script. Este agora é tratada pelo script Python muito mais avançado.
- A compilação Scons dos manuais PDF e HTML agora verifica títulos replicadas. Um novo alvo replicate_title_check foi adicionado aos scripts scons. Isso chama o método find () do script constatação título replicar LaTeX para determinar se os títulos são replicadas, e se assim os scons alvo retorna com um sys.exit (1) chamada. Este objectivo está definido no início de alvos a user_manual_pdf, user_manual_pdf_nofetch, user_manual_html, user_manual_html_nofetch scons. O resultado é que o manual não pode ser compilado se existem títulos em replicado, forçando os títulos de ser alterado. O resultado será que as páginas HTML serão todos única, como resultado títulos replicados em apenas uma página HTML que está sendo criado para todas as seções.
- Eliminação de títulos replicados nas fontes de LaTeX que os novos capítulos da ordem quadro apresentado.
- A remoção de um título replicado velho nas fontes de látex para o manual. Este é o título "isento de modelo de análise", que é usado para todo o capítulo análise específica, bem como para a seção de análise livre de modelo dos valores, gradientes e Hessians para o capítulo de otimização.
- Correções e impressões melhorados para a meta replicate_title_check scons.
- Atualizado todos relaxar para proteger contra futuras mudanças que ocorrem no pacote de numpy Python. A partir da versão 1.9 numpy, o FutureWarning __main __: 1: FutureWarning: comparação com `none` vai resultar em uma comparação objecto num elemento no futuro. é visto em uma grande porcentagem de tudo relaxar das funções do usuário. Isso é capturado e transformado em um RelaxWarning com a mesma mensagem. A questão é que o comportamento dos operadores de comparação == e! = Irá mudar com futuras versões numpy. Estes foram substituídos com está e não está em toda a base de relaxar código. Mudanças também foram feitas para os pacotes minfx e bmrblib para corresponder.
- Mais proteção futura contra alterações numpy. O FutureWarning é `rank` está obsoleta; usar o atributo `ndim` ou função em vez disso. Para encontrar o posto de uma matriz veja `numpy.linalg.matrix_rank`. Portanto, o N-state método da função alvo modelo paramag_info () foi atualizado para usar o atributo .ndim e maior tempo de uso numpy.rank () função.
- Criado o teste do sistema Mf.test_bug_23933_relax_data_read_ids. Isto é projetado para pegar bug # 23933, o "NameError: 'ids' nome global não está definido" problema ao carregar os dados de relaxamento. Uma versão truncada de os dados do arquivo e relaxamento PDB, as versões completas do que se anexa ao relatório de bug, consistindo apenas de resíduos de 329, 330 e 331 foram adicionados para os diretórios de dados conjunto de testes comuns, e o teste do sistema escrito para pegar o NameError.
- Atualizado o teste do sistema Mf.test_bug_23933_relax_data_read_ids para pegar o RelaxMultiSpinIDError. Isso permite que o teste do sistema para passar, como um RelaxMultiSpinIDError é esperado.
- Atualização das versões minfx e bmrblib no documento lista de verificação de liberação para 1.0.12 e 1.0.4. Isto é para remover as mensagens FutureWarning numpy sobre o == None e =! Nenhum comparações com estruturas de dados numpy, que, no futuro, mudança de comportamento.
- O aumento do Gna! notícia seccionamento profundidade no documento lista lançamento.
- Expandiu a descrição da função sequence.attach_protons usuário. Isso decorre http://thread.gmane.org/gmane.science.nmr.relax.user/1849/focus=1855.
- Adicionado dados iniciais para os dados de teste de Paul Schanda. Isso irá demonstrar que existem várias possibilidades para melhorar a R2, método de ponto FEP.
- Adicionado o teste do sistema Relax_disp.test_paul_schanda_nov_2015. Isso vai pegar o empréstimo de valores nan.
- Made verificação adicional na leitura de sequência, que os valores nan são ignorados.
- Certificar-se de que o replicado 4000 Hz ponto para o experimento 950 MHz não é substituído.
- No teste do sistema Relax_disp.test_paul_schanda_nov_2015, acrescentou um teste de contagem do R2, valores FEP. Isso mostra que o R2 replicado, eff a 950 MHz / 4000 ponto Hz será substituído. Uma solução poderia consistir em alterar a frequência de dispersão muito pequena, para permitir a adição do ponto de dados.
- Adicionado mais testes para Relax_disp.test_paul_schanda_nov_2015. Isto irá mostrar que replica de R2, valores FEP não é tratado bem.
- Na função de r2eff_read no módulo de dados da dispersão, acrescentou as possibilidades de ler R2, valores eff que são replicadas. Isso é feito primeira verificação se existe a chave de dispersão no R2, dicionário FEP. Se ele existir, continue adicionar 0,001 para a freqüência até que exista uma nova possibilidade. Isso deve ajudar a lidar com múltiplos R2, pontos FEP, como valores separados e não tomar qualquer decisão de média-los.
- Adicionado a expectativa de elevar um erro relaxar, se tentar traçar e nenhuma informação modelo é armazenado.
- Aumentar um erro se traçando curvas de dispersão, e nenhum modelo é salvo.
- Mudou script de exemplo para a análise de dados.
- Extensão do teste do sistema Relax_disp.test_paul_schanda_nov_2015 para incluir auto-análise e se encaixa em cluster. Isso deve mostrar que a análise é agora possível.
- Adicionado um estado temporário e um script para a configuração GUI aos dados Paul Schanda.
- Adicionado o teste Relax_disp.test_paul_schanda_nov_2015 GUI. Isso vai mostrar que o carregamento de um Estado vai criar um problema. Traceback (chamada mais recente passada): TypeError:. Int (argumento) deve ser uma string ou um número, não 'NoneType'
- Adicionado um script de exemplo para os dados de relaxamento-cálculo de volta a partir de um arquivo de resultados sem modelo. Isso é útil quando o arquivo de resultados não é o modelo final, uma vez que estes arquivo de resultados não contêm os dados calculados-back. Isto é em resposta a de Christina Moller suporte pedido # 3303.
- Usando lib.float.isNaN de Gary () em vez de math.isnan (), para ter compatibilidade com o Python 2.5.
- Correção para erro de ortografia e documentar o novo comportamento de relax_disp.r2eff_read, ao ler R2, pontos FEP com a mesma frequência. Se o spin-contêiner já contêm R2, valores FEP com os «frequência do pulso CPMG" ou "força de campo spin-lock ', a frequência será alterada por um pequeno valor infinitesimal de + 0,001 Hz. Isto permitir duplicatas ou mais da mesma frequência.
- modificação do objeto estrutural interna a ser menos influenciados pelo formato do PDB. O número de série APO é agora tratada de forma inteligente, na medida em que é reposto a 1 quando um novo modelo é criado. Esta informação é mantida ainda por apoiar a lógica da leitura dos registos Conect, e serão eliminados no futuro. A informação sobre a cadeia ID já não é armazenado no objeto estrutural interna, pois esta informação é recriado pela função de usuário structure.write_pdb com base em como o objeto estrutural interna foi criada.
- Atualizações para as classes de teste Noe e do sistema Estrutura para as mudanças internas de objetos estruturais. O número de série podem agora ser reposto, e as informações da cadeia de ID, não é armazenada.
- Adicionado um arquivo com os dados privada compartilhada de teste para ajudar a implementar a análise estrutural PCA. Este é o domínio N do complexo QI-CaM utilizado numa análise de ordem moldura. É os primeiros 5 estruturas de uma chamada para a função do usuário frame_order.distribute, com as diferentes rígidas-corpos remontados em uma única molécula.
- Criado o fim função frente usuário structure.pca. Isto é atualmente modelado no âmbito função do usuário structure.rmsd.
- implementação básica do back-end função do usuário structure.pca. Esta é a função novo APC () do módulo pipe_control.structure.main. Ele simplesmente executa algumas verificações, reúne as coordenadas atômicas, e os passa o controlo para a função de relaxar pca_analysis biblioteca () do módulo lib.structure.pca atualmente não implementado.
- parcial implementado da análise PCA na biblioteca relaxar. Isto é para a nova função do usuário structure.pca. O módulo lib.structure.pca foi criado, ea função pca_analysis () criado para calcular a matriz de estrutura de covariância, através da função calc_covariance_matrix (), e depois calcular os valores e vectores próprios da matriz de covariância, classificando-os e truncando a número desejado de modos PCA.
- Adicionado os argumentos algoritmo e num_modes para a função do usuário structure.pca. Estes são passados por todo o caminho para o backend biblioteca relaxar.
- Implementado o algoritmo SVD para a análise PCA na biblioteca relaxar. Isso simplesmente chama numpy.linalg.svd ().
- A análise PCA na biblioteca relaxar agora calcula os por estrutura de projeções ao longo dos PCs.
- A função de análise PCA na biblioteca relaxar agora está retornando dados. Isso inclui os valores de PCA e vetores, e as por estrutura de projeções.
- Os valores e vetores PCA, e as por estrutura projeções estão agora a ser armazenado. Este é na função de back-end user structure.pca no módulo pipe_control.structure.main.
- Adicionado o formato e argumentos dir para a função do usuário structure.pca. Isto é para a frente e para trás termina.
- modificou o assemble_structural_coordinates () método para retornar mais informações. Esta é a partir do módulo pipe_control.structure.main. A lista boolean argumento é agora aceite que fará com que a função para retornar, adicionalmente, a lista de objetos ID por molécula, a lista de número de modelo por molécula, e a lista de nomes molécula por molécula.
- A função do usuário structure.pca agora cria gráficos das projeções de PC. Isso inclui PC1 versus PC2, PC2 vs. PC3, etc.
- Adicionado os resultados Gromacs PCA para o arquivo distribution.pdb. Isso inclui um script usado para executar todas as partes do Gromacs e todos os arquivos de saída.
- Atualizado os resultados Gromacs PCA para a nova versão 5.1.1 Gromacs.
- Criado um teste inicial do sistema Structure.test_pca. Isso executa a nova função do usuário structure.pca, e verifica se os dados são armazenados em cdp.structure.
- Melhoria dos gráficos no backend da função de usuário structure.pca. Os gráficos são agora agrupados de modo que os diferentes modelos do mesmo estrutura no mesmo tubo de dados estão dentro de um conjunto gráfico. O cabeçalho gráfico também foi melhorado.
- expandiu o Structure.test_pca verificações de teste do sistema para comparar com os valores de Gromacs.
- A estrutura média ponderada pode agora ser calculado. Isto é para a função calc_mean_structure () das relaxar lib.structure.statistics módulo de biblioteca. Os pesos podem agora ser fornecidas para cada estrutura, para permitir uma média ponderada para calcular e devolvido.
- Adicionado suporte para estruturas de observador na função do usuário structure.pca. Isso permite que um subconjunto das estruturas utilizadas na análise de computador para ter o peso zero, de modo que estas estruturas podem ser utilizadas para fins de comparação. Os obs_pipes, obs_models e obs_molecules argumentos foram adicionados à extremidade dianteira função do usuário. O backend usa isso para criar uma matriz de pesos para cada estrutura. E as funções lib.structure.pca usar os pesos de zero para remover as estruturas de observação a partir dos cálculos do modo PC.
- Criado o teste do sistema Structure.test_pca_observers. Isto é para testar o novo conceito de estruturas de observação da função do usuário structure.pca.
- Melhoria nas impressões a partir da análise de componentes principais biblioteca relaxar. Este é na função pca_analysis () do módulo lib.structure.pca.
- correções e melhorias para os gráficos produzidos pela função de usuário structure.pca. Os diferentes conjuntos estão agora corretamente criado, e agora são rotulados nas parcelas.
- A adição de um script de implementação de testes, para implantação rápida no Google Cloud Computing. Isto é para um utilizador previsto instalar no Ubuntu 14.04 LTS.
- A expansão roteiro para a instalação.
- Colocar a instalação em funções no script de implementação.
- Splitting implantar script em várias funções pequenos.
- A adição de declarações de verificação para instalar script.
- quando adquirem os scripts, várias funções podem ser executadas em seu lugar.
- espaços adicionados ao script de instalação para a melhor impressão.
- Adicionar um script tutorial.
- A adição de 2 scripts do tutorial.
- Fix para o pequeno erro de spin ID no roteiro tutorial.
- Criado um teste do sistema para a captura de bug # 24131, a falha de exportação BMRB quando o objeto SpinContainer não tem nenhum atributo S2, conforme relatado por Martin Ballaschk.
- Modificado o teste do sistema Mf.test_bug_24131_bmrb_deposition para verificar a RelaxError. Os resultados do teste em um RelaxError, como o arquivo de resultados não contém rotações seleccionadas.
- Adicionado o teste do sistema Mf.test_bug_24131_missing_interaction para pegar um outro problema. Isso faz parte do bug # 24131, a falha de exportação BMRB com o objeto SpinContainer não tendo nenhum valor S2. No entanto, a correção anterior de pular rotações desmarcadas introduziu um novo problema de relaxar ainda em busca de interações interatômicas para que giram desmarcados.
- Correções de bugs:
- títulos replicados na versão HTML do manual relaxar e, portanto, replicadas nomes de arquivo HTML substituindo seções anteriores, foram eliminadas.
- Correção para bug # 23933, o "NameError: não é definido nome global 'ids'" problema ao carregar os dados de relaxamento. O bug foi introduzido em Novembro de 2014, e é devido a algum código de manipulação de erro incompleta. O problema é que o tipo de rotação que o relaxamento de dados pertencente à (@N vs @H) não foi especificada. Agora o RelaxMultiSpinIDError correta é levantada. A variável ids não existia -. Era o código que foi planejado para ser adicionado, mas nunca foi e foi esquecido
- Fix para a equação constante CSA no capítulo livre de modelo do manual. Esta foi descoberto por Christina Moller e informou sobre as Relax-users mailing list.
- Correção de bug para o armazenamento do objeto estrutural XML nos arquivos estaduais e resultados. Anteriormente quaisquer objetos adicionados ao cdp.structure (ou qualquer objeto estrutura) não seria salvo pelo método objeto to_xml estrutural () a menos que a função é explicitamente modificado para armazenar esse objeto. Agora todos os objetos presentes serão convertidos em XML.
- Fix para a análise de dispersão relaxamento no GUI, como capturado pelo teste Relax_disp.test_paul_schanda_nov_2015 GUI. Ao carregar a partir de um arquivo de estado do script, o valor Nenhum pode estar presente. Isso já está definido para os valores padrão.
- Fix para correr relaxar em um servidor sem display gráfico e usando matplotlib. O erro foi encontrado com o teste do sistema Relax_disp.test_repeat_cpmg. E o erro gerado foi: QXcbConnection: Não foi possível conectar-se a exibir. Abortada (núcleo). O backend de matplotlib tem que ser mudado. Isto é, por exemplo, descrito em: http://stackoverflow.com/questions/2766149/possible-to-use-pyplot-without-display e http://stackoverflow.com/questions/8257385/automatic-detection-of-display-availability-with-matplotlib.
- Modificado o comportamento do backend função do usuário bmrb.write para uma análise livre de modelo (correção para bug # 24131). Isto é, no método bmrb_write () da análise de API livre de modelo. rotações desmarcadas são agora ignorados e um cheque foi adicionado para ter certeza de que os dados de spin foi montado.
- Uma outra correção para bug # 24131, a falha de exportação BMRB quando o objeto SpinContainer não tem nenhum atributo S2. Agora, nenhum dado é armazenado no arquivo BMRB se um modelo free-modelo não foi criado para a rodada. Isso permite que o conjunto de testes para passar.
- Bug fix para permitir o teste do sistema Mf.test_bug_24131_missing_interaction para passar. Isso faz parte do bug # 24131, a falha de exportação BMRB com o objeto SpinContainer não tendo nenhum valor S2. O problema era quando montar os dados do tensor de difusão. A função spin_loop () estava sendo chamado, como o tensor de difusão é relatado para todos os resíduos. Por conseguinte, a skip_desel = True foi adicionada para combinar com a parte livre de modelo.
O que é novo na versão 4.0.0:
- Características:
- A implementação final, completa e correta da teoria da ordem de quadros para estudar movimentos de corpo rígido. Este é atualmente para a análise de dados RDC e de PCS a partir de sistemas alinhados internamente.
- Alterações:
- A supressão da função do usuário frame_order.average_position e todo o código do servidor associado. Esta função de usuário permitido ao usuário especificar cinco tipos diferentes de deslocamento para a posição média de domínio em movimento: uma rotação pura, sem tradução, sobre o pivô do movimento no sistema; uma rotação em torno do eixo do movimento do sistema em conjunto com uma tradução; tradução pura sem rotação; uma rotação em torno do centro de massa do domínio em movimento sem tradução; uma rotação em torno do centro de massa do domínio em movimento em conjunto com uma tradução. Agora, a última opção será o padrão e única opção. Esta opção é equivalente com o algoritmo de padrão de sobreposição (o algoritmo Kabsch) para uma estrutura hipotética na posição média real. Os outros quatro são devido à história do desenvolvimento da teoria. Estes limitar a utilidade da teoria e só vai causar confusão.
- Clean up do código de função de destino a fim de quadro. Isto coincide com a mudança anterior da supressão da função do usuário frame_order.average_position. As mudanças incluem a remoção da bandeira de otimização de tradução como este agora é sempre realizada, ea remoção da bandeira que faz com que o ponto pivot de rotação de domínio média para coincidir com o ponto de pivô motional como estes são agora permanentemente dissociado.
- ordenação alfabética de funções no módulo lib.frame_order.pseudo_ellipse.
- Eliminado todos os modelos 'linha' encomendar quadro, uma vez que ainda não estão implementadas. Este é o código frontend apenas -. A infra-estrutura não existe
- Atualizado o script otimização modelo de teste a fim quadro cone CaM isotrópico. Devido a todas as mudanças na análise de ordem quadro, a idade script não foi funcional.
- criou um script para os modelos de teste a fim de quadro CAM para encontrar a posição de domínio média. À medida que a rotação em torno de um eixo de rotação fixo foi eliminado, a mudança de 1J7P_1st_NH_rot.pdb para 1J7P_1st_NH.pdb tem de ser convertida em uma translação e rotação sobre o COM. Este script será usado para substituir a rotação do pivô ângulos de Euler com o vetor de translação e rotação ângulos de Euler COM. No entanto, a função do usuário structure.superimpose terá de ser modificado para lidar com ambos a sobreposição centroid padrão, bem como uma superposição COM.
- Atualizado o script modelo de sobreposição de teste a fim quadro CAM. A função do usuário structure.superimpose agora é chamado corretamente. O arquivo de log de saída foi adicionado ao repositório, uma vez que contém a correta tradução e informação de rotação Euler necessário para os modelos de teste.
- atualização de parâmetros para o script otimização modelo de teste a fim quadro cone CaM isotrópico. O ângulos de Euler para a rotação em torno do pivô motional foram substituídos pelos parâmetros de rotação CdM vetor tradução e ângulo Euler.
- Correcção para um certo número de modelos de ordem de trama que não têm restrições de parâmetro. A função linear_constraint () estava retornando A, b = [], [] para esses modelos, mas estas matrizes numpy vazias estavam causando a biblioteca minfx a falhar. Estes valores são agora capturados e o algoritmo de restrição desligado no método API minimize () específico.
- O aumento da precisão de todos os dados no script de teste a fim base de geração de dados moldura CAM. Estes foram todos convertidos de float16 para Float64 tipos numpy.
- Fix para a definição de erro RDC no script de teste a fim base de geração de dados moldura CAM. A estrutura de dados rdc_err está localizado nos recipientes de dados interatómicas, sem os recipientes de spin.
- A modificação da parte estrutura de carregamento da base do script de geração de dados a fim quadro CAM. As estruturas são agora carregados somente se o sinalizador DIST_PDB é definido, em que são utilizadas somente para gerar a distribuição de estruturas 3D. Isso economiza um monte de tempo e memória do computador.
- aceleração enorme do script base de geração de dados de teste a fim quadro CAM. Ao utilizar matrizes numpy multidimensionais para armazenar as posições atómicas e vectores unitários xh de todos os giros, e realizando as rotações sobre estas estruturas usando numpy.tensordot (), os cálculos são agora um factor de 10 vezes mais rápido. O medidor de progresso teve de ser alterado para mostrar a cada mil, em vez de 100 iterações. As rotações das posições e vetores agora são realizadas sequencialmente, fixando acidentalmente um bug com os modelos de movimento de casal (ou seja, o modelo de "duplo rotor ').
- Modificado o script base de geração de dados de teste a fim quadro CAM para conservar a memória RAM do computador. O vector XH e estruturas de dados posição atômicas para todas as rotações N são agora do numpy.float32 em vez de tipo numpy.float64. A principal mudança é para calcular as RDCs em média e média PCS separadamente, excluindo as estruturas de dados N porte uma vez que os arquivos de dados são gravados.
- reformulação completa do script base de geração de dados a fim quadro CAM para velocidade e memória poupança. Embora o vector de títulos XH rodado e código de posição atômica foi muito rápido, a quantidade de memória necessária para armazenar estes em recipientes de spin e recipientes de dados interatômicos foi enorme quando N & gt; 1E6. Os rdc.back_calc e usuário pcs.back_calc chamadas de função subsequentes também levaria muito tempo. Portanto, a base do script foi redesenhado. O método _create_distribution () foi dividido em quatro: _calculate_pcs (), _calculate_rdc (), _create_distribution () e _pipe_setup (). O método _pipe_setup () é chamado pela primeira vez para configurar o canal de dados com todos os dados necessários. Em seguida, o _calculate_rdc () e _calculate_pcs () métodos, e finalmente _create_distribution () Se a bandeira é definido DIST_PDB. As chamadas para as funções de usuário rdc.back_calc e pcs.back_calc foram eliminados. métodos em vez disso o _calculate_rdc () e _calculate_pcs () calcular a RDC média e PCS-se como numpy estruturas de matriz. Em vez de armazenar a enorme vetores rodado e estruturas de dados posições atômicas, as RDCs e PCS são somadas. Estes são então divididos por self.N no final para calcular a média dos valores. Em comparação com o antigo código, quando N é definido para 20 milhões o uso de RAM cai de ~ 20 GB para ~ 65 MB. O tempo total de execução é também diminuiu em um sistema de alguns dias a algumas horas (uma ordem ou dois de magnitude).
- Mudou o medidor de atualização de progresso para o script de teste a fim base de geração de dados moldura CAM. O spinner foi muito rápido, a atualização a cada 5 incrementos, e agora é atualizada a cada 250. E o número total agora é só impresso cada 10.000 incrementos.
- Melhorias na barra de progresso para o script base de geração de dados de teste a fim quadro CAM. Vírgulas agora são impressos entre os milhares e os números estão agora alinhados à direita.
- Grande aumento na precisão da RDC e PCS média. Isto é para o script base de geração de dados de teste a fim quadro CAM. Pela soma dos RDCs e PCS em matrizes numpy.float128 1D (para isso, é necessário um sistema de 64 bits) e, em seguida, dividindo por N, no final, o valor médio pode ser calculada com uma precisão muito maior. Como N torna-se maior, a média numérica introduz quantidades cada vez maiores de artefatos de truncagem. Portanto, esta mudança alivia isso.
- Fix para a RDC e PCS média no script de teste a fim base de geração de dados moldura CAM. Para o modelo de rotor duplo, ou em qualquer modalidade modelo motional múltipla, a média era incorreta. Em vez de dividir por N, os valores deverão ser divididos por N ^ M, em que M é o número de modos dinâmicas.
- aumento enorme na precisão dos dados de teste modelo de rotor livre CaM ordem quadro. A maior precisão é porque as estruturas numéricas na distribuição está agora vinte milhões, em vez de um milhão, e muito maior média de precisão numpy.float128 do script base de geração de dados atualizado foi usado. Estes dados devem permitir uma melhor estimativa dos valores dos parâmetros posição beta e gama de domínio média para os modelos de rotor livres que são afetados pelo colapso do parâmetro alfa para zero.
- aumento enorme na precisão dos dados de teste modelo duplo rotor CaM ordem quadro. A maior precisão é porque as estruturas Número na distribuição é agora mais de vinte milhões (4500 ^ 2), em vez de um quarto de um milhão (500 ^ 2).
O que é novo na versão 2.0.0:
Requisitos :
Comentários não encontrado