Coder Social home page Coder Social logo

rbbosshard / pytcpl Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 5.55 GB

pytcpl is a streamlined Python package that incorporates the levels 4 to 6 of tcpl+tcplFit2, providing concentration-response curve fitting and hit-calling. It utilizes the Invitrodb version 4.1 release (September 21, 2023) as backend database.

Home Page: https://rbbosshard.github.io/pytcpl/

License: MIT License

Python 18.31% HTML 75.53% JavaScript 3.95% CSS 2.11% TeX 0.10%
cheminformatics concentration-response-analysis curve-fitting high-throughput-screening hts invitro

pytcpl's Introduction

Welcome to the GitHub repository for the pytcpl package.

pytcpl is a streamlined Python package that incorporates the mc4, mc5 and mc6 levels of tcpl, providing concentration-response curve fitting and hitcalling based on tcplfit2. It utilizes the Invitrodb version 4.1 release as its backend database.


(Optional) Use conda environment

conda create --name pytcpl
conda activate pytcpl
conda install pip

Install dependencies

pip install -r requirements.txt

Running pipeline:

Notes:

  • Download & Install invitroDBv4.1 on you local machine or server
  • Goto config_db.yaml to add/set your own MySQL database connection parameters
  • Goto config.yaml to customize pipeline behaviour
  • Goto DDL to set Data Definition Language (DDL) statements, used to create new MySQL database schema objects
  • Automate list generation aeid_list.in suited for balanced workloads for distributed compute instances
  • Goto aeid_list.in to set assay endpoint ids (aeids) to be processed by the pipeline (only has effect if aeid_list_manual: 1 in config_db.yaml)

Run pipeline (on single machine)

python src/pipeline/pipeline_main.py --instance_id 0 --instances_total 1
  • Replace python with python3 or py depending on your python version
  • Goto logs to see the redirected terminal logs and check in the error logs what went wrong for which assay endpoint id
  • Note: Parameters instance_id and instances_total are used for distributing workload onto multiple compute engine instances (e.g. gcloud VMs).
  • Example: Distribute workload onto 2 VM instances. Run:
    • python src/pipeline/pipeline_main.py --instance_id 0 --instances_total 2 on one machine and
    • python src/pipeline/pipeline_main.py --instance_id 1 --instances_total 2 on another machine

Further automation steps

  • Generate per-chemical-results from all processed assay endpoints
  • Fetch relevant metadata tables from invitrodb
  • Remove output files NOT contained in aeid_list.in

Curve surfer: Inspect fitted curves, hitcall labels and potency estimates

streamlit run src/app/curve_surfer_app.py --server.address="localhost"
  • If you run the command, the Curve Surfer web app should open as a new browser tab
  • Curve Surfer only works for assay endpoints already processed by pipeline
  • Or goto online version https://pytcpl.streamlit.app/
streamlit-curve_surfer-2023-08-09-22-08-26.webm

pytcpl's People

Contributors

rbbosshard avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.