Skip to main content

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:

  1. Documentação: Desenvolvimento de uma extensiva e detalhada documentação que permita aos usuários utilizar o pacote e o software.
  2. Testagem: Expansão das rotinas de testes automatizados existentes, as quais são:
    1. Testes unitários (em andamento): escrever testes atômicos do programa, buscando maximizar a cobertura dos testes. Usamos pytest e o diretório tests/.
    2. Análise estática (em andamento): ferramentas de análise constante do código, tais como:
      1. mypy para checagem de tipagem;
      2. ruff check para linting;
      3. ruff format para formatação automática de código.
    3. 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).
    4. Testes humanos: disponibilização do software para usuários reais e acompanhamento do feedback.
  3. DevOps e MLOps (em estágio avançado), que se dedicam a operações de infraestrutura majoritariamente automatizáveis.
    1. 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.
    2. 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 PyPI ou o conda).

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

PyPI docs PyPI - Format GitHub top language GitHub License

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

Metadata

Release files for qsarmodelingpy 0.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qsarmodelingpy 0.4.2
File Size Uploaded
qsarmodelingpy-0.4.2.tar.gz 131.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qsarmodelingpy 0.4.2
File Interpreter ABI Platform
qsarmodelingpy-0.4.2-py3-none-any.whl Python 3 none any Details

Total release size: 194.3 kB

Release files / qsarmodelingpy-0.4.2.tar.gz

Download URL qsarmodelingpy-0.4.2.tar.gz
Size 131.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8997b5cfa6e9db83bd28058efb1b6a05b07c9469d872550a5c24c2b48c6ec663
BLAKE2b-256 checksum
How to use checksums
e2fa1a75854365273ec0a6362d6dee26e706a28fb1d28ef14240f035243c6512
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / qsarmodelingpy-0.4.2-py3-none-any.whl

Download URL qsarmodelingpy-0.4.2-py3-none-any.whl
Size 62.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eaa34563f374da831aa4e4f0d19b7e276473d574338b82f657d0a27329210387
BLAKE2b-256 checksum
How to use checksums
a9087b38d6cfeac01b24287c9b336bf4591e93cac16a7a908ace2fcff6828199
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

This release

0.4.2 This release

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page