<p>This seems to be an encoding problem (certain characters not being recognized), see <a href="https://stackoverflow.com/questions/14363085/invalid-multibyte-string-in-read-csv/29586283">this</a>, <a href="https://stackoverflow.com/questions/4993837/r-invalid-multibyte-string">this</a> and also <a href="https://www.r-bloggers.com/web-scraping-and-invalid-multibyte-string/" rel="nofollow noreferrer">this</a>. Probably the file <code>"/cloud/project/SCG71.loom"</code> is encoded with a format that is not included in your "locale".</p>

<p>Check the output of <code>Sys.getlocale()</code> and see if your input file's encoding is listed. If not, you will need to try something like <code>Sys.setlocale("LC_CTYPE", "en_US.UTF-8")</code> or <code>Sys.setlocale("LC_ALL", "English")</code> (see the third link for details).</p>

CC BY-SA 4.0
2019-11-17T21:52:14.820Z
Thank you, says > Sys.getlocale()
[1] "LC_CTYPE=C.UTF-8;LC_NUMERIC=C;LC_TIME=C.UTF-8;LC_COLLATE=C.UTF-8;LC_MONETARY=C.UTF-8;LC_MESSAGES=C.UTF-8;LC_PAPER=C.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C.UTF-8;LC_IDENTIFICATION=C"

>
Zizogolu
CC BY-SA 4.0
2019-11-17T22:11:19.493Z
Did you try `Sys.setlocale("LC_CTYPE", "en_US.UTF-8")`
haci
CC BY-SA 4.0
2019-11-17T22:27:32.230Z
Thank you, > Sys.setlocale("LC_CTYPE", "en_US.UTF-8")
[1] "en_US.UTF-8"
Zizogolu
CC BY-SA 4.0
2019-11-18T07:02:26.047Z
But are you getting the same error after setting the locale with `Sys.setlocale()`? Please don't just run commands and report the output but try to make sense of these. There is quite some information and workarounds to problems like yours in the links I provided.
haci
CC BY-SA 4.0
2019-11-17T21:38:38.757Z
2019-11-17T21:38:38.757Z
haci
<p><strong>Velocyto.R</strong></p>

<p>I'm not sure that your issues is from RStudio cloud but more about how you are trying to open the file. The file that you are trying to import is not a <code>velocyto</code> file but a <code>.loom</code> file that can be open using the <code>velocyto.R</code> package. </p>

<p>I'm not very familiar with this kind of of <code>.loom</code> file but on the <a href="http://pklab.med.harvard.edu/velocyto/notebooks/R/DG1.nb.html" rel="nofollow noreferrer"><code>velocyto.R</code></a> tutorial, it is specified to do the following: </p>

<pre class="lang-r prettyprint-override"><code>library(velocyto.R)
ldat &lt;- read.loom.matrices("SCG71.loom")
</code></pre>

<p>And you have the following file structures:</p>

<pre class="lang-r prettyprint-override"><code>&gt; str(ldat)
List of 3
 $ spliced  :Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
  .. ..@ i       : int [1:2822201] 74 130 178 192 202 223 225 258 353 418 ...
  .. ..@ p       : int [1:6668] 0 464 786 1469 2502 3290 3760 4974 5388 5659 ...
  .. ..@ Dim     : int [1:2] 24421 6667
  .. ..@ Dimnames:List of 2
  .. .. ..$ : chr [1:24421] "Xkr4" "Rp1" "Sox17" "Mrpl15" ...
  .. .. ..$ : chr [1:6667] "SCG71:AAACGATCCTACTTGT" "SCG71:AAACACTACGTAGAAG" "SCG71:AAACACGGCATCGCAG" "SCG71:AAACAAACAGCAGAAC" ...
  .. ..@ x       : num [1:2822201] 1 1 1 1 1 1 1 1 1 4 ...
  .. ..@ factors : list()
 $ unspliced:Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
  .. ..@ i       : int [1:528048] 61 100 339 352 377 445 465 528 617 758 ...
  .. ..@ p       : int [1:6668] 0 115 188 283 431 580 696 994 1127 1232 ...
  .. ..@ Dim     : int [1:2] 24421 6667
  .. ..@ Dimnames:List of 2
  .. .. ..$ : chr [1:24421] "Xkr4" "Rp1" "Sox17" "Mrpl15" ...
  .. .. ..$ : chr [1:6667] "SCG71:AAACGATCCTACTTGT" "SCG71:AAACACTACGTAGAAG" "SCG71:AAACACGGCATCGCAG" "SCG71:AAACAAACAGCAGAAC" ...
  .. ..@ x       : num [1:528048] 1 3 1 1 1 1 1 1 1 1 ...
  .. ..@ factors : list()
 $ ambiguous:Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
  .. ..@ i       : int [1:47846] 11915 13649 13830 15638 18068 19585 23490 24345 8142 8767 ...
  .. ..@ p       : int [1:6668] 0 8 13 25 42 56 64 87 97 100 ...
  .. ..@ Dim     : int [1:2] 24421 6667
  .. ..@ Dimnames:List of 2
  .. .. ..$ : chr [1:24421] "Xkr4" "Rp1" "Sox17" "Mrpl15" ...
  .. .. ..$ : chr [1:6667] "SCG71:AAACGATCCTACTTGT" "SCG71:AAACACTACGTAGAAG" "SCG71:AAACACGGCATCGCAG" "SCG71:AAACAAACAGCAGAAC" ...
  .. ..@ x       : num [1:47846] 2 1 1 1 1 2 1 2 1 1 ...
  .. ..@ factors : list()
