Giter VIP home page Giter VIP logo

rosetta-at-home's Introduction

Fold for Covid - help in the fight against COVID-19 with Rosetta@home

With the recent COVID-19 outbreak, R@h has been used to predict the structure of proteins important to the disease as well as to produce new, stable mini-proteins to be used as potential therapeutics and diagnostics, like the one displayed above which is bound to part of the COVID-19 spike protein. Read more

This project has been built to get you up and running with as many devices as possible for the least effort. If you want to deploy and run this project manually, read on, if you want to add your devices to the global fleet, head on over to foldforcovid.io

Hardware compatibility

This app should run on 64-bit OS devices with 1 or more GB of RAM, but we've tested on the below:

  • Raspberry Pi 3 (1GB RAM)
  • Raspberry Pi 4 (1GB RAM)
  • Raspberry Pi 4 (2GB RAM)
  • Raspberry Pi 4 (4GB RAM)
  • NVIDIA Jetson Nano
  • Intel NUC (and other generic x86_64 devices)
  • Most Intel-based laptops & desktops with a wired ethernet connection should also work OK

Getting started

This is a containerized app intended to run on balenaCloud, which allows you to deploy it to an entire fleet of devices and get as many of them folding as quickly as possible for the least effort. BalenaCloud covers 10 devices for free, but if you want to run this app on a larger fleet please get in touch.

One-click deploy to balenaCloud:

balena deploy button

or

Setup the device(s)

  • Sign up for or login to the balenaCloud dashboard
  • Create a fleet, selecting the correct device type
  • Add a device to the fleet, enabling you to download the OS
  • Flash the downloaded OS to your SD card with balenaEtcher
  • Power up the Pi and check it's online in the dashboard

Deploy this app

  • Install the balena CLI tools
  • Login with balena login
  • Download this app and from the app directory run balena push <fleetName> where <fleetName> is the name you gave your balenaCloud fleet in the first step.
  • The app will then be downloaded and started by each device in your fleet.

For further information, see the balenaCloud documentation.

Check the status

This app has a built in web interface that allows you to see statistics and more. Simply visit the local IP address of your device or enable the public URL for your device in the balenaCloud dashboard and you'll be able to access statistics from anywhere!

web-ui

The web interface uses GoTTY to provide access to boinctui via a standard web browser.

Customization

By default, your device will contribute work units to the Fold for Covid team. To override this and contribue to a team of your choosing, you can set your account authentication key by using the device variable ACCOUNT_KEY, set from the balenaCloud dashboard. This will automatically update the XML configuration file with your key and ensure you're credited for completed work units.

FAQ

  • You can start the cli-based UI by running boinctui within a terminal to the boinc-client container.

  • If you are not receiving work units, in boinctui try pressing F9 -> rosetta -> update.

Contributing

We encourage you to submit bug reports, feature requests and PRs, compatibility updates, everything! Let's get this running on as many devices as we can.

Support

If you have issues deploying or running this project please start a thread in the balena forums and we'll be happy to help.

rosetta-at-home's People

Contributors

balena-ci avatar chrisys avatar cmfcruz avatar dtischler avatar iamsolankiamit avatar jsreds avatar ptrm avatar rahul-thakoor avatar shawaj avatar thgreasi avatar tmigone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rosetta-at-home's Issues

Does this have a license?

Hi!

I'm looking through the repository but I cannot find any sign of what license this might be using. Is this intentionally unlicensed?

Handle situation to revert to F4C account key

If a user defines their own account key that is currently put in place of the Fold for Covid key in global_prefs_override.xml, but we do not handle the situation to revert back to the Fold for Covid key if the user removes their own.

"Deploy with Balena" button doesnt work

When I click on "Deploy with Balena" button on this project home page, it will open my dashboard, then I create a new app, but no release is added. I have to clone in it and deploy it from my computer via balena push

fetch_minimal_work param: 1GB Raspberry Pi 3 continues to run many tasks at once

image
which results in reboots.

I tried to investigate whether any client / server config overrides might have happened, but found none. I assume the param should override server settings at least, and below is the global override which contains only cpu usage settings. The file list is in case you needed any other content, I've got it tarballed on my laptop.

