VCCRI / CIDR

Clustering through Imputation and Dimensionality Reduction
GNU General Public License v2.0
62 stars 22 forks source link

Error in if ((3 * a[b + c]) < a[b]) { : argument is of length zero #14

Open yulijia opened 3 years ago

yulijia commented 3 years ago

Hi,

I run CIDR with a 32738 gene x 6143 cell dataset. This is the main code, however, when running the last step (scCluster(sdata)), the function returns an error message "argument is of length zero".

Could you help me figure out the problem and fix it?

>dat <- counts(sce)
>sdata <- scDataConstructor(dat)
>sdata <- determineDropoutCandidates(sdata)
>sdata <- wThreshold(sdata)
>sdata <- scDissim(sdata, threads = params$nCore)
>sdata <- scPCA(sdata, plotPC =F)
>sdata <- nPC(sdata)
>sdata <- scCluster(sdata)
Error in if ((3 * a[b + c]) < a[b]) { : argument is of length zero

Here is the data structure of sdata.

> str(sdata)
Formal class 'scData' [package "cidr"] with 20 slots
  ..@ tags             : num [1:20751, 1:6143] 0 0 0 0 0 0 0 0 0 0 ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:20751] "ENSG00000228463" "ENSG00000228327" "ENSG00000237491" "ENSG00000225880" ...
  .. .. ..$ : chr [1:6143] "AAACATACACTGGT-1" "AAACATACAGACTC-1" "AAACATTGACCAAC-1" "AAACATTGAGGCGA-1" ...
  ..@ tagType          : chr "raw"
  ..@ sampleSize       : int 6143
  ..@ librarySizes     : Named num [1:6143] 19337 8786 24636 16030 27341 ...
  .. ..- attr(*, "names")= chr [1:6143] "AAACATACACTGGT-1" "AAACATACAGACTC-1" "AAACATTGACCAAC-1" "AAACATTGAGGCGA-1" ...
  ..@ nData            : num [1:20751, 1:6143] 0 0 0 0 0 0 0 0 0 0 ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:20751] "ENSG00000228463" "ENSG00000228327" "ENSG00000237491" "ENSG00000225880" ...
  .. .. ..$ : chr [1:6143] "AAACATACACTGGT-1" "AAACATACAGACTC-1" "AAACATTGACCAAC-1" "AAACATTGAGGCGA-1" ...
  ..@ priorTPM         : num 1
  ..@ dThreshold       : num [1:6143] 8.62 8.62 8.62 8.62 8.62 ...
  ..@ wThreshold       : Named num 9.6
  .. ..- attr(*, "names")= chr "a"
  ..@ pDropoutCoefA    : Named num 4.31
  .. ..- attr(*, "names")= chr "a"
  ..@ pDropoutCoefB    : Named num 9.6
  .. ..- attr(*, "names")= chr "b"
  ..@ dropoutCandidates: logi [1:20751, 1:6143] TRUE TRUE TRUE TRUE TRUE TRUE ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:20751] "ENSG00000228463" "ENSG00000228327" "ENSG00000237491" "ENSG00000225880" ...
  .. .. ..$ : chr [1:6143] "AAACATACACTGGT-1" "AAACATACAGACTC-1" "AAACATTGACCAAC-1" "AAACATTGAGGCGA-1" ...
  ..@ PC               : num [1:6143, 1:3353] 16.3 20.7 18.3 17.8 14.2 ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : NULL
  .. .. ..$ : chr [1:3353] "Axis.1" "Axis.2" "Axis.3" "Axis.4" ...
  ..@ variation        : num [1:3353] 0.20404 0.01935 0.01156 0.01042 0.00794 ...
  ..@ eigenvalues      : num [1:6143] 1849685 175401 104792 94445 71980 ...
  ..@ dissim           : num [1:6143, 1:6143] 0 19.1 18 13.2 17.8 ...
  ..@ nCluster         : num 0
  ..@ clusters         : logi(0) 
  ..@ nPC              : num 4
  ..@ cMethod          : chr(0) 
  ..@ correction       : chr "none"
croct commented 3 years ago

Without the data, this is difficult to check. Are you able to reproduce the error with a small subset of the data? I assume your input data has no "NA" values. If you can reproduce with a small dataset, contact me on m.troup@victorchang.edu.au

yulijia commented 3 years ago

Thanks, I will try if I can reproduce the same problem with a small data today and send it to you as soon as possible.