Endlich Urlaub

Ich hatte ziemliches Glück bei der Auswahl der ersten Firma, für die ich jetzt, nach meiner unversitären Zeit, arbeite . Ich freue mich über die Gelegenheit jeden Tag etwas neues lernen zu können — anstrengend ist es trotzdem. Kommt dann noch ein Umzug dazu fühlt man sich schnell ausgelaugt.

Umso besser, wenn man einen kurzen (Aktiv-) Urlaub machen kann. Ich finde interessant, dass ich obwohl ich Muskelkater habe wie lange nicht mehr und jeden Abend erschöpft vom Klettern und Wandern ins Bett falle, erholt und ausgeruht bin. Die Anstrengung der letzen Zeit schien doch eher eine mentale zu sein. Bald geht es aber in alter frische weiter. Die Landschaft trägt dazu definitief bei:

Mass deconvolution for mMass

First things first, you may the Program and the source code here. Now, for the manual.


I am spending a lot of my working hours doing ms-analysis of intact proteins. Having access to a MaxisII (no, Bruker is not paying me to post this), we can do quite interesting experiments. However, intact protein samples containing multiple species (or different proteins) which cannot be separated chromatographically can be quite tedious to analyze. Luckily, there is good software around to do this kind of analysis. Although the Bruker software offers the possibility to use a charge ruler to calculate the protein masses, I prefer to have a file in the end I can pass to the clients and allow them to have a look at the raw data themselves. A good tool for this is mMass. This (free & open source) program allows the analysis of *.xy or *.msd files extracted from the chromatogram, containing a single mass spec file.

To calculate the mass resulting from the individual charge states, two methods can be used which are described in the tutorials for mMass (and can be found in this excellent tutorial). During annotation of isotope-separated spectra, I want to know the masses resulting from multiple charge states of the spectrum to get an idea about the measurements quality. Annotating all these peaks by hand is tedious in mMass. Doing a “related charge deconvolution” can also be a hard, as measuring the exact distances is difficult. To address both problems I wrote the „related ion deconvoluter„, which allows to annotate multiple peaks picked in mMass based on a calculated precursor mass or a known charge state for a single peak.


    Pick peaks in mMass using appropiate settings
Pick peaks in mMass using appropiate settings

To annotate all peaks belonging to a mass, annotate the *.xy file using mMass first. Only peak picking and saving the resulting *.msd file is necessary.

Opening an *.msd file
Opening an *.msd file

Reopen this file using the Related_Ion_Deconvoluter. In the middle tab it will show all detected peaks, not assigned to a specific mass yet. The left tab shows all already assigned charge states, the right window all charge states the program has calculated based on the known protein masses. These and some infos about them (which allow you to judge the quality of the annotation) are shown in the lower tab. On the far right you’ll be able to change the minimal and maximal charge state detected, as well as the variance on which the detection algorithm is based (the variance is oriented on the deconvoluted precursor mass, not the single charge states!) . You can also modify the number of decimals shown by the program, note that this does not affect the calculations (they are done the maximal accuracy).

If a single charge state has already been annotated, press the „Process“ button. The program checks if the unknown peaks may belong to the corresponding precursor (based on the single known charge state and the variance). If a peak belongs to the group it is removed from the “unknown peaks” list and added into the right tab. The resulting protein masses are added to the lower window, together with the mean of all peaks assigned to this group, the RMSD, the number of charge states annotated and a median intensity of all these peaks.

Adding a new charge state to the list
Adding a new charge state to the list

If no charge state has been annotated so far, you can select a peak in the middle tab, enter the corresponding charge into the „Charge“ field and press the „Add charge“ button. The corresponding precursor will be calculated, added to the lower tab and all peaks belonging to this precursor (taking the variance into account) will be added to the right tab.
Another possibility to add a precursor is to enter its mass into the „Protein mass field and click the „search protein“ button.

In case a protein is labeled wrongly or by mistake, you may remove all peaks belonging to a certain precursor by pressing the ”remove protein“ button, which will transfer all peaks from the „known“ and „guessed“ list to the „unknown“ list again.

The newly created *msd file, now with charge states annotated
The newly created *msd file, now with charge states annotated

Once you click the „write“ button you can create a new *.msd file which, once reopened in mMass, allows deconvolution and further analysis of the spectrum. The program does not save unknown peaks right now, I will add this option in a future release.

Feel free to download, change and use the program as you like (on your own risk). Its written in python2.7, the source code is available in the package as well. Obviously, I’ll only providing the program “as is”, without any kind of warranty.

Improving linux compability of Lenovos E460

There are multiple problems with running my Lenove Edge 460 using Linux free drivers only (especially the graphics driver amdgpu).
Here are my optimizations and tweaks so far, that circumvent the following problems:
I’m currently using arch Linux, running kernel 4.5.1-1-zen 4.6.1-1-zen.

  1. amdgpu not turning off discrete graphics card completely
    resolved by adding the kernel parameters amdgpu.powerplay=1 amdgpu.dpm=1 amdgpu.runpm=1. resolved by Kernel 4.6-1-1
    In case you’re using tlp (see below), dont forget to add the module amdgpu to the line RUNTIME_PM_DRIVER_BLACKLIST=“noveau radeon“ in the file /etc/default/tlp
  2. Battery not charging to 100%
    resolved by installing tlp, tpacpi-bat and acpi_dkms and setting the charge threshold to 100% by running sudo tlp setcharge 90 100 Bat0 in a terminal.
    This allowed a complete recharge of the battery.

  3. Screen keeps flickering (blanking) on battery power
    Seems to be cased by a bad implementation of power saving modes. Was fixed using the kernel parameteri915.enable_rc6=4 and i915.enable_dc=1
    the second parameter seems to cause a lockup during shutdown, hence don’t use it.

    Resolved by updating the kernel to 4.6-1

  4. Does not wake up after hibernation
    Fixed by updating the bios to 1.20

Additionally removing the intel display driver and using the modesetting driver instead resultet in an improved performance.

If I’ll find more solutions I’ll post them here.