This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Split a matrix into submatrices

Hello guys,

I want to split my matrix into several submatrices in order to compute the correlations on theses submatrices. I created an argument subset in R which takes into account the number of rows of the matrix.

# get options 

option_list = list(
        make_option(c("-s", "--subset"), type="character", default=NULL, help="Input file matrix ")
);

opt_parser= OptionParser(usage = "Usage: %prog -f [FILE]",option_list=option_list, description= "Description:")

opt = parse_args(opt_parser)

My problem is this one : for example, if I want to create submatrices which have 1000 rows each, I don't how to set this argument.

data<-read.table("/home/vipailler/PROJET_M2/raw/truelength2.prok2.uniref2.rares.tsv", h=T, row.names=1, sep="\t")

 data=data[(nrow(opt$subset))-999:opt$subset,]  ###THE PROBLEM IS HERE###

I use SLURM and arrays to compute 10 submatrices (--array 1-10) .

subset=$((SLURM_ARRAY_TASK_ID*1000))

Normally, I should obtain for the first submatrix :
subset=1*1000 #first array in the slurm code data=data[1000-999:1000,] #from the 1000-999=1st line to the 1000th line in my R code

But I get an error:

Error in oneOrDataset(X)[, parts, drop = FALSE] : indice hors limites Calls: clr ... gsi.simshape -> oneOrDataset -> gsi.plain -> is.data.frame

Any help to set this subset argument?

Bests

matrix correlat

0 answers

No answers yet.

Log in to answer this question.