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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qsarmodelingpy-0.4.2.tar.gz (131.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qsarmodelingpy-0.4.2-py3-none-any.whl (62.5 kB view details)

Uploaded Python 3

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

Hashes for qsarmodelingpy-0.4.2.tar.gz
Algorithm Hash digest
SHA256 8997b5cfa6e9db83bd28058efb1b6a05b07c9469d872550a5c24c2b48c6ec663
MD5 a36c2f73418721d2d92f7a2b0c9027c7
BLAKE2b-256 e2fa1a75854365273ec0a6362d6dee26e706a28fb1d28ef14240f035243c6512

See more details on using hashes here.

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

Hashes for qsarmodelingpy-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eaa34563f374da831aa4e4f0d19b7e276473d574338b82f657d0a27329210387
MD5 2f53b16a3a2975d630b1f757bd1994f9
BLAKE2b-256 a9087b38d6cfeac01b24287c9b336bf4591e93cac16a7a908ace2fcff6828199

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.2 This release

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page