</code></pre>

<p><strong>Alternative 1 - LoomExperiment</strong></p>

<p>On bioconductor, you can also find <a href="https://bioconductor.org/packages/release/bioc/vignettes/LoomExperiment/inst/doc/LoomExperiment.html#available-methods-for-the-loomexperiment" rel="nofollow noreferrer"><code>LoomExperiment</code></a>. On my computer, once I get it install, I was able to load your <code>SCG71.loom</code> file using:</p>

<pre class="lang-r prettyprint-override"><code>library(LoomExperiment)
scle &lt;- import("SCG71.loom",type = "LoomExperiment", rownames_attr = NULL, colnames_attr = NULL)
</code></pre>

<p>Then, you can find the output here:</p>

<pre class="lang-r prettyprint-override"><code>&gt; head(scle)
class: LoomExperiment 
dim: 6 6667 
metadata(4): chunks creation_date velocyto.__version__ velocyto.logic
assays(4): matrix ambiguous spliced unspliced
rownames: NULL
rowData names(6): Accession Chromosome ... Start Strand
colnames: NULL
colData names(1): CellID
rowGraphs(0): NULL
colGraphs(0): NULL
</code></pre>

<p>You can then load some data</p>

<pre class="lang-r prettyprint-override"><code>&gt; scle$CellID[c(1:5)]
[1] "SCG71:AAACGATCCTACTTGT" "SCG71:AAACACTACGTAGAAG" "SCG71:AAACACGGCATCGCAG"
[4] "SCG71:AAACAAACAGCAGAAC" "SCG71:AAACAAACTTTGGGAG"
</code></pre>

<p>After that, I don't know what to do with that but I think your issue of importing a datafile is because you don't have the right package to open it. </p>

<p><strong>Alternative - using LoomR</strong></p>

<p>Alternatively, you can also install the package <a href="https://satijalab.org/loomR/loomR_tutorial.html" rel="nofollow noreferrer"><code>loomR</code></a> and then enter:</p>

<pre class="lang-r prettyprint-override"><code>library(loomR)
lfile = connect(filename = "SCG71.loom", mode = "r+")
</code></pre>

<p>And you get the output:</p>

<pre class="lang-r prettyprint-override"><code>&gt; lfile
Class: loom
Filename: /***my_directory***/SCG71.loom
Access type: H5F_ACC_RDWR
Attributes: creation_date, chunks, velocyto.__version__, velocyto.logic, version
Listing:
       name    obj_type dataset.dims dataset.type_class
  col_attrs   H5I_GROUP         &lt;NA&gt;               &lt;NA&gt;
 col_graphs   H5I_GROUP         &lt;NA&gt;               &lt;NA&gt;
     layers   H5I_GROUP         &lt;NA&gt;               &lt;NA&gt;
     matrix H5I_DATASET 6667 x 24421          H5T_FLOAT
  row_attrs   H5I_GROUP         &lt;NA&gt;               &lt;NA&gt;
 row_graphs   H5I_GROUP         &lt;NA&gt;               &lt;NA&gt;
</code></pre>

