CBMPy Metadraft: a flexible and extensible genome-scale model reconstruction tool

Overview

cbmpy-metadraft

CBMPy Metadraft: a flexible and extensible, GUI-based genome-scale model reconstruction tool that supports multiple Systems Biology standards.

New: upgrading to MetaDraft version 0.9.2

MetaDraft version 0.9.2 now defaults to the 2019-1 template library, if you are working directly in a cloned repository please initialise the new template library:

cd cbmpy-metadraft
git submodule update --init --remote -- modeldb/2019-1/

If you want to switch back to the 2018-1 library and results please edit the _metadraft.cfg file and change the value of the "metadraft_db_version" key to "2018-1" (it is currently set to "2019-1").

Installation and system dependencies

NEW: The MetaDraft User Guide is now available online and for download from the MetaDraft website.

System dependencies

MetaDraft requires working versions of Python, Perl, Java and NCBI Blast2. Once you have downloaded MetaDraft and it's Python dependencies, please run the system test script to that can be found in the MetaDraft directory python systemtest.py.

Typically the default Java runtime (JRE) installed on your system is all that is require, for Windows this can be obtained from [https://www.java.com/]. On Linux please use your favourite package manager, for example, when using Ubuntu/Debian based oeprating systems, try sudo apt-get install default-jre.

MetaDraft has been successfully tested using Windows 10, Ubuntu Linux 16.04/18.04, Python 2.7, Python 3.6, PyQt4 and PyQt5. MetaDraft is developed on Windows Anaconda Python 2.7 with PyQt5.

Getting MetaDraft

To install the latest version of MetaDraft, download from GitHub ([https://github.com/SystemsBioinformatics/cbmpy-metadraft]) or directly clone a repository (requires git to be installed).

Clone the cbmpy-metadraft git repository:

git clone https://github.com/SystemsBioinformatics/cbmpy-metadraft.git

Getting and installing the MetaDraft template library

MetaDraft ships with a single model template, if you have cloned the repository you can activate the current template set, based on the BiGG2 repository, change into the MetaDraft directory and activate the template submodule:

cd cbmpy-metadraft
git submodule update --init --remote -- modeldb/2019-1/

If you have downloaded master repository as a zip file or as a release, download the template-models-2018-1.zip template archive provided with the latest release. Unzip this archive into the metadraft/modeldb directory.

MetaDraft is archived on Zenodo, please see CITATION.cff for more details DOI

Creating a custom Anaconda Python environment

You have now downloaded the latest version of MetaDraft, next please run the system test script python systemtest.py to check your installation and then proceed to install the required Python dependencies. How you do this will depend on whether you use Conda or PIP.

The following commands will create custom virtual environments with all the Python dependencies needed to run MetaDraft. It is also possible to install the individual packages using "conda" or "pip" see the requirements.txt file for details of the required packages (see "pip" instructions below).

Setting up a Python 3 CONDA environment (recommended)

Creating the environment, this should work on all operating systems. Open a terminal and type:

conda env create -f environment.yml
conda activate metadraft3

One Windows run the system test (optional) and start MetaDraft:

runwin.bat

One Linux run the system test (optional) and start MetaDraft:

sh ./run.sh

Adding the the core packages (minimal) to an existing CONDA environment:

conda install -c bgoli -c conda-forge pyqt5-sip pyqt python-libsbml xlrd xlwt cbmpy biopython

Using PyPI to install Python dependencies

For Python 3

Using PyPI it is only possible to use Python 3. You can install the packages useing the requirements.txt file (recommended):

pip install -r requirements.txt

Software citation

Please cite this software if you use it (the author(s) enthusiasm to carry on maintaining this project depend on it), see CITATION.cff for more details.

 Brett G. Olivier. (2019, October 8).
 SystemsBioinformatics/cbmpy-metadraft: Metadraft.
 Zenodo. http://doi.org/10.5281/zenodo.2398336

(C) Brett G. Olivier ([email protected]), Vrije Universiteit Amsterdam, Amsterdam, July 2020. Licence CC-BY 4.0

Comments
  • Python stops the program when building a template or  converting a SBML file

    Python stops the program when building a template or converting a SBML file

    [Hello!] L casei 12A.zip

    I'm new at MetaDraft. I was trying to build my own template by: 1-convert my SBML level 2 to level 3 FBC v3 2-create a template with a Genbank file + my converted SBML file.

    In both of these steps anaconda finds an "Unhandled Python exception" and shuts down MetaDraft. I'm using the anaconda prompt with python v3.8.5. Interestingly, after step 1 I did receive a converted SBML and after step 2 (using the converted SBML from step 1) I received a .xlsx file. However my template is not shown in the "select the target network(s)" window.

    Any idea how to solve this? Best,

    1st update:the same problem happens with other files. 2nd update: I tried using python 3.6. I then managed to upgrade the sbml version and to build templates, but didn't manage to create metaproteome, python shutted down again. I tried installing python 2.7 and cbmpy 0.7.5 (that only needs biopython 1.7.6., more recent versions would require a more updated python) but then libsbml was missing. I could only install libsbml with "pip install python-libsbml-experimental" .

    Now the error is that no QtGui is defined, which I solved by installing PyQT4. However then there is a conflict with PyQT5, which makes me think that the QtGui was not missing. Any ideas how to proceed?

    opened by PolTorrentTornos 8
  • Issue with PyQt for python 2.7

    Issue with PyQt for python 2.7

    Hi,

    While trying to run metadraft.py after okay from systemtest.py i got the message: '2' after showing the icon, this was while running on python 2.7 using PyQt4. I did update to PyQt5, however I then got an error message showing that no module named sip was available, this module dropped support for python versions below v3.5 as stated on their website.

    Kind regards, Bas

    Edit: i also get the 2 using python 3.5

    good first issue 
    opened by Bas4694 6
  • Use of Trypanosoma gbff

    Use of Trypanosoma gbff

    Hi!

    I'm trying to build a template model using Trypanosoma cruzi. However, I'm gettin an error:
    NITDB: connecting geneDB INITDB: connecting notesDB [('iIS312', 'iIS312.gbff', 'iIS312.xml')] /media/alexranieri/Data/Trypanosoma/metadraft/Tbrucei/reference_model /media/alexranieri/Data/Trypanosoma/metadraft/Tbrucei/reference_model Processing: iIS312 iIS312.gbff iIS312.xml INITDB: connecting geneDB INFO: addGeneInformationToDB committed 0 new records FBC version: 2 M.getNumReactions: 519 M.getNumSpecies: 606 FBC.getNumObjectives: 1 FBC.getNumParameters: 3 FBC.getNumGeneProducts: 312 Zero dimension compartment detected: c Zero dimension compartment detected: e Zero dimension compartment detected: x Zero dimension compartment detected: m Zero dimension compartment detected: n Zero dimension compartment detected: r FluxBounds process1: 0.01 INFO: Active objective: obj Adding objective: obj FluxBounds process2: 0.01

    SBML3 load time: 0.57

    CheckModelLocusTags is processing: /media/alexranieri/Data/Trypanosoma/metadraft/Tbrucei/reference_model/iIS312.gbff INFO: Multiple sequences encountered in file: /media/alexranieri/Data/Trypanosoma/metadraft/Tbrucei/reference_model/iIS312.gbff Traceback (most recent call last): File "/home/alexranieri/metadraft/cbmpy-metadraft/libpython/qtmetadraft.py", line 1615, in bp_createSeqPlusProcess compress_output=self.CREATE_TEMPLATE_ZIP) File "/home/alexranieri/metadraft/cbmpy-metadraft/libpython/biotools.py", line 946, in createSeqplusModel ) = checkModelLocusTags(fmod, fgb) File "/home/alexranieri/metadraft/cbmpy-metadraft/libpython/biotools.py", line 215, in checkModelLocusTags 'isDescribedBy', 'PubMed', r_.pubmed_id File "/home/alexranieri/anaconda3/envs/metadraft3/lib/python3.7/site-packages/cbmpy/CBModel.py", line 771, in addMIRIAMannotation self.miriam.addMIRIAMannotation(qual, entity, mid) File "/home/alexranieri/anaconda3/envs/metadraft3/lib/python3.7/site-packages/cbmpy/CBDataStruct.py", line 380, in addMIRIAMannotation if self.checkId(E, mid): File "/home/alexranieri/anaconda3/envs/metadraft3/lib/python3.7/site-packages/cbmpy/CBDataStruct.py", line 333, in checkId if self.checkEntityPattern(entity): File "/home/alexranieri/anaconda3/envs/metadraft3/lib/python3.7/site-packages/cbmpy/CBDataStruct.py", line 316, in checkEntityPattern if type(self.MIRIAM[entity]['pattern']) == re._pattern_type: AttributeError: module 're' has no attribute '_pattern_type' Aborted (core dumped)

    The model I'm using is: http://bigg.ucsd.edu/models/iIS312 And its genbank: https://sra-download.ncbi.nlm.nih.gov/traces/wgs03/wgs_aux/AY/LP/AYLP01/AYLP01.1.gbff.gz

    Is it a problem in the model, genbank or both?

    opened by alexranieri 2
  • Upgrade complex GPR handling

    Upgrade complex GPR handling

    I need to look into how complex GPR's are added, also add GPR string as annotation for comparison. Comparative testing using set 3 should get most patterns

    bug 
    opened by bgoli 0
  • Instalation OK, system test OK, run cannot find sip although it is installed

    Instalation OK, system test OK, run cannot find sip although it is installed

    Hello,

    I'm trying to install and run MetaDraft, I've run the following commands:

    $ conda env create -f environment.yml (for installation)

    $ conda activate metadraft3

    (metadraft3) $ python systemtest.py

    Which gives me:

    System check results:

    Java test passed: True Perl test passed: True Perl XML test passed: True BLAST test passed: True Python dependency test passed: True

    Congratulations you are ready to run MetaDraft! (python metadraft.py)

    However, when I run:

    (metadraft3) $ sh ./run.sh

    I get the following error:

    Traceback (most recent call last): File "metadraft.py", line 62, in import libpython.qtmetadraft File "/scr/k61san/natasha/matomic/metadraft/cbmpy-metadraft-0.9.5/libpython/qtmetadraft.py", line 40, in import sip ModuleNotFoundError: No module named 'sip'

    Even though sip is installed

    (metadraft3) $ pip install sip

    Requirement already satisfied: sip in /homes/brauerei/natasha/miniconda3/envs/metadraft3/lib/python3.8/site-packages (6.5.1) Requirement already satisfied: setuptools in /homes/brauerei/natasha/miniconda3/envs/metadraft3/lib/python3.8/site-packages (from sip) (60.9.3) Requirement already satisfied: toml in /homes/brauerei/natasha/miniconda3/envs/metadraft3/lib/python3.8/site-packages (from sip) (0.10.2) Requirement already satisfied: packaging in /homes/brauerei/natasha/miniconda3/envs/metadraft3/lib/python3.8/site-packages (from sip) (21.3) Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /homes/brauerei/natasha/miniconda3/envs/metadraft3/lib/python3.8/site-packages (from packaging->sip) (3.0.7)

    Please, can you help me? What can I do to run metadraft ?

    Thanks in advance

    opened by NatashaJorge 6
  • Installation instruction of required Blast modules are missing in the README

    Installation instruction of required Blast modules are missing in the README

    When one follows the installation instructions of the README and tries to run a BLAST, one can end up with messages like this:

    
    Starting first BLAST pass for IN - IN on 05/09/2021sh: 1: blastall: not found
    
    no element found at line 1, column 0, byte -1 at ./blast_parser.pl line 110.
    
    Starting second BLAST pass for IN - IN on 
    Starting first BLAST pass for IN - DB on 05/09/202105/09/2021sh: 1: blastall: not found
    
    no element found at line 1, column 0, byte -1 at ./blast_parser.pl line 110.
    
    Starting second BLAST pass for IN - DB on 
    Starting first BLAST pass for DB - IN on 05/09/202105/09/2021sh: 1: blastall: not found
    
    no element found at line 1, column 0, byte -1 at ./blast_parser.pl line 110.
    
    Starting second BLAST pass for DB - IN on 
    Starting first BLAST pass for DB - DB on 05/09/202105/09/2021sh: 1: blastall: not found
    
    no element found at line 1, column 0, byte -1 at ./blast_parser.pl line 110.
    
    

    On a Linux system, one can easily solve it by installing the missing modules like this:

    sudo apt-get install ncbi-blast+-legacy

    Might be good to add it to the README (in case I overlooked it somewhere, my apologies for the noise).

    opened by willigott 3
  • Can one surpress the output

    Can one surpress the output "Building a new database, current time..."

    I am using the genbank file from here and blast it against the Bigg1 version of Hpylori (just for testing purposes).

    I built the metaproteome and then click BLAST. I then get the expected output in the terminal:

    2
    4278 sequences in file IN
    335 sequences in file DB
    Trying to run BLAST now - this may take several hours ... or days in worst case!
    Formatting BLAST databases
    
    
    Building a new DB, current time: 05/09/2021 13:45:56
    New DB name:   /stuff/cbmpy-metadraft/data_blast/1620560756/IN
    New DB title:  IN
    Sequence type: Protein
    Keep MBits: T
    Maximum file size: 1000000000B
    Adding sequences from FASTA; added 4278 sequences in 0.0583789 seconds.
    
    
    Building a new DB, current time: 05/09/2021 13:45:56
    New DB name:   /stuff/cbmpy-metadraft/data_blast/1620560756/DB
    New DB title:  DB
    Sequence type: Protein
    Keep MBits: T
    Maximum file size: 1000000000B
    Adding sequences from FASTA; added 335 sequences in 0.0046699 seconds.
    Done formatting
    Starting BLAST searches...
    
    Starting first BLAST pass for IN - IN on 05/09/2021Warning: [blastp] The parameter -num_descriptions is ignored for output formats > 4 . Use -max_target_seqs to control output
    
    Starting second BLAST pass for IN - IN on 05/09/2021
    
    Building a new DB, current time: 05/09/2021 13:47:10
    New DB name:   /stuff/cbmpy-metadraft/data_blast/1620560756/tmpd
    New DB title:  ./tmpd
    Sequence type: Protein
    Keep MBits: T
    Maximum file size: 1000000000B
    Adding sequences from FASTA; added 4 sequences in 0.000277996 seconds.
    Warning: [blastp] The parameter -num_descriptions is ignored for output formats > 4 . Use -max_target_seqs to control output
    
    
    Building a new DB, current time: 05/09/2021 13:47:10
    New DB name:   /stuff/cbmpy-metadraft/data_blast/1620560756/tmpd
    New DB title:  ./tmpd
    Sequence type: Protein
    Deleted existing Protein BLAST database named /stuff/cbmpy-metadraft/data_blast/1620560756/tmpd
    Keep MBits: T
    Maximum file size: 1000000000B
    Adding sequences from FASTA; added 5 sequences in 0.000389099 seconds.
    Warning: [blastp] The parameter -num_descriptions is ignored for output formats > 4 . Use -max_target_seqs to control output
    
    

    I get a lot of the messages as shown here starting from the second Blast; is there a way to not show these but only the "important" ones like "Starting second BLAST pass for IN - IN on 05/09/2021" and then - once finished

    Output saved to file Output.IN-DB
    HTML output saved to orthologs.IN-DB.html
    Table output saved to table.IN-DB
    mysql output saved to sqltable.IN-DB
    

    The messages inbetween make it hard to follow in which round of blasting metadraft is currently.

    Thanks!

    opened by willigott 0
  • IndexError: list out of range due to Sympy version

    IndexError: list out of range due to Sympy version

    I just installed Metadraft following the instructions in the README (on Ubuntu).

    When I execute

    sh ./run.sh

    I receive

    Using Qt5 - the next generation
    You are using BioPython 1.78
    Traceback (most recent call last):
      File "metadraft.py", line 62, in <module>
        import libpython.qtmetadraft
      File "/stuff/cbmpy-metadraft/libpython/qtmetadraft.py", line 169, in <module>
        from . import biotools
      File "/stuff/cbmpy-metadraft/libpython/biotools.py", line 61, in <module>
        import cbmpy
      File "/stuff/anaconda3/envs/metadraft3/lib/python3.7/site-packages/cbmpy/__init__.py", line 48, in <module>
        from . import CBSolver
      File "/stuff/anaconda3/envs/metadraft3/lib/python3.7/site-packages/cbmpy/CBSolver.py", line 40, in <module>
        from . import CBGLPK
      File "/stuff/anaconda3/envs/metadraft3/lib/python3.7/site-packages/cbmpy/CBGLPK.py", line 38, in <module>
        and int(sympy.__version__.split('.')[2]) >= 4
    IndexError: list index out of range
    

    Reason is that Sympy 1.8 gets installed, therefore int(sympy.__version__.split('.')[2] is undefined.

    A quick fix is to just run

    conda install sympy=1.7.1

    but I guess ideally it can be solved on code level.

    opened by willigott 0
Releases(v0.9.5)
  • v0.9.5(Nov 25, 2020)

    This is the latest release of MetaDraft, a GUI-based, full featured tool for the reconstruction of genome-scale metabolic networks.

    Please visit the MetaDraft webpage for more details on using MetaDraft as well as additional resources. The readme file has detailed instructions on installing and configuring MetaDraft and its dependencies.

    To use MetaDraft, download the source code (*.zip or *.tar.gz) and unpack it. If you want the full template library, which is highly recommended, you should download the library archive (template-models-2019-1.zip) and extract it into the modeldb subdirectory of the MetaDraft root directory.

    After extraction, when MetaDraft loads it should display 2019-1 in the title bar. This release also adds improved handling of GPR associations which are completely resolved, improved SBML Level 3 FBC V2 output and all template model objective functions are now included as alternative objective functions in the reconstruction.

    If upgrading from a previous release please make sure to update your CBMPy version to at least 0.7.25 (available on PyPI and Anaconda cloud) or 0.8.0 for Python 3.7 or newer.

    MetaDraft also exports COMBINE archives which contain the model in both SBML FBCv2 and Excel formats as well as complete HTML pages containing the model makeup and description of each model component.

    This version of MetaDraft has been featured in a recently published comparison of reconstruction tools by Mendoza and colleagues

    The MetaDraft Team

    Source code(tar.gz)
    Source code(zip)
    template-models-2019-1.zip(117.97 MB)
  • v0.9.2(Aug 8, 2019)

    This is the latest release of MetaDraft, a GUI-based, full featured tool for the reconstruction of genome-scale metabolic networks.

    Please visit the MetaDraft webpage for more details on using MetaDraft as well as additional resources. The readme file has detailed instructions on installing and configuring MetaDraft and its dependencies.

    To use MetaDraft, download the source code (*.zip or *.tar.gz) and unpack it. If you want the full template library, which is highly recommended, you should download the library archive (template-models-2019-1.zip) and extract it into the modeldb subdirectory of the MetaDraft root directory.

    After extraction, when MetaDraft loads it should display 2019-1 in the title bar. This release also adds improved handling of GPR associations which are completely resolved, improved SBML Level 3 FBC V2 output and all template model objective functions are now included as alternative objective functions in the reconstruction.

    If upgrading from a previous release please make sure to update your CBMPy version to at least 0.7.25 (available on PyPI and Anaconda cloud).

    MetaDraft also exports COMBINE archives which contain the model in both SBML FBCv2 and Excel formats as well as complete HTML pages containing the model makeup and description of each model component.

    This version of MetaDraft has been featured in a recently published comparison of reconstruction tools by Mendoza and colleagues

    The MetaDraft Team

    Source code(tar.gz)
    Source code(zip)
    template-models-2019-1.zip(117.97 MB)
  • v0.9.0-rc.1(Dec 18, 2018)

    This is the initial release of MetaDraft a user-friendly tool for genome-scale network reconstruction. Please visit the MetaDraft webpage for more details on using MetaDraft. The readme file has detailed instructions on installing and configuring MetaDraft and its dependencies.

    To use MetaDraft, download the source code (*.zip or *.tar.gz) and unpack it. If you want the full template library (recommended) you should download the library archive (template-models-2018-1.zip) and extract it into the modeldb subdirectory of the MetaDraft root directory.

    The MetaDraft Team

    Source code(tar.gz)
    Source code(zip)
    template-models-2018-1.zip(112.90 MB)
  • v0.9.0-beta(Nov 23, 2018)

    This is a test release of MetaDraft a user-friendly tool for genome-scale network reconstruction. Please visit the MetaDraft webpage for more details.

    To use MetaDraft, download the source code (*.zip or *.tar.gz) and unpack it. If you want the full template library (recommended) you should download the library archive (2018-1.zip) and extract it into the modeldb directory that can be found in the MetaDraft directory.

    Source code(tar.gz)
    Source code(zip)
    template-models-2018-1.zip(112.91 MB)
Owner
Systems Biology Lab, Vrije Universiteit Amsterdam
This is the code repository of the Systems Biology Lab. Our lab studies the molecular networks inside cells that give rise to cell behavior and fitness.
Systems Biology Lab, Vrije Universiteit Amsterdam
FPKG Maker GUI - A user friendly User Interface for fPKG Tools for PS4

Know Issues being worked on Please place this application on the root of a drive

26 Nov 27, 2022
PyEditor - A Simple Text Editor for python

PyEditor work in progress Text Editor for python Installation git clone https://github.com/ArmenG888/PyEditor Install the libraries Linux or mac pip

ArmenG 3 Mar 15, 2022
EZ Presence - A GUI-Python app which makes it easy to set a custom Discord Rich Presence. (BETA)

EZ Presence EZ Presence is a GUI-Python app which makes it easy to set any custom Discord Rich Presence. Using the App How to Run Since the app is in

notsniped 2 Mar 01, 2022
Basic calculator using Tkinter GUI

Basic calculator using Tkinter GUI

Rogerio Penchel 17 Jan 09, 2022
This program is written in python. It will help you find a valid solution for a sudoku puzzle.

Sudoku-Solver-Using-Tkinter This program is written in python. It will help you find a valid solution for a sudoku puzzle. Requirements: Python3 IDLE

Ankan Mahapatra 3 Oct 02, 2021
A GUI panel to manage multi monitor on i3wm.

Monitor manager Only for I3wm (Just for now) It's about two years that I'm using i3 as my window manager and in my experience this window manager allo

Wire.Nemo 3 Nov 06, 2021
Gmail account using brute force attack

Programmed in Python | PySimpleGUI Gmail Hack Python script with PySimpleGUI for hack gmail account using brute force attack If you like it give it

Adrijan 127 Dec 30, 2022
Function-Plotter - GUI Python program that plots functions that are entered by the user

FunctionPlotter GUI Python program that plots functions that are entered by the user. The program takes minimum and maximum value for x and plot it as

Mohamed Magdy 2 Jan 20, 2022
This is a GUI based text and image messenger. Other functionalities will be added soon.

Pigeon-Messenger (Requires Python and Kivy) Pigeon is a GUI based text and image messenger using Kivy and Python. Currently the layout is built. Funct

4 Jan 21, 2022
Dear PyGui Extensions is a collection of useful tools, abstractions, and simplification layers built with/for Dear PyGui users.

Dear PyGui Extensions: A collection of useful tools, abstractions, and simplification layers built with/for Dear PyGui users.

Jonathan Hoffstadt 34 Jan 01, 2023
psgresizer - a PySimpleGUI application that will resize your images and BASE64 encode them.

psgresizer A PySimpleGUI Application Resize your images quickly and easily with this GUI application. Resizes and encodes to Base64 so that the result

PySimpleGUI 10 Dec 25, 2022
PyCG: Practical Python Call Graphs

PyCG - Practical Python Call Graphs PyCG generates call graphs for Python code using static analysis. It efficiently supports Higher order functions T

Vitalis Salis 185 Dec 29, 2022
Turn (almost) any Python command line program into a full GUI application with one line

Gooey Turn (almost) any Python 2 or 3 Console Program into a GUI application with one line Support this project Table of Contents Gooey Table of conte

Chris 17k Jan 09, 2023
A lightweight file-copying interface.

autosort A lightweight file-copying interface. Preview What is autosort? Autosort is a lightweight file-copying interface. It allows you to copy sever

32 Jan 02, 2023
Currency calculator with PyQt5

currency-calculator currency calculator with PyQt5

Vusal Akhundzada 2 Mar 08, 2022
python+PySimpleGUI+pyserial+threading

GUI_pyserial python+PySimpleGUI+pyserial+threading 功能 1.利用PySimpleGUI制作图形用户界面 2.利用threading实现多线程调用pyserial处理串口通信 模块版本 PySimpleGUI 4.46.0 pyserial 3.5

2 Dec 27, 2022
A GUI calculator made with tkinter module in python

GUI-Calculator A GUI calculator made with tkinter module in python How to setup the calculator If pygame is not installed, go to terminal and do pip i

Eric Jing 0 Aug 25, 2021
Advanced GUI Calculator with Beautiful UI and Clear Code.

Advanced GUI Calculator with Beautiful UI and Clear Code.

Mohammad Dori 3 Jul 15, 2022
All you need to learn Tkinter!

Tkinter This repository contains the codes and resources which I used to learn the standard GUI library of Python, Tkinter! Best Tkinter Resources Vid

Samyak Jain 3 May 02, 2022
Declarative User Interfaces for Python

Welcome to Enaml Enaml is a programming language and framework for creating professional-quality user interfaces with minimal effort. What you get A d

1.4k Jan 07, 2023