Skip to main content

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:

  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

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

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.

Supported by

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