r-costa / sbml2hyb Goto Github PK
View Code? Open in Web Editor NEWsbml2hyb is a tool for SBML compatible hybrid modelling of biological systems
Home Page: https://doi.org/10.6084/m9.figshare.21803316.v1
License: GNU General Public License v3.0
sbml2hyb is a tool for SBML compatible hybrid modelling of biological systems
Home Page: https://doi.org/10.6084/m9.figshare.21803316.v1
License: GNU General Public License v3.0
This package contains python code that is unpackaged, this means that it is problematic for others to get and install it on their own systems. There are several ways to package code these days, usually using an appropriate setup.cfg
or pyproject.toml
file such that it can be cloned and subsequently installed with pip
Typically, code lives in a folder called src/
within which you should make a folder with the package name sbml2hyb
, where you put your code. This is important for packaging code correctly
More information on the merits of the src/
layout at https://hynek.me/articles/testing-packaging/. This will help towards #1
This code currently does not contain any documentation. There are a few ways to go about doing that to make it useful for potential users:
See https://www.youtube.com/watch?v=azf6yzuJt54 for motivation on better documentation - there should be several parts to documentation:
After packing the code in #1, it would be paramount to deploy the code to the Python Package Index (PyPI) such that users can effortlessly install with pip
The code in this repository doesn't appear to have consistent styling. This can be easily addressed with black
, which reformats code in a deterministic way. It's not perfect in how it looks, but at least it makes it more standard for others to read.
Further, you should use tools like flake8
and pylint
to find other common mistakes/pitfalls in the way the code is written. Keep in mind that your code is effectively the methods section of your manuscript, and that it should be meant to be read by all users.
This package is missing important metadata in its setup.py
. You can use the following commands to iteratively add the things that are missing:
git clone https://github.com/r-costa/sbml2hyb
cd sbml2hyb
pip install pyroma
pyroma --min=10 .
As a follow-up to #4, the documentation should be deployed to ReadTheDocs. This has the advantage that users don't have to build the documentation themselves, and that it automatically stays up-to-date with changes in the code.
Zenodo offers to make up a persistent backup of the repository. This is important in case GitHub goes down, if you decided to delete the repository, or any other situation. You can connect your github account to zenodo then make a release on this repo to create a DOI. Then you can add the DOI to the README and your paper.
Dear @r-costa,
I have been invited to review your application note entitled "SBML2HYB: a Python interface for SBML compatible hybrid modelling" submitted to Oxford Bioinformatics. As an application note is an advertizement for some interesting code, it's paramount that the code is good and useful. Therefore, I've provided a first round of code review that points out some standard practices for packaging, documentation, testing, code quality assurance, and automation that should be completed before the next round of review.
Greetings from Bonn, Germany. Have a nice day.
-Charlie Hoyt
Here's a table of contents of the issues I've raised:
There aren't any tests for the code in this repository. Among other things, this doesn't inspire confidence in a potential user that the code really does what it says it should. Further, without tests, it's hard to be confident that improvements don't break other features.
tests/
directorytox
and GitHub Actions to automate running tests on all changesIt's not a common choice to package code in a windows-only executable. Most scientists are using Mac or Linux, so this makes it difficult for those users to use your code. Further, there are pretty big security concerns for downloading some exe
off of the internet and running it, so I would say this is not the way you should be distributing your code. See #1 and #2 for a better alternative.
Several files seem to be committed to the repository that make navigating it confusing. Please delete the following directories and add them to a .gitignore
file so they don't get accidentally committed again. You can make a base .gitignore
file with https://www.toptal.com/developers/gitignore/. Here's a good starting point: https://www.toptal.com/developers/gitignore/api/python,intellij,pycharm,jupyternotebooks,windows,macos,vim
dist/
directory should be deleted (in general, build artifacts get sent to places like PyPI, not kept in version control)src/sbml2hyb.egg-info
src/__init__.py
is not necessary. You only need this inside src/sbml2hyb/
and sub-moduleswindows_exe/
of the packaged files.How was the executable https://github.com/rs-costa/sbml2hyb/blob/main/SBML2HYB.exe generated? The code that creates this should be checked in to this repository and documented for rebuilding.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.