/media/piotr/resin-data/docker/volumes/1644552_boinc/_data# ls -l
total 180
-rw-r--r-- 1 root root   926 kwi 22 13:32 account_boinc.bakerlab.org_rosetta.xml
-rw-rw-r-- 1 root root   161 kwi 22 13:32 account_boinc.rosetta.bakerlab.org.xml
-rw-r--r-- 1 root root 53556 kwi 22 10:58 all_projects_list.xml
-rw-r--r-- 1 root root 25846 kwi 22 13:34 client_state_prev.xml
-rw-r--r-- 1 root root 25847 kwi 22 13:34 client_state.xml
-rw-r--r-- 1 root root   325 kwi 22 13:33 coproc_info.xml
-rw-r--r-- 1 root root   120 kwi 22 13:34 daily_xfer_history.xml
-rw-rw-r-- 1 root root   258 kwi 21 22:18 global_prefs_override.xml
-rw-rw-r-- 1 root root     0 kwi 21 22:18 gui_rpc_auth.cfg
drwxr-xr-x 2 root root  1024 kwi 22 10:58 locale
-rw-r--r-- 1 root root     0 kwi 22 10:58 lockfile
-rw-r--r-- 1 root root 13655 kwi 22 11:26 lookup_website.html
-rw-r--r-- 1 root root 23721 kwi 22 10:58 master_boinc.bakerlab.org_rosetta.xml
drwxrwx--x 2 root root  1024 kwi 22 13:33 notices
drwxrwx--x 3 root root  1024 kwi 22 10:58 projects
-rw-r--r-- 1 root root 17375 kwi 22 11:20 sched_reply_boinc.bakerlab.org_rosetta.xml
-rw-r--r-- 1 root root  5972 kwi 22 11:20 sched_request_boinc.bakerlab.org_rosetta.xml
drwxr-xr-x 6 root root  1024 kwi 22 11:46 slots
-rw-r--r-- 1 root root   425 kwi 22 11:20 statistics_boinc.bakerlab.org_rosetta.xml
-rw-r--r-- 1 root root     0 kwi 22 10:58 stderrgpudetect.txt
-rw-r--r-- 1 root root  1020 kwi 22 13:33 stdoutgpudetect.txt
-rw-r--r-- 1 root root  2542 kwi 22 13:34 time_stats_log

/media/piotr/resin-data/docker/volumes/1644552_boinc/_data# cat global_prefs_override.xml
<global_preferences>
   <max_ncpus_pct>100.000000</max_ncpus_pct>
   <ram_max_used_busy_pct>100.000000</ram_max_used_busy_pct>
   <ram_max_used_idle_pct>100.000000</ram_max_used_idle_pct>
   <cpu_usage_limit>100.000000</cpu_usage_limit>
</global_preferences>

Investigate ways to improve power management for old laptops

With the current implementation of power-management, there are cases where if a laptop is closed and that container stops (for reasons such as update), the device could fall into a sleep state.

To quote @rahul-thakoor "if the power-management service dies, the lock for the file descriptor is released and the action is removed!"

Users reporting 4GB Pi 4 still reboots

Users are still reporting that 4GB Pi 4s reset when working on 4 tasks. Reports say 3 tasks are OK. 2GB devices are now running stably with 1 task.

Reduce the number of Pi 4 allocated tasks to 3 by setting CPU usage percent to 75.

Message from server: This project doesn't support computers of type arm-unknown-linux-gnueabihf

I'm getting this error when trying to get tasks from Rosetta@Home. What can we recommend to users encountering the same?

Message from server: This project doesn't support computers of type arm-unknown-linux-gnueabihf

I am using a Raspberry Pi 4 4GB RAM.

Hardware        : BCM2835
Revision        : c03111
Serial          : 10000000c45ae232
Model           : Raspberry Pi 4 Model B Rev 1.1

Here is the screenshot of the error:
Screenshot

Rosetta web is reporting the use of an old URL

In the boinctui I can see this message:

This project is using an old URL. When convenient, remove the project, then add https://boinc.bakerlab.org/rosetta/

If you can see the message, It appears if you go to the menu: Projects > Rosetta@home > Update project

I must change this by myself or not?
Thanks

I add an snapshot:

image

Unable to Run on RPI 3 B+

Hello,

I've successfully completed the setup & my Pi is up & running, however I'm getting messages similar to the following on my web interface:

Rosetta needs 1716.61 MB RAM but only 966.83 MB is available for use.

image

Any ideas?

Old boinc account file causes the updated one to be ignored

The new account_boinc.bakerlab.org_rosetta.xml introduced in #24 is ignored by boinc due to the old account_boinc.rosetta.bakerlab.org.xml persisting on the boinc volume:
Screenshot from 2020-04-29 09-09-08

