QSARModelingPy is an open-source Python package to build and validate QSAR/QSPR models.
Este repositório contém o pacote Python, disponível publicamente no PyPI e, portanto, via pip install qsarmodelingpy. Ele contém as rotinas centrais do software.
Esta é, portanto, a base e a "fonte de verdade" do pacote irmão, QSARModelingPyInterfaces, que será distribuído no PyPI sob o nome mais simples qsarmodeling, e conterá as interfaces de usuário final.
Esses projetos foram desenvolvido há, agora, mais de 5 anos. Na ocasião, a equipe se dedicou ao empacotamento de um conjunto de scripts mais antigos, sem grandes preocupações com a refatoração ou o estilo de código.
Hoje, visando a expansão do pacote, as prioridades centrais no desenvolvimento deste projeto são:
- Documentação: Desenvolvimento de uma extensiva e detalhada documentação que permita aos usuários utilizar o pacote e o software.
- Testagem: Expansão das rotinas de testes automatizados existentes, as quais são:
- Testes unitários (em andamento): escrever testes atômicos do programa, buscando maximizar a cobertura dos testes. Usamos
pyteste o diretóriotests/. - Análise estática (em andamento): ferramentas de análise constante do código, tais como:
mypypara checagem de tipagem;ruff checkpara linting;ruff formatpara formatação automática de código.
- Testes de integração: elaboração de testes para a integração entre as diferentes partes do programa, o que pode se extender até um teste ponta-a-ponta (no qual o programa é testado fechado, sem acesso ao código).
- Testes humanos: disponibilização do software para usuários reais e acompanhamento do feedback.
- Testes unitários (em andamento): escrever testes atômicos do programa, buscando maximizar a cobertura dos testes. Usamos
- DevOps e MLOps (em estágio avançado), que se dedicam a operações de infraestrutura majoritariamente automatizáveis.
- Integração contínua (CI) (parcialmente completo): rotinas automátizadas de testagem e qualidade de código executadas pelo próprio repositório Github, sem interação humana. Útil para executar as ferramentas de análise estática, fazer formatação de código e detectar problemas.
- Entrega contínua (CD) (parcialmente completo): infraestrutura na qual o próprio repositório Github é capaz de compilar o pacote e distribuí-lo nos canais adequados (como o
PyPIou oconda).
Após git clone este repositório, certifique-se de estar na branch dev/2024-update:
$ git clone -b dev/2024-update https://github.com/hellmrf/QSARModelingPy
$ cd QSARModelingPy
# ou
$ git clone https://github.com/hellmrf/QSARModelingPy
$ cd QSARModelingPy
$ git checkout dev/2024-update
$ git fetch && git pullPara executá-lo, é necessário apenas o gerenciador uv. Caso não o tenha, instale-o com pipx install uv ou veja as Instruções de Instalação.
Com o uv instalado, utilize o comando uv run para criar um ambiente, baixar as dependências e executar o projeto. Note que uv run X é, na maioria dos casos, semelhante a python X ou, em alguns casos, python -m X.
$ uv run python qsarmodelingpy/runners/external_validation.py
$ uv run qsarmodelingpy/runners/external_validation.pyPara executar o linter e procurar por erros na base de código, utilize o ruff check:
Only find and report errors:
$ uv run ruff check
Found 427 errors.Find and report errors, and try to fix when possible:
$ uv run ruff check --fix
Found 427 errors (1 fixed, 426 remaining).Para executar o formatador de código, utilize o ruff format:
Formatar todos os arquivos necessários:
$ uv run ruff formatUse a flag --check para apenas reportar, sem alterar nenhum arquivo. Um exit code zero indica que todos os arquivos já estão formatados; um exit code diferente de zero indica que há arquivos que precisam ser formatados.
$ uv run ruff format --check
$ uv run ruff format --diffPara executar o analisador estático mypy e encontrar erros potenciais no código-fonte, use:
$ uv run mypy src/qsarmodeling/guiQSARModeling é uma ferramenta gratuita e open-source para a construção e validação de modelos QSAR e QSPR. Originalmente desenvolvido em Java, esta biblioteca em Python permite ao usuário a aplicação programática, personalizável e escalável dos recursos do software.
Alguns recursos podem ser destacados, como:
- Redução de dimensionalidade baseada em variância, correlação e autocorrelação;
- Seleção de variáveis: Ordered Predictors Selection (OPS) ou Algoritmo Genético (GA)
- Validação cruzada: y-randomization e leave-N-out
- Validação externa
You shall have Python (preferably 3.11) installed. To install the package and dependencies, go to the repository's root folder and run:
python -m pip install . .[dev]
You can ommit .[dev] if you'll not work directly on the development
The current stage of this project is: IDEA, so it's absolutely not ready for real usage. Your contribution would be very appreciated.
We're using Google's yapf autoformatter together with google style-guide. You can install yapf on VSCode from the extensions marketplace. At command-line, it would be yapf file.py. Make sure you have it configured, so we don't conflict styling.
Esta versão do QSARModelingPy Core é uma biblioteca para a linguagem de programação Python, com foco em programadores que desejam implementar sua própria versão do QSAR Modeling, expandi-lo ou utilizá-lo programaticamente. Se deseja uma versão funcional desenvolvida para o usuário final, veja as interfaces do QSARModelingPy.
Para utilizar, instale a biblioteca em seu ambiente.
$ pip install qsarmodelingpy