Beryllium10: a free and simple tool for creating and managing group safety data sheets
© Kochmann; licensee Chemistry Central Ltd. 2014
Received: 27 January 2014
Accepted: 14 March 2014
Published: 20 March 2014
Countless chemicals and mixtures are used in laboratories today, which all possess their own properties and dangers. Therefore, it is important to brief oneself about possible risks and hazards before doing any experiments. However, this task is laborious and time consuming.
Beryllium10 is a program, which supports users by carrying out a large part of the work such as collecting/importing data sets from different providers and compiling most of the information into a single group safety data sheet, which is suitable for having all necessary information at hand while an experiment is in progress. We present here the features of Beryllium10, their implementation, and their design and development criteria and ideas.
A program for creating and managing of group safety data sheets was developed and released as open source under GPL. The program provides a fast and clear user-interface, and well-conceived design for collecting and managing safety data. It is available for download from the web page http://beryllium.keksecks.de.
Nowadays, many types of chemicals and mixtures are used in laboratories. Some of them are harmless and do not cause any problem. Most of them are dangerous if not handled with great care, though. Since each chemical possesses its very own properties and dangers, a vendor has to provide material safety data sheets (MSDSs) to inform users and purchasers about these properties and dangers. In Europe MSDSs are part of the regulations (EC) No 1907/2006 (REACH) and (EC) No 453/2010 [1, 2], and there are similar regulations in other countries.
A MSDS contains multiple pages with no less than sixteen sections of data about one chemical . The amount and presentation of data sometimes makes a MSDS very confusing. This is amplified by the fact that in contrast to the content the layout of a MSDS is not clearly specified. So, every vendor uses his own layout since there is no standard template. For common tasks such as syntheses more than one chemical usually is required and these chemicals frequently are purchased from different sources. Due to this it is laborious and time consuming to find and compile safety information such as disposal or first-aid. Additionally, particular dangers such as teratogenicity may be overlooked. Based on our own experience these are the reasons why the task of briefing oneself about dangers is neglected, not only by freshmen but by experienced researchers.
When looking at the exemplary GSDS in Figure 1, one will notice the limited space of two pages. Limited space is a feature and the basic concept of a GSDS. It forces the author to focus on only the most important information available.
A GSDS is divided into different sections. The head section (1) provides five lines with general information about the institute/university, the course/department, the user, and the task or experiment, which the user wants to perform. Required substances and mixtures for this task are listed in the next block (2). The last block (3) on the front page lists the texts of all essential hazard/precautionary-phrases (H/P-phrases) or risk/safety-phrases (R/S-phrases) from all substances. The back page possesses a large section (4) for additional notes to make the user aware of particular rules regarding dangers, safety rules, behaviors in case of danger, and waste disposal. The final block (5) yields space for two signatures, usually one of the chemical user and one of the supervisor.
Still, one has to fill all these sections with content, which is the most laborious and most time consuming step. Theoretically, one can use any word processor for this task. Practically, one will miss handy features such as import and export functions for often used chemicals such as acetone, diethyl ether, sodium hydroxide, and others. Commercial software solutions  are available, but most of them are overloaded with features, use proprietary file formats, and are very expensive. On the other hand, there are some free online tools such as GisChem , but they require permanent online access, and do not allow to create local databases (or no databases at all), which makes managing data very difficult.
This situation prompted us to write a program for creating, managing and printing such group safety data sheets. It was released as a free tool and is described in this article. Initially, we used ‘Beryllium’ as a working title for this spare time project. However, the first version written in C++/WTL (Windows Template Library, see ) spread very fast and so the name remained. In 2012, a complete rewrite was done in C++/wxWidgets (see ) to provide a Linux version, too. It was called ‘Beryllium10’ because of the very long half-life of 10Be that makes it the second most stable isotope of this element .
Create a list of required substances
Look for and download safety data for each substance
Compile, sort, and arrange data
Check and edit data if necessary
Save and print data
Brief oneself and/or others with the safety data
A list of substances is automatically achieved when planning an experiment or process with chemicals involved. The last point cannot be implemented by any program since the chemical user always bears the responsibility to comply with safety rules, which includes briefing oneself and others of potential risks and safety precautions. This is confirmed by signature on the GSDS. Except for these two steps Beryllium10 will support the user with the remaining tasks. The following paragraphs describe the implementation of these.
The development of Beryllium10 followed some specific design criteria. First, the program should require no installation beyond file copying. Secondly, the program should provide an easy-to-understand, minimal, and therefore clear user interface, which allows to change most of the content by just clicking on it. Thirdly, data should be stored in an human-readable format. Last, the program should both support the old regulation system (R/S phrases, orange hazard symbols)  as well as the new Globally Harmonized System of Classification and Labeling of Chemicals (GHS, H/P phrases, red/white hazard symbols) [1, 9]. Also, the inability to change the layout was designed on purpose for providing a uniform experience when working with the program and GSDSs.
In this context, a provider is an abstract source of (safety) data. Internally, it is represented by the abstract interface class IProvider. This interface provides virtual functions for the communication with the search dialog and also implements helper functions used by all derivates. The specific providers are implemented in derivated classes. At the moment there are four providers available, viz. CBerylliumProviderLocal, CBerylliumProviderWiki, CBerylliumProviderGESTIS, and CBerylliumProviderMerck, which correspond to the local database, Wikipedia, GESTIS  and Merck Millipore , respectively. The search dialog just fills a vector with all available providers and queries them by the appropriate functions when needed. This design allows easy addition of new import sources to Beryllium10.
The actual implementation of the providers differ a lot in terms of complexity. CBerylliumProviderLocal only needs to load data from a structured XML file from the hard disk, whereas CBerylliumProviderMerck has to download and parse the complex and (partly) chaotic HTML output from the dynamic Merck Millipore webpage . Although HTML is standardized , it is meant to be displayed in a browser. Browsers are very tolerant regarding incomplete, wrong, and missing tags, which are almost naturally generated by such a complex dynamic webpage. Therefore, these are not visible while surfing but can cause a lot of trouble when parsing. So, a lot of time is spent in this implementation not only for finding and extracting the wanted tables and data, but rather for ‘fixing’ the HTML output. Unfortunately, this also results in high effort in maintaining code and is the reason for rather infrequent updates on this part of Beryllium10.
In the end and regardless of the method of data acquiring, the provider generates a filled data object, which is just copied and forwarded to the main program and inserted into the GSDS. The diagram in Figure 2B compiles and explains the communication between the interface (and its derived classes), the search dialog, and the main program.
It should be noted that the median lethal doses (LD50) are not read in because of the following issue. Identifying a value and its unit is simple. However, there are innumerable ways how vendors are providing the type of exposure and the associated species. They are given with or without brackets, or put before or behind the value. Multiple LD50 values are sometimes grouped together in one line, sometimes separately in multiple lines, and sometimes in tables. In some cases they are even given in a different language from the rest of the MSDS. Even for the same vendor, formats are inconsistently applied. Due to this, parsing of LD50 values often results in a incomplete and inaccurate toxicological data set. This would force the user to manually check and compare the read in values with the original safety sheet, every time. So, it does not make any difference whether the toxicological data is downloaded automatically or transferred by hand. Consequently, the LD50 values have to be transferred by hand at the moment to avoid any problems. However, the user can easily open the original safety data sheet by clicking on the link provided on the ‘Source’ tab of the substance properties dialog to do this (see below).
Result and discussion
Beryllium10 assists the chemical user in filling in and editing a GSDS. Some sections are fully or partially completed by the program itself. Naturally, other information such as the institute, name, or the task have to be manually entered by the user.
For instance, the ‘essential H/P phrases’ on the front page are automatically collected from all inserted substances and subsequently summarized. Of course, with more substances there are probably too many phrases to fit into the available space. Hence, the user can click on the block and decide, which phrases are more important (regarding the task) and should be shown, and which ones are less important and be hidden.
Similarly, the back page is partially filled in. First, the program inserts some standard phrases such as ‘Wear suitable protective clothing, gloves and eye/face protection at all time’. Secondly, substance-specific sentences are added. These are generated from both the ‘Hints’ page in the properties dialog of a substance and from phrase-dependent templates. For example, R17 would add ‘Only work under inert gases.’ to the ‘Protective measures and safety rules’-section. Templates can be modified by editing of ‘templates_xx.xml’ (xx is the language code) in the ‘config’-subdirectory. Substance-specific sentences are added with the preceded, bold substance name. Once again, the user can again click on one of the sections on the back page to edit or add general sentences.
Since Beryllium10 supports both the old and new hazard symbols and phrases, there are also columns available for both. The user can switch between them easily by clicking on a button on the toolbar of the main window or by selecting the respective columns. However, one should notice that the old system is no longer supported by all providers and therefore they may not provide any data for this anymore. In Figure 4A the data for acetic anhydride is missing because of this reason.
Toxicological data is presented in its own column with two lines. The first line is a limit concentration (climit) and the second one shows the German water hazard class (WGK). There is a famous proverb, which should be considered in dealing with toxicological substances: ‘Better be safe than sorry’. Hence, Beryllium10 always selects the minimum concentration out of all available data of a substance for the first line. This can be the threshold limit value (TLV, or MAK in Germany) or one of the median lethal doses (LD50). These values are mostly given in units per volume or units per (body) mass depending on the most probable type of exposure to the substance. It is easy to compare concentrations of the same type but not of different ones. Therefore, reasonable reference systems are required. In the sense of the proverb mentioned above we decided to use a reference body mass of 50 kg (a small person) and a reference volume of 1.5 m3, which corresponds to the volume of a non-functional fume hood. The amount of substance can then be calculated using these reference systems and subsequently compared. The German water hazard class classifies substances into four categories from substances, which are not hazardous to water (class 0 or NWG) to substances, which are substantially hazardous to water (class 3). On the GSDS only the class number (1-3, or ‘-’ for class 0) is shown.
Finally, the last two columns show the entered batch and the so-called Be10-Points, respectively. The latter one are calculated by the program and explained in its own section (see below).
Data format and printing
All data of a data sheet can be saved into one XML file . This human readable format allows the import and export from and to other programs without any problems. Another plus is the expandability of this format, which allows to add other information (e.g. structural data). The overall structure of an Beryllium10-XML file is very straightforward and can be learned by just loading a file in a text editor.
A whole safety data sheet is mainly an array of these substance-elements plus some extra elements, which hold the texts for the head section, the texts for the back page, and the columns and phrases to show or hide. It is possible to export and import individual compound data to library files, which is just an array of substance-elements. If the library already contains an entry with the same CAS number, it will be replaced. A library file also can be used as a source (provider) for collecting data (see above).
Of course, the data sheet can be printed onto any printer (or in a PDF, if a PDF printer is available) that is supported by the operating system. Printing is required for signing the data sheet since digital signatures are not provided by Beryllium10 and are also not within the idea of a GSDS (i.e. audited safety information at hand).
Be10-points should give the chemical user a relative - NOT absolute - rating of the dangers of substances for the user. They are calculated on the basis of the available safety data of a compound. In general, these points are a sum of three terms, i.e. A, B, and C, which depend on the GHS pictograms and signal word, on the H- and P-statements, and on the batch, respectively.
Basic score and modifiers for calculation of term A
GHS pictogram (description)
Explosive (exploding bomb)
Doubled, if flash point is below 100 °C
Oxidizing (flame over circle)
Doubled, if flash point is below 100 °C
Compressed Gas (gas cylinder)
Corrosive (corrosion on hand and surface)
Toxic (skull and crossbones)
Irritant (exclamation mark)
Health hazard (health hazard)
Environmentally damaging (fish and tree)
Multiplied by (WGK + 1)
Score is doubled, if signal word is ‘Danger’
Obviously, the individual impact of each term on the total score differs and depend on the available data of a compound. For classified compounds with a small data set, i.e. one or two pictograms and only few (and general) H/P phrases, term A has a larger impact. This is reasonable since term A represents the GHS pictograms, which in turn represent very general warnings of dangers. On the other side, term B represents more accurate dangers and safety precautions. Therefore, it has the largest impact in most cases. Assuming a batch and corresponding toxicological data is provided, term C has usually a noticable impact on the total score, too. This is due to the fact that in many cases the batch will exceed at least one of the provided toxicological limit concentrations or doses (the ones for mice or rats) resulting in a high score for term C. Total scores for common chemicals and batches lie in between 1000 and 10000 points. However, term C dominates the total score and raises it over 10000 points if the batch exceeds the limit concentration too much.
It should be noted that this system makes no claims of being perfect and it may happen that dangers are over- or underestimated. It is a small approach to automatically estimate and compare dangers, and is provided as a support and sorting tool only. The calculation may change in future versions. The qualified chemical user always bears the responsibility!
Single safety data sheet
Beryllium10 is also able to create single safety data sheets (SSDSs). In contrast to a GSDS, a SSDS possesses only the safety data for one compound on only one page. Nevertheless, these sheets are designed by the same basic principle, i.e. to have a clear overview of safety data at hand. SSDSs are useful in cases where one specific compound is continuously used. For instant, acetonitrile, methanol, and dichloromethane are common eluents in high–performance liquid chromatography (HPLC) . SSDSs for these substances can be printed and put somewhere near or directly on the HPLC instrument for everyone to see. So, the safety information is always at hand.
In this article we presented Beryllium10, a program for creating group safety data sheets. Group safety data sheets provide a short and clear overview of dangers and more for experiments and tasks, which are always at hand. Beryllium10 was developed to assist the user in the whole progress by providing a fast and clear user-interface, and well-conceived design for collecting and managing such safety data. It is already a popular tool at numerous universities in Germany, and we hope it becomes a useful tool at other institutes, universities and countries, too.
Availability and requirements
Beryllium10 is publicly available software. It can be used, copied and distributed freely. A single zip-archive can be downloaded from the homepage, which contains both the Windows and the Linux version. The Windows version (beryllium10.exe) runs on Windows XP and 7, whereas the Linux version (uBeryllium10) runs on Ubuntu 12.04, Knoppix 7.2, and other Debian based distributions. They do not need any installation and, therefore, no administration rights to use. Since version 2.2 Beryllium10 is released under GNU GPL v3 and the source code is freely available on Sourceforge. This will especially allow other developers implementing new providers, and expand and adjust the functionality of the program. Also, it is possible to compile the program on other platforms than listed here. Project name: Beryllium10Project homepage:http://beryllium.keksecks.deSourceforge link:http://sourceforge.net/projects/beryllium10/Operating Systems: Windows (XP, 7), Linux (Ubuntu, Knoppix and other Debian based distributions) Programming language: C++/wxWidgets Other requirements: No requirements License: GNU GPL v3 Any restrictions to use by non-academics: None
A current version of Berylium10 (Version 2.3, Build 1078) is available as ZIP–archive as Additional file 1. This archive contains both a compiled Windows and Linux binary, and all further files required to use the program together with some sample safety data sheets.
Special thanks to Hubert Scheubeck, Josef Heiland, Nadja Leibl, the members of the forum ‘Heidelberger Bunsenbärchen’, and the student councils of RWTH Aachen, Ludwig-Maximilians-Universität München, and University of Regensburg for all the support and feedback on Beryllium10. Thanks to Hubert Scheubeck and Andrea Beutner for revision of the manuscript.
- Regulation (EC) No 1907/2006 Of The European Parliament And Of The Council. 2012, [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CONSLEG:2006R1907:20121009:EN:PDF],
- Regulation (EC) No 453/2010 Of The European Parliament And Of The Council. [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2010:133:0001:0043:en:PDF],
- Federal Institute for Occupational Safety (Germany): Safety Data Sheet (SDS)–compiling software–products. 2013, [http://www.baua.de/en/Topics-from-A-to-Z/Hazardous-Substances/Hazardous-Substances.html],Google Scholar
- G RCI – GisChem Gefahrstoffinformationssystem. [https://ssl.gischem.de/oeb/index.htm],
- Windows Template Library (WTL). [http://wtl.sourceforge.net/],
- wxWidgets - Cross-Platform GUI Library. [http://www.wxwidgets.org/],
- Audia G, Bersillonb O, Blachotb J, Wapstrac A: The Nubase evaluation of nuclear and decay properties. Nuclear Phys A. 2003, 729: 3-128. 10.1016/j.nuclphysa.2003.11.001.View ArticleGoogle Scholar
- Commission Directive 2001/59/EC. [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2001:225:0001:0333:EN:PDF],
- Globally Harmonized System of Classification and Labelling of Chemicals (GHS), 2nd revised edition. United Nations, New York and Geneva. 2007, [http://www.unece.org/fileadmin/DAM/trans/danger/publi/ghs/ghs_rev02/English/00e_intro.pdf],
- IFA - Databases on hazardous substance (GESTIS). [http://www.dguv.de/ifa/Gefahrstoffdatenbanken/GESTIS-Stoffdatenbank/index-2.jsp],
- Merck Millipore International. [http://www.merckmillipore.com/],
- W3C: HTML5. [http://www.w3.org/TR/html5/],
- Extensible Markup Language (XML). [http://www.w3.org/XML/],
- Meyer VR: Pitfalls and Errors of HPLC in Pictures. 2013, Wiley-VCH Verlag GmbH & Co. KGaA: Weinheim GermanyView ArticleGoogle Scholar
This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.