This might have lower impact on foldforcovid.io devices for the time being, but account change attempts won't succeed until the old account file is deleted.

User reports RPi4 2GB has it's UI service on a restart loop

[thgreasi] That's on a fresh DWB installation w/ balenaOS 2.56.0. The boinc-client was running properly but the UI was in a restart loop.
Supervisor logs:

[debug]   Replacing container for service ui because of config changes:
[debug]     Non-array fields:  {"added":{},"deleted":{},"updated":{"memReservation":16777216}}
[debug]   Replacing container for service ui because of config changes:
[debug]     Non-array fields:  {"added":{},"deleted":{},"updated":{"memReservation":16777216}}
[warn]    Ignoring unsupported or unknown compose fields: blkioConfig
[event]   Event: Service install {"service":{"appId":1753819,"serviceId":728349,"serviceName":"ui","releaseId":1560674}}
[event]   Event: Service installed {"service":{"appId":1753819,"serviceId":728349,"serviceName":"ui","releaseId":1560674}}
[event]   Event: Service start {"service":{"appId":1753819,"serviceId":728349,"serviceName":"ui","releaseId":1560674}}
[event]   Event: Service started {"service":{"appId":1753819,"serviceId":728349,"serviceName":"ui","releaseId":1560674}}
[warn]    Ignoring unsupported or unknown compose fields: blkioConfig

This also kept happening even after stopping the bloinc-client and having some RAM being freed.

Insufficient RAM on RPi 3?

Still getting this message in a loop:

Message from server: Rosseta needs 1716.61 MB RAM but only 708.30 MB is available for use.

Any clue?
There is info in project's readme that RPi 3 is between tested devices...

Thanx for help!

RPI 4 1Gb is not working

I've next logs from a RPI 4 1Gb when I push the code from master:

19.04.20 15:28:37 (+0200)  boinc-client  19-Apr-2020 13:28:37 [Rosetta@home] Rosetta needs 1907.35 MB RAM but only 965.88 MB is available for use.
19.04.20 15:28:37 (+0200)  boinc-client  19-Apr-2020 13:28:37 [Rosetta@home] Rosetta needs 1716.61 MB RAM but only 965.88 MB is available for use.
19.04.20 15:29:05 (+0200)  boinc-client  19-Apr-2020 13:29:05 [---] Project communication failed: attempting access to reference site
19.04.20 15:29:07 (+0200)  boinc-client  19-Apr-2020 13:29:07 [---] Internet access OK - project servers may be temporarily down.

Has anybody the same problem?

BalenaOS startup hang on Virtualbox

When I plugged in the installation thumb drive, the balena logo came out and the computer shut down. After turning it on again, I pressed the up arrow to open the command prompt and saw that it was stuck on a particular stage.

Jetson Nano: Leverage PWM Fan

It's recommended to use a PWM fan (like the Noctua nf-a4x20 5V PWM fan) with the Jetson Nano board to avoid damaging it under normal operation (especially if used for long period of time, like rosetta-at-home).

Having a PWM fan is of course optional, but when we have one, it'd be best to leverage it to keep the board cooler if possible.

In the case of balenaOS on the nano, I noticed at the momento it doesn't seem to activate the PWM fan (tested yesterday, FAN didn't run at all, not even slowly).

Some software logic need to be used to adjust the fan speed.

On one hand, the temperature of the board can be read via software (just open and read value from /sys/devices/virtual/thermal/thermal_zone0/temp).

On the other hand the PWM fan speed can be adjusted by software by writing an int between 0 (low speed) and 255 (full speed) to /sys/devices/pwm-fan/target_pwm.

For example, if temp is below 20ºC, keep at speed 0, if temp > 50ºC , keep at full speed (255). Between 20 and 50, map/ramp up speed from 0 to 255. See example code here (https://github.com/Pyrestone/jetson-fan-ctl/blob/master/fanctl.py).

PS: I didn't find any way to access the balenaOS with SSH so I couldn't try this below. But it should be doable as it works fine in Linux with the official Nvidia image (meaning that the linux kernel exposes the necesarry API to read/write the temp sensor and the PWM fan speed).

More info:

If you give me instructions to enter the balenaOS via SSH for example and test command, don't hesitate to contact me (here or email)

Have 2 or 3 task on Raspberry Pi 4 with 2GB

Hey, after this change in #25 my RPi4 2GB RAM goes well and never run out of task, but I think this board can manage 2 or 3 task simultaneously.

Is possible to add this intermediate config, isn't ?
Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.