Team:MADRID UCM/Software

Software-bueno – iGem Madrid

Brook Preloader
Wave Wave

SOFTWARE

1 Software contributions

One of the main strengths of this team was the interdisciplinarity involved, as we had engineers to deal with the Software-related aspects. That is why this project had a strong software component, being one of our main contributions the Artifical Intelligence algorithms developed to improve the SELEX process. We trained a GAN network with a library that we obtained modifying a previous year iGem team (Lyon 2016) improving it, for instance by making possible multithreading execution. We tested the quality of our algorithm with the Rosetta software for molecules modelling and we are extremely satisfied with both the obtained results and the efficiency in doing so.
github-image-796x418

GITHUB

You can check all the documentation in our GitHub repository.
Go!
We did not stop there and also developed a Search Engine for iGem words -from every year and team- as well as programmed several protocols for the Opentrons robot, where we also had to deal with other software modifications for the Ninja-PCR thermocycler and other Hardware modules.

Hence, the software of our team can be divided into three rather wide parts:

The GAN network with CNN neuronal nets and its Data Base here.
Several Python protocols for the OT2 robot and related software for custom Hardware explained here.
A nice extra tool: a Search Engine for words in other teams websites, since 2009.

2 WordPress To iGem Pages Script

We also developed a tool to make life easier to web page developers at the iGem competition. You can use WordPress templates to develop your site and then migrate it easily with this multi-threaded script.

To run the script you can do:

$ bash treatment.sh [url_1] -nm - - [url_2]

Some additional options are available, feel free to navigate throw our code!

3 Search Engine for iGem

You can use our Search Engine for words in previous or this year's team's websites. This is a python search engine with GUI for searching words in each competition year and team's website.

You can run it from your terminal using:

$ python search.py

You might have some dependencies not installed, you just need to do:

$ sudo pip install

1

4 Python Protocols

You can use our Search Engine for words in previous or this year's team's websites. This is a python search engine with GUI for searching words in each competition year and team's website.

You can run it from your terminal using:

$ python search.py

You might have some dependencies not installed, you just need to do:

$ sudo pip install

Folder OT_Robot in our GitHub contains biotechnological protocols for obtaining trained libraries of DNA aptamer molecules automated with the Opentrons OT-2 robot. This protocol is part of our contribution to the 2019 iGEM international biotechnology competition. For the thermocycler we built the Ninja-PCR.

To use them, you just need to drap and drop or upload the python protocols into the Opentrons App.

You can clone this repo or download the zip. Make sure all the dependencies are covered. First line is for installation of pip at most Linux distributions.

$ sudo apt install python-pip || pacman -S python-pip

$ sudo pip install opentrons subprocess time os

The robot can use the audio robot.mp3 and gets it from Robot Raspberry's /mnt/usbdrive/ (put it there or edit the location). You can load the protocol in the Opentrons application, available here. We also recommend the usage of an external Raspberry Pi to uninterruptedly provide the robot with Wi-Fi. Once you have stablished the Wi-Fi network at the Raspberry, you can connect the Robot too:

# nmcli dev wifi connect password

After the last update of the Robot -by the time this is written- the SSH connection has changed and now you need to exchange with it a public key for a more secure connection. Then when connected via SSH the robot will request the passphrase, at least the first time. Here is how you create the public key (you probably already have one):

robot

$ ssh-key
Generating public/private rsa key pair.
Enter file in which to save the key (/home/.ssh/id_rsa):
/home/pepe/.ssh/id_rsa already exists.
Overwrite (y/n)?
Enter passphrase (empty for no passphrase):
Your identification has been saved in /home/.ssh/id_rsa.
Your public key has been saved in /home/.ssh/id_rsa.pub.
The key fingerprint is:
a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 pepe@remote_host
The key's randomart image is:
+--[ RSA 2048]----+
| ..o             |
| E o= .          |
| o. o            |
| ..              |
| ..S             |
| o o.            |
| =o.+.           |
|. =++..          |
|o=++.            |
+-----------------+