### Browsed byCategory: R

Introducing the Fluidigm R- Package

## Introducing the Fluidigm R- Package

Our Fluidigm R-package was just released on Cran. The package is designed to streamline the process of analyzing genotyping data from Fluidigm machines. It offers a suite of tools for data handling and analysis, making it easier for researchers to work with their data. Here are the key functions provided by the package:

1. `fluidigm2PLINK(...)`: Converts Fluidigm data to the format used by PLINK, creating a ped/map-file pair from the CSV output received from the Fluidigm machine.
2. `estimateErrors(...)`: Estimates errors in the genotyping data.
3. `calculatePairwiseSimilarities(...)`: Calculates pairwise similarities between samples.
4. `getPairwiseSimilarityLoci(...)`: Determines pairwise similarity loci.
5. `similarityMatrix(...)`: Generates a similarity matrix.

Users can choose to run these functions individually or execute them all at once using the convenient `fluidigmAnalysisWrapper``(...)` wrapper function.

With the upcoming autumn holiday ahead, my autumn holiday read just arrived in time! Looking forward to having a light read, as my Python become a little rusty lately it is a nice kick-start again to read about it from an introductory perspective. First glance looks really nice!

Creating weighted tables with R / sum of numerics associated to some categorical variable

## Creating weighted tables with R / sum of numerics associated to some categorical variable

The normal table command `table()` calculates the frequency of each element of a vector like this:

``````R> df <- data.frame(var = c("A", "A", "B", "B", "C", "C", "C"))
R> table(df)
df
A B C
2 2 3 ``````

So, it tells us, we have two times A and B and three times C, accordingly.

However, if we have now the situation like this:

``df <- data.frame(var = c("A", "A", "B", "B", "C", "C", "C"), value = c(10, 20, 20, 40, 15, 25, 35))``

Meaning, we have a categorical variable `var` and a numeric variable `value` and for each categorical variable we would like to get the sum over the numerical variable, we can simply use the base-R command `aggregate` like this

``````R> aggregate(value ~ var, data = df, FUN = sum)
var wt
1   A 40
2   B 60
3   C 70``````

As I often use also the `data.table` package, here is also a simple solution using this package, assuming we do (respective have a data table from some other source, like `fread`)

``````library("data.table")
dt <- data.table(df)``````

Then we can just sume over a column name with respect to another column like this (and assign the value into a new variable `tot`) :

``````setDT(dt)[, .(n = sum(value)), var]
``````
Couldn’t delete a failed R package installation

## Couldn’t delete a failed R package installation

Today I faced a strange thing, while I tried to install an update to one of my R-packages. As usually, I installed the latest version from it like this

``````library("devtools")
install_github("fischuu/GenomicTools")``````

But the installation failed, and when I tried to reinstall it, I got this error message:

``````Installing package into ‘/homeappl/home/<user>/R/x86_64-redhat-linux-gnu-library/4.1’
(as ‘lib’ is unspecified)
ERROR: failed to lock directory ‘/homeappl/home/<user>/R/x86_64-redhat-linux-gnu-library/4.1’ for modifying
Try removing ‘/homeappl/home/<user>/R/x86_64-redhat-linux-gnu-library/4.1/00LOCK-GenomicTools’
Warning message:
In i.p(...) :
installation of package ‘/tmp/Rtmp<...>Lv/file3c36<...>34/GenomicTools_0.2.11.tar.gz’ had non-zero exit status``````

So, I tried to go in said directory and delete the folder manually and there I received another error:

``rm: cannot remove '00LOCK-GenomicTools/GenomicTools/libs/.nfs00000001002e2<...>d': Device or resource busy``

I tried this and this, but nothing helped to delete that folder, it kept mocking my that the device is busy. Eventually, it helped just to rename the folder list this

``mv 00LOCK-GenomicTools/ 00LOCK-GenomicTools-deleteThis/``

It is now still hanging there in the folder, but I was able to reinstall the R-package and now I need to revisit the folder in a few days and check, if the device is still busy or if I can delete it then…