A python package for building and validating QSAR models
Project description
QSARModelingPy - Core
QSARModelingPy is an open-source Python package to build and validate QSAR/QSPR models.
Desenvolvimento (IMPORTANTE LER!)
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).
Configurando o projeto
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 pull
Para 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.
Running
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.py
Linting - ruff check
Para 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).
Formatter - ruff format
Para executar o formatador de código, utilize o ruff format:
Formatar todos os arquivos necessários:
$ uv run ruff format
Use 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 --diff
Analisador Estático de Tipagem: mypy
Para executar o analisador estático mypy e encontrar erros potenciais no código-fonte, use:
$ uv run mypy src/qsarmodeling/gui
QSARModeling é 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
Installation
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
Development
Stage of development
The current stage of this project is: IDEA, so it's absolutely not ready for real usage. Your contribution would be very appreciated.
Code formatting
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.
Current plan
Uso
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qsarmodelingpy-0.4.2.tar.gz.
File metadata
- Download URL: qsarmodelingpy-0.4.2.tar.gz
- Upload date:
- Size: 131.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8997b5cfa6e9db83bd28058efb1b6a05b07c9469d872550a5c24c2b48c6ec663
|
|
| MD5 |
a36c2f73418721d2d92f7a2b0c9027c7
|
|
| BLAKE2b-256 |
e2fa1a75854365273ec0a6362d6dee26e706a28fb1d28ef14240f035243c6512
|
File details
Details for the file qsarmodelingpy-0.4.2-py3-none-any.whl.
File metadata
- Download URL: qsarmodelingpy-0.4.2-py3-none-any.whl
- Upload date:
- Size: 62.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eaa34563f374da831aa4e4f0d19b7e276473d574338b82f657d0a27329210387
|
|
| MD5 |
2f53b16a3a2975d630b1f757bd1994f9
|
|
| BLAKE2b-256 |
a9087b38d6cfeac01b24287c9b336bf4591e93cac16a7a908ace2fcff6828199
|