Kategorien
Blog Software

Help protein folding for e.g. COVID-19 with your idle computers

There is a project simulating protein folding called folding at home.

Protein folding
DNA

Simulating the folding process of proteins requires a huge calculation power, that is normally offered only by super computers.Protein folding is used to fight deseases like HIV, Alzheimer, cancer and also the quite new COVID-19

The folding at home project is using the idle time of your personal computer making calculations for the possible foldings of a protein.

There are clients available for Windows und Linux. The installation is quite simple.

Unfortunately there are no packages available for Raspberry PIs as the computing power is too low.

This approach here uses the idle time of your (small) desktop or laptop computer at home and contributing to different projects while calculating so called „work units“. The client requests a work unit from a server and then makes the dedicated calculations in a maximum defined time, typically a few days. At the end the result of this work unit is sent back to the server.

You can „earn“ some points and also define a team, if you like.

I had some problem getting a work unit from the server on my Linux system. The following script helped as it pulls the server every 30 seconds for a new work unit. I found a quite good solution in the foldingathome forum.

#!/bin/bash
cd /var/lib/fahclient

while true
do
egrep -i "Download|No WUs available" log.txt|tail -1|egrep "No WUs available"
results=$?
#echo "$(date)    results = $results"
if [ $results = 0 ]
then
INDEX=$(egrep -i "Download|No WUs available" log.txt|tail -1|egrep "No WUs available"|cut -d F -f2 |cut -b 3)

echo "PAUSED *******  $(date) INDEX = $INDEX"
echo -e "pause $INDEX\nquit" | nc localhost 36330 &> /dev/null
sleep 10
echo -e "unpause $INDEX\nquit" | nc localhost 36330 &> /dev/null
fi
sleep 30
done

If you have multiple clients running you have to allow the access to each client for the remote access. How to do the configuration is explained here. For stopping and starting the server under Linux use these commands:

sudo /etc/init.d/FAHClient stop
sudo /etc/init.d/FAHClient start