Compute specific and intersection elements with R
This is my first posts about R language, my first english post and my first R package: venn.compute
, which use case in bioinformatics is compare list of genes.
This R package is intended to compute specific elements in intersections of Venn diagram instead of plot.
 Custom reader of files to create list of character arrays (such requiered for this package and VennDiagram).
 Compute specific elements in intersections of Venn diagram in memory or write to files.
 Plot with VennDiagram.
Example
Use 3 files in tests
directory with names primes.txt
, even.txt
y fibo.txt
whose content are primes, even and Fibonacci numbers until 20.
Install
You can install from GitHub as:
devtools::install_github("cosmoscalibur/venn.compute")
Downloading GitHub repo cosmoscalibur/venn.compute@master
formatR (1.6 > 1.7) [CRAN]
Installing 1 packages: formatR
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
✔ checking for file ‘/tmp/RtmpT7UVx3/remotes61d65fec5ae1/cosmoscaliburvenn.compute6f4fb43/DESCRIPTION’ ...
─ preparing ‘venn.compute’:
✔ checking DESCRIPTION metainformation
─ checking for LF lineendings in source and make files and shell scripts
─ checking for empty or unneeded directories
─ building ‘venn.compute_1.1.0.tar.gz’
If an error about TAR executable is showed (common in Linux with Anaconda, sh: 1: /bin/gtar: not found
), you need to setup your TAR path.
Sys.setenv(TAR = "/bin/tar")
How to use
First, load the package.
library(venn.compute)
Lectura de archivos
Read files
This is a custom reader to include multiple files and associate its custom names, returned a named list of character arrays (each element is an element line of the file).
sets < read.lists_from_files(c(file.path("tests", "primes.txt"),
file.path("tests", "even.txt"),
file.path("tests", "fibo.txt")),
c("primes", "even", "fibo"))
print(sets)
$primes
[1] "1" "2" "3" "5" "7" "11" "13" "17"
$even
[1] "0" "2" "4" "6" "8" "10" "12" "14" "16" "18"
$fibo
[1] "1" "2" "3" "5" "8" "13"
Compute intersections and specific elements
Now you can compute specific elements of Venn diagram intersections.
venn.compute_specific(sets)
 $primes_even_fibo
 '2'
 $primes_even
 $primes_fibo

 '1'
 '3'
 '5'
 '13'
 $even_fibo
 '8'
 $primes

 '7'
 '11'
 '17'
 $even

 '0'
 '4'
 '6'
 '10'
 '12'
 '14'
 '16'
 '18'
 $fibo
If you need to write sets in files, add an output path. Files are written using convention of join sets name with underscore.
venn.compute_specific(sets, output_dir = file.path("tests", "output"))
We can verify written files.
dir(file.path("tests", "output"))
 'even_fibo.txt'
 'even.txt'
 'fibo.txt'
 'primes_even_fibo.txt'
 'primes_even.txt'
 'primes_fibo.txt'
 'primes.txt'
Plot Venn diagram
Finally, if you want to save plot, invoke this function with the same arguments as before (internally using VennDiagram
)
venn.compute_plot(sets, output_dir = file.path("tests", "output"))
Now, we have a primes_even_fibo.png
file.
Comments
Comments powered by Disqus