<p>Then, for manipulating these files, you should refer to their tutorial (it's beyond my skills and the scope of your question).</p>

<p>Hope it helps you to figure the solution of your question</p>

CC BY-SA 4.0
2019-11-18T01:21:48.963Z
2019-11-18T01:21:48.963Z
dc37
<p>I am using RStudio Cloud for running velocyto R package. So I have tried to import velocyto file from <a href="http://pklab.med.harvard.edu/velocyto/mouseBM/SCG71.loom" rel="nofollow noreferrer">http://pklab.med.harvard.edu/velocyto/mouseBM/SCG71.loom</a></p>

<p>I tried to upload that like so</p>

<p><a href="https://i.sstatic.net/rsi7N.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/rsi7N.png" alt="enter image description here"></a></p>

<p>But saying </p>

<pre><code>&gt; SCG71 &lt;- read.table("/cloud/project/SCG71.loom", header=TRUE, quote="\"")
Error in make.names(col.names, unique = TRUE) : 
  invalid multibyte string at '&lt;89&gt;HDF'
In addition: There were 19 warnings (use warnings() to see them)
</code></pre>

<p>Can you help me in very initial of velocyto R?</p>

<r><single-cell><rstudio><cloud>
Uploading files from local computer or web in rstudio cloud
# Uploading files from local computer or web in rstudio cloud

(Asked by: username_0 on 2019-11-17)

I am using RStudio Cloud for running velocyto R package. So I have tried to import velocyto file from http://pklab.med.harvard.edu/velocyto/mouseBM/SCG71.loom
I tried to upload that like so

But saying 
> SCG71 <- read.table("/cloud/project/SCG71.loom", header=TRUE, quote="\"")
Error in make.names(col.names, unique = TRUE) : 
  invalid multibyte string at '<89>HDF'
In addition: There were 19 warnings (use warnings() to see them)

Can you help me in very initial of velocyto R?

**Tags:** r, single-cell, rstudio, cloud

---

## 2 answers

### Answer by username_1 on 2019-11-17. Score: 1

This seems to be an encoding problem (certain characters not being recognized), see [this](https://stackoverflow.com/questions/14363085/invalid-multibyte-string-in-read-csv/29586283), [this](https://stackoverflow.com/questions/4993837/r-invalid-multibyte-string) and also [this](https://www.r-bloggers.com/web-scraping-and-invalid-multibyte-string/). Probably the file `"/cloud/project/SCG71.loom"` is encoded with a format that is not included in your "locale".

Check the output of `Sys.getlocale()` and see if your input file's encoding is listed. If not, you will need to try something like `Sys.setlocale("LC_CTYPE", "en_US.UTF-8")` or `Sys.setlocale("LC_ALL", "English")` (see the third link for details).

> **Comments:**
> **username_0**: Thank you, says > Sys.getlocale() [1] "LC_CTYPE=C.UTF-8;LC_NUMERIC=C;LC_TIME=C.UTF-8;LC_COLLATE=C.UTF-8;LC_MONETARY=C.UTF-8;LC_MESSAGES=C.UTF-8;LC_PAPER=C.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C.UTF-8;LC_IDENTIFICATION=C"  >  
> **username_1**: Did you try `Sys.setlocale("LC_CTYPE", "en_US.UTF-8")`  
> **username_0**: Thank you, > Sys.setlocale("LC_CTYPE", "en_US.UTF-8") [1] "en_US.UTF-8"  
> **username_1**: But are you getting the same error after setting the locale with `Sys.setlocale()`? Please don't just run commands and report the output but try to make sense of these. There is quite some information and workarounds to problems like yours in the links I provided.  

---

### Answer by username_2 on 2019-11-18. Score: 1

Velocyto.R
I'm not sure that your issues is from RStudio cloud but more about how you are trying to open the file. The file that you are trying to import is not a velocyto file but a .loom file that can be open using the velocyto.R package. 
I'm not very familiar with this kind of of .loom file but on the velocyto.R tutorial, it is specified to do the following: 
library(velocyto.R)
ldat <- read.loom.matrices("SCG71.loom")

And you have the following file structures:
> str(ldat)
List of 3
 $ spliced  :Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
  .. ..@ i       : int [1:2822201] 74 130 178 192 202 223 225 258 353 418 ...
  .. ..@ p       : int [1:6668] 0 464 786 1469 2502 3290 3760 4974 5388 5659 ...
  .. ..@ Dim     : int [1:2] 24421 6667
  .. ..@ Dimnames:List of 2
  .. .. ..$ : chr [1:24421] "Xkr4" "Rp1" "Sox17" "Mrpl15" ...
  .. .. ..$ : chr [1:6667] "SCG71:AAACGATCCTACTTGT" "SCG71:AAACACTACGTAGAAG" "SCG71:AAACACGGCATCGCAG" "SCG71:AAACAAACAGCAGAAC" ...
  .. ..@ x       : num [1:2822201] 1 1 1 1 1 1 1 1 1 4 ...
  .. ..@ factors : list()
 $ unspliced:Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
  .. ..@ i       : int [1:528048] 61 100 339 352 377 445 465 528 617 758 ...
  .. ..@ p       : int [1:6668] 0 115 188 283 431 580 696 994 1127 1232 ...
  .. ..@ Dim     : int [1:2] 24421 6667
  .. ..@ Dimnames:List of 2
  .. .. ..$ : chr [1:24421] "Xkr4" "Rp1" "Sox17" "Mrpl15" ...
  .. .. ..$ : chr [1:6667] "SCG71:AAACGATCCTACTTGT" "SCG71:AAACACTACGTAGAAG" "SCG71:AAACACGGCATCGCAG" "SCG71:AAACAAACAGCAGAAC" ...
  .. ..@ x       : num [1:528048] 1 3 1 1 1 1 1 1 1 1 ...
  .. ..@ factors : list()
 $ ambiguous:Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
  .. ..@ i       : int [1:47846] 11915 13649 13830 15638 18068 19585 23490 24345 8142 8767 ...
  .. ..@ p       : int [1:6668] 0 8 13 25 42 56 64 87 97 100 ...
  .. ..@ Dim     : int [1:2] 24421 6667
  .. ..@ Dimnames:List of 2
  .. .. ..$ : chr [1:24421] "Xkr4" "Rp1" "Sox17" "Mrpl15" ...
  .. .. ..$ : chr [1:6667] "SCG71:AAACGATCCTACTTGT" "SCG71:AAACACTACGTAGAAG" "SCG71:AAACACGGCATCGCAG" "SCG71:AAACAAACAGCAGAAC" ...
  .. ..@ x       : num [1:47846] 2 1 1 1 1 2 1 2 1 1 ...
  .. ..@ factors : list()

Alternative 1 - LoomExperiment
On bioconductor, you can also find LoomExperiment. On my computer, once I get it install, I was able to load your SCG71.loom file using:
library(LoomExperiment)
scle <- import("SCG71.loom",type = "LoomExperiment", rownames_attr = NULL, colnames_attr = NULL)

Then, you can find the output here:
> head(scle)
class: LoomExperiment 
dim: 6 6667 
metadata(4): chunks creation_date velocyto.__version__ velocyto.logic
assays(4): matrix ambiguous spliced unspliced
rownames: NULL
rowData names(6): Accession Chromosome ... Start Strand
colnames: NULL
colData names(1): CellID
rowGraphs(0): NULL
colGraphs(0): NULL

You can then load some data
> scle$CellID[c(1:5)]
[1] "SCG71:AAACGATCCTACTTGT" "SCG71:AAACACTACGTAGAAG" "SCG71:AAACACGGCATCGCAG"
[4] "SCG71:AAACAAACAGCAGAAC" "SCG71:AAACAAACTTTGGGAG"

After that, I don't know what to do with that but I think your issue of importing a datafile is because you don't have the right package to open it. 
Alternative - using LoomR
Alternatively, you can also install the package loomR and then enter:
library(loomR)
lfile = connect(filename = "SCG71.loom", mode = "r+")

And you get the output:
> lfile
Class: loom
Filename: /***my_directory***/SCG71.loom
Access type: H5F_ACC_RDWR
Attributes: creation_date, chunks, velocyto.__version__, velocyto.logic, version
Listing:
       name    obj_type dataset.dims dataset.type_class
  col_attrs   H5I_GROUP                        
 col_graphs   H5I_GROUP                        
     layers   H5I_GROUP                        
     matrix H5I_DATASET 6667 x 24421          H5T_FLOAT
  row_attrs   H5I_GROUP                        
 row_graphs   H5I_GROUP                        

Then, for manipulating these files, you should refer to their tutorial (it's beyond my skills and the scope of your question).
Hope it helps you to figure the solution of your question


---

