m |
m |
||
Line 14: | Line 14: | ||
<h2>Code Submission Deadline: TBD</h2> | <h2>Code Submission Deadline: TBD</h2> | ||
− | <p>The deadline for submission of code to the iGEM | + | <p>The deadline for submission of code to the iGEM GitHub Repository is the same date as the Wiki Freeze for all iGEM teams (See the <a href="https://2019.igem.org/Calendar">2019 Calendar</a> for details). By this date, you MUST have a GitHub <b>repository</b> within the <a href="https://github.com/igemsoftware2019">igemsoftware2019 github page</a> and you MUST have created a GitHub <b>judging release</b> of your software. The preferred way is that you create your own GitHub repository early on during your project and then transfer it into the igemsoftware2019 organization: |
<ol> | <ol> | ||
− | <li>Create a | + | <li>Create a GitHub repository for your code early on during your project (use your team name as the repository name, use "_" instead of " " or ":")</li> |
− | <li>E-mail <i>software [AT] igem [DOT] org</i> and give us the <b> | + | <li>E-mail <i>software [AT] igem [DOT] org</i> and give us the <b>GitHub user name</b> of the person who is administrating the repository; We will invite you to join the igemsoftware2019 organization.</li> |
<li>Accept the invite</li> | <li>Accept the invite</li> | ||
− | <li>In the "Settings" tab of your | + | <li>In the "Settings" tab of your GitHub repository page, select <b>"Transfer ownership"</b> (in the Danger Zone at the bottom).</li> |
− | <li>Enter <b>igemsoftware2019</b> as the name of the new | + | <li>Enter <b>igemsoftware2019</b> as the name of the new GitHub organization, then confirm "I understand, transfer this repository"</li> |
</ol> | </ol> | ||
</p> | </p> | ||
Line 28: | Line 28: | ||
<ol> | <ol> | ||
− | <li>Go to the "Code" tab of your | + | <li>Go to the "Code" tab of your GitHub repository page (the default)</li> |
<li>Click on "releases" and then "create a new release"</li> | <li>Click on "releases" and then "create a new release"</li> | ||
<ul> | <ul> | ||
Line 40: | Line 40: | ||
<p> | <p> | ||
− | You may continue to update your | + | You may continue to update your GitHub repo with improved versions of your software and you may also submit additional improved releases. However, the judging release is the primary basis for evaluating your project at the Jamboree. |
</p> | </p> | ||
Line 61: | Line 61: | ||
<li>Quality of codebase documentation</li> | <li>Quality of codebase documentation</li> | ||
<li>Automated testing practices</li> | <li>Automated testing practices</li> | ||
− | <li>Version control (Git & | + | <li>Version control (Git & GitHub)</li> |
<li>Professional software development practices (Agile, Scrum, etc.)</li> | <li>Professional software development practices (Agile, Scrum, etc.)</li> | ||
<li>Making use of previous iGEM teams’ work</li> | <li>Making use of previous iGEM teams’ work</li> | ||
Line 72: | Line 72: | ||
<p>Many tools built by iGEM teams have been of professional-level quality, and others have shown great potential to be improved upon by future teams. Software projects from previous years have resulted in long-term efforts and have even led to several start-up companies. iGEM would love to see that happen again this year.</p> | <p>Many tools built by iGEM teams have been of professional-level quality, and others have shown great potential to be improved upon by future teams. Software projects from previous years have resulted in long-term efforts and have even led to several start-up companies. iGEM would love to see that happen again this year.</p> | ||
− | <p>Since 2012 there has been a centralized repository for software projects on | + | <p>Since 2012 there has been a centralized repository for software projects on GitHub. iGEM is currently exploring ways to host the work products and codebases of previous competitions for synthetic biologists and developers to access and improve in the future. Stay tuned for updates.</p> |
<p> | <p> | ||
<p> | <p> | ||
Line 93: | Line 93: | ||
<p> | <p> | ||
<h2>Requirements</h2> | <h2>Requirements</h2> | ||
− | <p>There is no constraint on languages, libraries or other software developments tools in the track, except that the use of Git/ | + | <p>There is no constraint on languages, libraries or other software developments tools in the track, except that the use of Git/GitHub for version control is mandatory. Please, use git right from the start of your project -- knowing the history of your commits is very helpful for other developers who want to build on your hard work. This will not only preserve the projects but also help others to avoid re-inventing the wheel.</p> |
− | <p>All teams must be part of the iGEM | + | <p>All teams must be part of the iGEM GitHub repository run by HQ - teams must contact the committee (see below), who will create a new account for you to get started. |
Revision as of 18:41, 14 January 2019
Software Track
If you are going to design a new life form, chances are you’ll need a computer to design the smallest genetic circuits and deal with genome-scale complexity.
Software development is a valuable skill set for any synthetic biology team to have. In previous iGEM competitions, software has often been built by wetlab teams to solve specific problems. Recognizing the utility of these software tools, and the importance of software development skills, the software track has been set up for computer scientists and developers to nurture their knowledge of biology, and for computational biologists, bioinformaticians and biologists to enhance their aptitude for building software.
Whether you are a wet lab team that has decided to build a software tool, or a software group looking to get involved in iGEM, we encourage you compete in the dedicated software track 2019.
Code Submission Deadline: TBD
The deadline for submission of code to the iGEM GitHub Repository is the same date as the Wiki Freeze for all iGEM teams (See the 2019 Calendar for details). By this date, you MUST have a GitHub repository within the igemsoftware2019 github page and you MUST have created a GitHub judging release of your software. The preferred way is that you create your own GitHub repository early on during your project and then transfer it into the igemsoftware2019 organization:
- Create a GitHub repository for your code early on during your project (use your team name as the repository name, use "_" instead of " " or ":")
- E-mail software [AT] igem [DOT] org and give us the GitHub user name of the person who is administrating the repository; We will invite you to join the igemsoftware2019 organization.
- Accept the invite
- In the "Settings" tab of your GitHub repository page, select "Transfer ownership" (in the Danger Zone at the bottom).
- Enter igemsoftware2019 as the name of the new GitHub organization, then confirm "I understand, transfer this repository"
Create a judging release of your project:
- Go to the "Code" tab of your GitHub repository page (the default)
- Click on "releases" and then "create a new release"
- Tag version: 1.0.0
- Release title: IGEM Judging release
- Attach a installation-ready copy of your code so that judges can easily download and install your software
- Include a link to this release on your iGEM Wiki page
You may continue to update your GitHub repo with improved versions of your software and you may also submit additional improved releases. However, the judging release is the primary basis for evaluating your project at the Jamboree.
Work Together & Solve Challenges in SynBio Software
Wetlab teams have lots of problems. Software teams can provide solutions. iGEM encourages software and wet lab teams to work together and assist each other. If you need software for your wetlab project, or are a software team looking for a problem, reach out to each other by using the iGEM Reddit, contacting other teams on Twitter, or encouraging computer science departments to start teams.
Two Teams are Better than One
If you have a large ambitious wet lab project that includes a lot of computational work, think about registering two teams -- students can be members of both the computational and the wet lab team at the same time. This gives more exposure to the hard computational work which will be judged by experts (and you can win one more prize!).
Learn to be a Professional Biocoder
iGEM encourages software teams to learn the best practices of professional software developers. As software development is about solving problems in way that is useful for the users and other developers, the software track focuses on teaching students the importance of:
- Quality of codebase documentation
- Automated testing practices
- Version control (Git & GitHub)
- Professional software development practices (Agile, Scrum, etc.)
- Making use of previous iGEM teams’ work
- Documenting code to allow other teams to resume working from where the previous team stopped
- Conducting user experience testing
Tools that Stand the Test of Time
Many tools built by iGEM teams have been of professional-level quality, and others have shown great potential to be improved upon by future teams. Software projects from previous years have resulted in long-term efforts and have even led to several start-up companies. iGEM would love to see that happen again this year.
Since 2012 there has been a centralized repository for software projects on GitHub. iGEM is currently exploring ways to host the work products and codebases of previous competitions for synthetic biologists and developers to access and improve in the future. Stay tuned for updates.
Picking a Project
iGEM software developers should work closely with experimental synthetic biologists and iGEM teams to build tools that are genuinely useful to the synthetic biology and iGEM communities. Software tools could directly help synthetic biologists in the lab, at their desktops, or even in how they communicate with each other and access information. You may wish to build a tool that:
- Improves design, assembly and testing of biological circuits
- Makes bioengineering more predictive
- Helps biologists discover parts and exchange information about them
- Improves Registry navigation
- Helps the iGEM community communicate with one another / identify problems
- Serve as a better BioBrick database API
- Parses information from one form to another
The track is open to all sorts of projects but teams should make sure that they are not repeating work that has been done by the community already. If the team believes they can improve an existing software solution, they should ensure that their tool has significant performance or feature advantages over the existing one.
Requirements
There is no constraint on languages, libraries or other software developments tools in the track, except that the use of Git/GitHub for version control is mandatory. Please, use git right from the start of your project -- knowing the history of your commits is very helpful for other developers who want to build on your hard work. This will not only preserve the projects but also help others to avoid re-inventing the wheel.
All teams must be part of the iGEM GitHub repository run by HQ - teams must contact the committee (see below), who will create a new account for you to get started.
iGEM Software Resources
The requirements for medals in the software track are in line with standards and expectations required of professional software development teams and are supposed to give teams a taste for building useful computational synbio tools. iGEM appreciates that the requirements are tough, and we are working to put together more and more educational materials for teams to use.
Software teams should not necessarily start from scratch; over the years, libraries, design frameworks, and software tools have been built for you to use, abuse and improve wherever possible. In particular teams should make use of the SBOL standard for synthetic biology data exchange as well as SBOL Visual.
Git Resources
Synthetic Biology Resources
Python Resources
Bioinformatics Development Guidelines
Development Frameworks & Team Management
Other Resources
Committee
If students, mentors or other interested parties have any questions about the iGEM 2019 Software Track, the Software Committee can be contacted by emailing software [AT] igem [DOT] org.