In order to cooperate with the wider community and help wet laboratories
better process experimental data, our dry laboratory has developed two
software tools called igem-uploads
and
ColoVision
, which are stored in our
software repository.
Team Wiki
has long been a characteristic hallmark of
iGEMers. By vividly illustrating and eloquently describing their
projects from various angles on accessible websites, all teams can
monitor progress and draw inspiration from others. This fosters
inter-team collaborations and strengthens connections within the iGEM
community. Year after year, Team Wiki
has become the most
standardized and prevalent portal for teams’ projects, delighting people
worldwide.
In 2022, iGEM took an innovative step by integrating GitLab, a powerful project management platform. This integration streamlined the project building and release process, but challenges persist in building and maintaining the team wiki.
During the building process, team members frequently commit changes to their IDE (Integrated Development Environment). When these commits impact references to picture resources, team members must also navigate web browsers to add or modify files hosted on uploads.igem.org, in accordance with the policy. This necessitates frequent switching between the browser and their IDE. Moreover, the heavy traffic often strains the network, increasing the risk of the server becoming unreachable.
Our primary aim is to simplify the process for iGEMers when it comes to committing images, reducing the need for constant switching between web browsers and their IDEs. We aspire to provide a more convenient way to access and upload content, allowing wiki builders to focus on creating and designing webpages within their IDE with fewer distractions.
We also aim to enhance the overall user experience with our content hosting site. We will offer a means to access their remote directory without requiring the use of a web browser, thereby reducing the graphical and unrelated content requests and relieving the load on the uploads.igem.org webpage.
In addition, the software must be user-friendly, as we intend to make it easier for all iGEMers to upload their wiki assets, enhance their project illustrations, and better express themselves. It will be designed as cross-platform software, ensuring that wiki builders can deploy it on any operating system, collaborate effectively, and keep their projects on track.
After analyzing the requirements and expectations, we have conceived the idea of developing a console software that is easy to set up and ready to use out-of-the-box. This program will be seamlessly integrated into the console, enabling iGEMers to operate it by simply entering commands within their IDE or system terminal, just a click away.
Python serves as the foundation for our project. Python is a versatile, cross-platform programming language with extensive support libraries and a large, active community base. This choice allows us to quickly prototype and develop our software effectively.
To interact with users, we employ the warnings
module to
send informative messages to the terminal, and
prettytable
to format structural data. We import the
requests
library to send requests and retrieve data from
websites, and use etree
to parse HTML information. For
streamlined file location, we have also incorporated the
path
module.
Thanks to these powerful Python libraries, we have successfully developed this versatile tool.
Our software can be easily installed using pypi:
python3 -m pip install igem-uploads
Log in to igem.org with your username and password registered on the official site.
client = uploads.Session()
client.login('username', 'password')
You can upload a file in a specified local directory to a remote directory. Files will be uploaded to remote root if you omit the target_directory argument.
client.upload('path/to/file')
client.upload('path/to/file', 'target_directory')
To list all files and directories in a directory, simply type the command below. The software will list all items in root directory if directory is omitted.
client.query('')
client.query('directory')
If you want to upload a directory and its subdirectories to specific directory, you can use upload_dir. All items in the dir you specified will be uploaded to remote root is target_directory is omitted.
client.upload_dir('path/to/directory')
client.upload_dir('path/to/directory', 'target_directory')
To delete a specific file, call delete with your filename specified.
client.delete('filename', 'file_parent_directory')
To truncate a directory, call truncate and specify it.
client.truncate_dir('target_directory')
Through promotion through multiple channels (Slack, Twitter, China iGEMer Community, etc.), our software has been downloaded and used many times. See this link.
Contributions are welcome! Please feel free to submit a Pull Request.
In order to help the wet group better verify the experiment, we
developed a software tool for colony identification and classification
called ColoVision
.
It allows experimental workers without program development knowledge to upload pictures of petri dishes through the Web page and perform preliminary identification and classification.
Introducing our web service for colony recognition and clustering, a powerful and user-friendly tool designed with researchers in synthetic biology and related fields in mind. Built using Python, it’s a cross-platform solution that runs seamlessly on Windows, macOS, and Linux. With its low technical barrier and straightforward deployment, it empowers researchers to save valuable time while delivering accurate results.
Our software is not only user-friendly but also highly fault-tolerant, ensuring a seamless experience for users. It simplifies the process of colony recognition and clustering, making it accessible to a wide range of researchers, from beginners to experts.
Additionally, our commitment to open-source principles means that everyone can extend and customize the functionality to suit their specific research needs.
Flask is a lightweight web framework for Python that allows you to create web applications. In this context, Flask will serve as the foundation for your web service, enabling you to receive image uploads and provide results to users through a web interface.
OpenCV(Open Source Computer Vision Library) is an open-source computer vision library that provides tools and functions for various image processing tasks. You’ll use OpenCV to analyze and process the uploaded images, extract features, and perform colony recognition and clustering.
Package scikit-learn, often abbreviated as sklearn, is an open-source machine learning library for Python. It is one of the most popular and widely used libraries for machine learning and data science tasks. Sklearn provides a wide range of tools and algorithms for various machine learning tasks, including classification, regression, clustering, dimensionality reduction, and more.
Matplotlib is a widely used and highly customizable data visualization library for Python. It provides a wide range of functions for creating static, animated, or interactive plots and charts, making it a go-to tool for data visualization in various domains, including data analysis, scientific research, and engineering.
git clone https://gitlab.igem.org/2023/software-tools/hbut-china.git hbut-china-software
cd hbut-china-software
cd ColoVision
python3 -m pip install -r requirements.txt
python3 app.py
Scientific Research Advancement: The project can significantly aid researchers in various scientific disciplines, including microbiology, biotechnology, and life sciences. It simplifies and automates the process of colony analysis, which is a fundamental step in many experiments and studies involving microorganisms.
Time Efficiency: Automated colony recognition and clustering save researchers considerable time and effort compared to manual analysis. Researchers can focus on higher-level tasks and data interpretation rather than spending hours counting and categorizing colonies.
Consistency and Standardization: Automation ensures consistency in colony analysis, reducing the potential for human error. This is crucial for reproducibility and obtaining reliable research results.
High Throughput Analysis: The web service can handle a large number of images and colonies in a relatively short time, enabling high-throughput analysis. This is especially important in large-scale experiments and screening studies.
Educational and Training Tool: The web service can serve as an educational tool for students and aspiring researchers, helping them learn about image analysis, computer vision, and microbiology techniques.
Collaboration and Remote Access: Collaborators from different locations can access and use the web service, facilitating remote research collaboration. This is especially relevant in today’s globalized research landscape.
Open Source and Community Contribution: Making the project open source can encourage collaboration and contributions from the scientific community, leading to continuous improvement and customization for specific research needs.
Contributions are welcome! Please feel free to submit a Pull Request.