单细胞系列教程:环境搭建(三)

导读

本文将介绍并实战搭建分析单细胞的环境。

1. R

  • R语言安装(Ubuntu

在命令行运行下面的命令,如果是root帐号,请去除sudo,其他系统参考 > Install R

# update indices
sudo apt update -qq

# install two helper packages we need
sudo apt install --no-install-recommends software-properties-common dirmngr

# add the signing key (by Michael Rutter) for these repos
# To verify key, run gpg --show-keys /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc 
# Fingerprint: E298A3A825C0D65DFD57CBB651716619E084DAB9
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc

# add the R 4.0 repo from CRAN -- adjust 'focal' to 'groovy' or 'bionic' as needed
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"

# 安装
sudo apt install --no-install-recommends r-base

2. RStudio

  • RStudio安装
  1. 下载安装包 > Download
  2. 安装
# 根据自己下载的版本,修改文件名
sudo apt install ./rstudio-*-amd64.deb
  1. 打开RStudio

  1. 更换下载镜像

参考 > RStudio换源

3. Rpackages

  • R包安装
  1. 按照BiocManager
# 在 RStudio 中的 Console 中输入下面命令
install.packages("BiocManager")
  1. 修改Bioconductor
# 在 RStudio 中的 Console 中输入下面命令
chooseBioCmirror()

# 选择 China

  1. Bioconductor中安装以下 包

注意1:当 (”R may ask you if you want to update any old packages by asking Update all/some/none? a/s/n”)请输入a, 并回车。

注意2:当(“Do you want to install from sources the package which needs compilation? y/n”)请输入n, 并回车。

# 在 RStudio 中的 Console 中输入下面命令
# 建议复制,因为大小写敏感
BiocManager::install("SingleCellExperiment")
BiocManager::install("AnnotationHub")
BiocManager::install("ensembldb")
BiocManager::install("multtest")
BiocManager::install("glmGamPoi")
  1. CRAN中安装以下 包
# 在 RStudio 中的 Console 中输入下面命令
# 建议复制,因为大小写敏感
install.packages("tidyverse")
install.packages("Matrix")
install.packages("RCurl")
install.packages("scales")
install.packages("cowplot")
install.packages("Seurat")
install.packages("metap")
  1. 加载 包
# 加载前,请确保上面包安装过程是成功的
library(Seurat)
library(tidyverse)
library(Matrix)
library(RCurl)
library(scales)
library(cowplot)
library(SingleCellExperiment)
library(AnnotationHub)
library(ensembldb)
  1. 加载完毕后,运行sessionInfo()
sessionInfo()
本文转载于网络 如有侵权请联系删除

相关文章

  • VMware虚拟机安装Ubuntu系统步骤详解

    大家好,又见面了,我是你们的朋友全栈君。VMware虚拟机安装Ubuntu系统步骤详解Ubuntu系统介绍VMware安装Ubuntu步骤一.Ubuntu系统的下载二.VMwareworkstation的下载安装三.配置Ubuntu虚拟机系统四.VMware安装Ubuntu系统Ubuntu系统介绍Ubuntu是一个以桌面应用为主的Linux操作系统。作为Linux发行版中的后起之秀,UbuntuLinux在短短几年时间里就成长为从Linux初学者到资深专家都十分青睐的发行版。UbuntuLinux是开放源代码的自由软件,用户可以登录UbuntuLinux的官方网址免费下载该软件的安装包。Ubuntu提供了一个健壮、功能丰富的计算环境,既适合家庭使用又适用于商业环境。VMware安装Ubuntu步骤一.Ubuntu系统的下载下载地址:www.ubuntu.com 百度网盘链接:https://pan.baidu.com/s/1a9NOi99QviELG-8oeeDvJg提取码:2dut首先打开Ubuntu的官方网站www.Ubuntu.com下载Ubuntu,网站有时可能打不开,多试几次

  • 卷了这本架构书,送四本,弯道超车

    通过采用微服务架构,企业最大的收益是帮助内部IT建设沿着可演进的方向发展、支持灵活扩展、降低运维成本、快速响应业务变化。这些底层技术能力的提升让业务更加敏捷、成本可控,企业也可以从中获得技术红利和市场的竞争优势。 那么有什么方法可以让我们在较短的时间内掌握并且能够游刃有余地发挥微服务带给我们的开发成效呢?看书显然是一条捷径,有人给你整理好,并且成本非常低。目前市面上不乏介绍各种微服务开发框架和技术实践的书籍,也有专注于微服务理论知识的讲解,但总觉得看了不解渴。因此,王佩华老师希望通过理论与实践结合,层次分明、由浅入深地将微服务架构梳理清楚,并呈现给不同学习阶段的人群。于是,《微服务架构深度解析:原理、实践与进阶》诞生了!本书的主要特色平衡了微服务的理论与实践工程 微服务架构技术栈全面覆盖生命周期完整的软件工程历程介绍SpringBoot框架及SpringCloud核心组件的源码解析互联网开源项目成功落地及大厂推广经验响应式微服务编程范式升级进阶本书内容剧透在理论篇,可以带领新人快速入门微服务架构。在实践篇,可以让实际的开发者深入SpringBoot和SpringCloud源码,解决实际

  • 小王,在 Java 中如何利用 redis 实现一个分布式锁服务呢???

    作者:杨高超 juejin.im/post/5a4984af6fb9a0450b66bc57在现代的编程语言中,接触过多线程编程的程序员多多少少对锁有一定的了解。简单的说,多线程中的锁就是在多线程环境下,多个线程对共享资源进行修改的时候,保证共享资源一致性的机制。这里不展开说。在分布式环境下,原来的多线程的锁就不管用了,也就出现了分布式锁的需求。所谓分布式锁服务也就是在分布式环境下,保证多个分布式的服务共享的资源一致性的服务。在分布式环境下实现一个分布式锁服务并不太容易,需要考虑很多在单进程下的锁服务不需要考虑的问题。分布式锁锁的实现也有很多。这里我们讨论在Java中通过redis来实现。在GitHub中的redisson项目中已经有开源的实现。但是那个太复杂了。现在我们来基于单机的redis实现一个简单的分布式锁服务。这个服务必须满足下面的要求支持立即获取锁方式,如果获取到返回true,获取不到则返回false;支持等待获取锁方式,如果获取到,直接返回true,获取不到在等待一小段时间,在这一小段时间内反复尝试,如果尝试成功,则返回true,等待时间过后还获取不到则返回false;不

  • 文本挖掘实战:看看国外人们在冠状病毒隔离期间在家里做什么?

    本文通过文本的挖掘,对人们在冠状病毒锁定期间正在做什么以及他们的感觉进行的探索性和情感分析 随着越来越多的国家宣布在全国范围内关闭,大多数人被要求留在家里隔离。我们来看看国外的人们在此“关闭”期间如何度过时间以及感觉如何,所以我分析了本文中的一些推文,看看国外友人到底都干什么。数据获取和预处理对于数据集,我使用txxxR库从推提取了20,000条带有“#quarantine”和“#stayhome”主题标签的推文。将数据导入R后,我们需要对推文进行预处理并将其标记化为单词(令牌)以进行分析。tweet_words<-tweets%>% select(id, screenName, text, created)%>% mutate(created_date=as.POSIXct(created,format="%m/%d/%Y%H"))%>% mutate(text=replace_non_ascii(text,replacement="",remove.nonconverted=TRUE))%>% mutate(te

  • python 购物车代码

    jiage={} caojiaoyue=[ {"name":"奥迪","price":10000}, {"name":"摩托车","price":1000}, {"name":"自行车","price":100}, {"name":"玩具车","price":10}, ] foraincaojiaoyue:    print(a["name"],a["price"]) zc=int(input("请输入资产:")) whileTrue:    sp=input("请输入商品/按Y结算:")    ifsp=="y"orsp=="Y":        break    foriincaojiaoyue:        ifsp==i[

  • 死磕 java线程系列之ForkJoinPool深入解析

    简介随着在硬件上多核处理器的发展和广泛使用,并发编程成为程序员必须掌握的一门技术,在面试中也经常考查面试者并发相关的知识。今天,我们就来看一道面试题:如何充分利用多核CPU,计算很大数组中所有整数的和?剖析单线程相加? 我们最容易想到就是单线程相加,一个for循环搞定。线程池相加? 如果进一步优化,我们会自然而然地想到使用线程池来分段相加,最后再把每个段的结果相加。其它? Yes,就是我们今天的主角——ForkJoinPool,但是它要怎么实现呢?似乎没怎么用过哈^^三种实现OK,剖析完了,我们直接来看三种实现,不墨迹,直接上菜。/** *计算1亿个整数的和 */ publicclassForkJoinPoolTest01{ publicstaticvoidmain(String[]args)throwsExecutionException,InterruptedException{ //构造数据 intlength=100000000; long[]arr=newlong[length]; for(inti=0;i<length;i++){ arr[i]=T

  • VS2019界面透明、主题修改和导出设置

    版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/Enterprise_/article/details/102770277换电脑之后用上了VS2019,不得不说VS真是很强的IDE,然后就开始折腾了>.< 文章目录安装插件ColorThemeEditorforVisualStudio2019和ClaudiIDE导入主题背景修改效果预览导出设置遇到错误924其他帮助文档我自己用的主题安装插件ColorThemeEditorforVisualStudio2019和ClaudiIDE 在之前我用VS2015时用的时ModIDE,但是导入同样的主题时背景透明调不了,于是换成ClaudiIDE。导入主题安装会要求重新启动,然后等待安装,之后会进入这个界面。 如果没有出现,仍然可以通过工具进入,就是CustomizeColors。 点击右边的importThemes,导入需要的主题即可。 也可以去vs主题站下载想要的主题配色https://studiostyl.es/背景修改在工具-

  • 卧谈会之numpy

    卧谈会之numpy0.月总结从读研开始,这是第三个月开始,已经过去两个月了,今天来总结一些研一10月到11月的常规学习。相比于上个月,在知识图谱方面深入研究了apoc导入及整个neo4j的可视化流程,对于Python爬虫从基础文深入到反爬文章,并利用python技术解决日常生活遇到的问题,学以致用,对于机器学习,相比上个月读书略有减少,对于图像及深度学习等相关内容,仍在学习中,对于知乎爬虫已经接近尾声,完全的数据抽取及可视化存储等技术的应用将于下一个月开展,对于未来的深度学习将会有更深层次的挖掘,对于爬虫则会有更深入的研究,同时对于基础会着重反复,对于leetcode刷题,每周两道,从不懈怠,每周坚持,现已坚持18篇,9周!对于本月文章的总结,本月公众号发文,保证了每日一篇,30篇,从无缺席,并且全部原创,0广告,对于公众号的交流群从0人次到110+人次,目前交流氛围很好,有待继续保持!下面一起来,深入研究今日文章的干文,在日常学习当中所碰到的numpy深度函数~~~1.访问数组普通访问importnumpyasnp a=np.array([[1,2,3,4],[5,6,7,8],[9

  • 前端:2018秋招面试经验总结前言笔试 面试技巧最后的话

    前言从8月中旬实习结束就开始找工作了,一直到十一,终于尘埃落定,十一出去好好放松了一下,今天写一些面经回报牛客。非科班,从大三开始学习前端,几乎是零基础,但很庆幸遇到了很好的学长,帮助我少走了不少弯路,自己也比较喜欢前端,所以最后虽然没有拿到bat的offer,但目前也收到了美团、迅雷、网宿、CVTE的,最终还是决定去美团了。比较后悔的时内推比较晚了,之前实习一直没有在意,实习回来内推已经不多了,我笔试也比较菜,所以前期挂到绝望。。。笔试笔试没有太多的方法,主要就是刷题,牛客网上的题、剑指offer等等,由于自身不是科班,秋招之前准备的也不是很充分,自学了计算机网络、操作系统、数据结构课程,但是算法一直都是弱项,只是把剑指offer刷了好几遍,才能勉强过一些公司的笔试。面试技巧1、多看面经。多看,多总结,很多知识点都是常考的,提前看看没有坏处。2、多面。对于水平一般的同学,可以在前期多投一些公司,不管大的小的。小的公司可以帮助你积累面试经验,这样,在后面面试大公司的时候心里也就有底了。3、尽量去表现自己,表现的自信一些。 在后面的面试中,如果你都会,你就可以很自信的去回答,去拓展,这样

  • 告别“帝都”挥师黄埔江畔,2018中国数据中心产业发展大会即将迎来新高度

    为了持续推动中国数据中心产业走的“更好,更快”,优化中国数据中心市场及生态,会上,中国数据中心产业发展联盟(简称“中数盟”)宣布,2018中国数据中心产业发展大会(第八届)于2018年5月3~5日在上海召开,并同期与在上海新国际博览中心举办的数据中心产业展览会记者|郭敏官网|www.datayuan.cn微信公众号ID|datayuancn10月17日,中国数据中心产业发展大会启动发布会在京举行。为了持续推动中国数据中心产业走的“更好,更快”,优化中国数据中心市场及生态,会上,中国数据中心产业发展联盟(简称“中数盟”)宣布,2018中国数据中心产业发展大会(第八届)于2018年5月3~5日在上海召开,并同期与在上海新国际博览中心举办的数据中心产业展览会,形成一会一展的完整格局,聚焦数据中心IT架构及基础设施领域的新产品、新技术、新方案,打造数据中心全产业链最佳交流与展示的平台。中国数据中心产业发展大会(英文简称:DCIC)创办于2011年,历时7年的培育和发展,DCIC已成为数据中心行业的标志性品牌活动,广受业内外人士赞誉。延续高水准大会,聚焦数据中心绿色高效应用中国的快速发展给数据中

  • 粗略的物体碰撞预测及检测

      该博客实时更新于我的Github。  在机器人局部路径规划中,需要实时躲避运动或者静态的障碍物,这个过程涉及到碰撞检测这个问题,本文主要讨论这个问题。  碰撞检测问题也是游戏开发中经常遇到的问题,一个游戏场景中可能存在很多物体,它们之间大多属于较远位置或者相对无关的状态,那么一个物体的碰撞运算没必要遍历这些物体,我们可以使用一个包围一个或多个物体的多边形来讨论碰撞问题,这样子可以节省重要的计算量和时间。  在真实的物理系统中,一般需要在运算速度和精确性上做取舍。尽管非常精确的碰撞检测算法可以精确地表示和解决碰撞问题,但是在路径规划初期对碰撞只需要有一个初步的估计,比如是否会发生碰撞,碰撞的大概程度如何,以免把大量的精力浪费在碰撞检测问题上,从而降低了在其他方面的注意力。本文主要利用游戏中用到的碰撞检测方法,来解决碰撞检测的初步估计,或者对碰撞精确度要求不高的场合,将不规则的物体投影成较规则的物体进行碰撞预测及检测。AABB介绍  目前,成功的3D游戏普遍采用的碰撞检测是BSP树以及AABB(AxiallyAlignedBoundingBox)包装盒方式。BSP树是用来控制检测顺序和

  • 05月25日总结

    今天干了啥:Python3实例 打算干啥:Python3正则表达式代码数:386

  • Lock锁

    Lock锁 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开始访问共享资源之前应先获得Lock对象 ReentrantLock(可重入锁)类实现了Lock,它拥有与synchronized相同的并发性和内存语义,在实现线程安全的控制种,比较常用的是ReentrantLock,可以显式加锁,释放锁。 //先写一个不安全的买票线程 packagegaoji; publicclassTestLock{ publicstaticvoidmain(String[]args){ TestLock2testLock2=newTestLock2(); newThread(testLock2).start(); newThread(testLock2).start(); newThread(testLock2).start(); } } classTestLock2implementsRunnable{ intticketNums=10; @Overrid

  • 自动亮度调节缓慢

    这个问题纠结我快一周的时间了,可是还是没有着到原因,我是不是应该换种思路,而不是去猜测? 明天记得做这几件事: 1,在89和82平台分别加上时间戳 2,比较下kernel层代码的不同, 3,分析下上层代码 4,发一份完整的log给MTK 5,请教周围同事    

  • js的二进制和十进制转换

    十进制转二进制:toString 1varnum=10 2console.log(num.toString(2))复制 输出为 1010复制 利用toString(radix)方法可以将数字转为二进制字符串,radix表示要转为几进制   二进制转十进制:parseInt   1console.log(parseInt("11")) 2console.log(parseInt("11",2))复制   输出为: 11 3复制 其中,string为必需。要被解析的字符串。radix为可选。表示要按照几进制来转换字符串,该值介于2~36之间。如果省略该参数或其值为0,则数字将以10为基础来解析。如果它以“0x”或“0X”开头,将以16为基数。如果该参数小于2或者大于36,则parseInt()将返回NaN。 说明 当参数radix的值为0,或没有设置该参数时,parseInt()会根据string来判断数字的基数。举例,如果string以"0x"开头,parseInt()会把string的其余部分解析为十六进制的整数。如果string以

  • 牛客网FPGA题库刷题之快速入门题库(一)1~8题

    牛客网FPGA题库刷题之快速入门题库(一)1~8题 第一题 题目链接: 四选一多路器 代码: `timescale1ns/1ns modulemux4_1( input[1:0]d1,d2,d3,d0, input[1:0]sel, output[1:0]mux_out ); //*************code***********// reg[1:0]mux_out_tmp; always@(*)begin case(sel) 2'b00:mux_out_tmp=d3; 2'b01:mux_out_tmp=d2; 2'b10:mux_out_tmp=d1; 2'b11:mux_out_tmp=d0; endcase end assignmux_out=mux_out_tmp; //*************code***********// endmodule复制 题目解析: 用case语句实现简单的四路选择,always语句里面需要用reg,所以新建一个reg的temp变量即可 第二题 题目链接 异步复位的串联T触发器 代码 `timescale1ns

  • Linux vi 的任务前后台的切换

    适合在secureCRT上来操作linux Shell支持作用控制,有以下命令实现前后台切换:   1.&让进程在后台运行   2.jobs查看后台运行的进程   3.fg%n让后台运行的进程n到前台来   4.bg%n让进程n到后台去   5.kill%n杀死job   PS:"n"为jobs命令查看到的job编号,不是进程编号.   fg、bg、jobs、&、ctrl+z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的.   一、&最经常被用到   这个用在一个命令的最后,可以把这个命令放到后台执行   二、ctrl+z   可以将一个正在前台执行的命令放到后台,并且暂停   三、jobs   查看当前有多少在后台运行的命令   四、fg   将后台中的命令调至前台继续运行   如果后台中有多个命令,可以用fg%jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)。   五、bg  

  • codeforces 827B. High Load

    CodeforcesTutorial B.HighLoad ProblemAnalysis 只要贪心地从根节点引出k条边,每条边再往下延伸,并使得每个叶子节点的深度差不超过1,就可以了。 理解了问题的意思,构造的思路也有了,关键在构造的步骤。 构造一个星型的图的思路是:将图转换成以1为根节点的树,然后从根节点开始引出k条边,然后逐层加点连边,最后一定的结果一定满足条件。 注意,除了根节点层和底层,所有层的节点数都等于k。利用这一点,可以计算树的直径。 AceptedCode #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #include<string> #include<vector> #include<cmath> #include<map> #include<istream> #include<cassert>

  • 感叹一下我的大学四年

    一时间还不能接受,总有想哭的冲动。可该走的路还得继续,永远都无法回到过去,只能慢慢适应,适应。可慢慢的适应着,我不知道会不会变得麻木。。。 早上还在郑州,还在学校,下午就到了北京。回想一下大学四年,真的是哭过笑过,不舍。 大一,刚到大学的时候是很雀跃的,劳资期待的大学生活终于来了!自由,爱情什么的,仿佛就在眼前,尴尬的是我大学四年压根都没谈过恋爱。大一开始没多久的时候,喜欢上了一个女孩,这种感觉真的是很棒的!不同专业,每天都聊到深夜,和她总有说不完的话题,趁着酒劲,表白,哈哈。没同意也没拒绝,小姑娘也没谈过恋爱,先慢慢适应。挺不错的,这种感觉真的很棒的,很纯的感情,很想一直就这样下去。事与愿违,还是被我搞糟了,情商低,直男癌,好好的一段感情硬是被我搞得一塌糊涂!那段时间我基本是处于癫狂的状态,想去找她,怂,是真怂,唯一一次跑到她们上机教室,人已经走了,搞了好几个qq小号,经常给她发短信,短信内容可想而知,我自己都不忍心看的。想放弃,拉着朋友喝酒,一个人怼了一斤,我醉的一塌糊涂,不记得做过什么,但那种痛,是真痛!不打扰了,放在心里,大一上结束了。 大一下,以及大二一学年,我基本都是处于逃

  • 面向对象的概念以及特征

    面向对象的概念以及特征实质上将"数据"与"行为"的过程,以类的形式封装起来,一切以对象为中心的面向对象的程序设计过程中有两个重要概念:类(class)和对象(也称为实例),其中类是某一批对象的抽象,可以把类理解成某种概念,相当于一种“模板”;对象才是一个具体存在的实体,从这个意义上来看,日常所说的人,其实都是人的实例,而不是人类--面向对象的特征(1)封装 (2)继承 (3)多态 ※类的定义--使用class修饰类--类用于描述某种概念,封装类的静态特征以及动态特征--定义属性(成员变量、静态特征)--定义动态特征(行为方法) 类与实例,实例对象的创建--类是抽象的--对象是真实存在的--对象的创建是通过类的构造器new出来的--引用类型有多少种?无数种 ※方法的定义--用于封装某种特殊的功能操作,能够进行入参和返回数据--组成元素:修饰符、方法返回值,方法名,方法参数,方法体//方法的语法 /*举例:我给水果店老板50元,老板要给我称50元的水果,然后把水果交给我(买水果) 修饰符方法的返回值方法名(方法的参数列表){ 方法体(买水果的过程) 收了我50元 称50元的水果

  • 安振平老师的5934号不等式问题的证明

    题目若$a,b,c>0$,求证:$\frac{b^3}{a^2+2bc}+\frac{c^3}{b^2+2ca}+\frac{a^3}{c^2+2ab}\geq\sqrt{\frac{a^2+b^2+c^2}{3}}.$证明:由柯西不等式可得$\frac{b^3}{a^2+2bc}+\frac{c^3}{b^2+2ca}+\frac{a^3}{c^2+2ab}=\frac{b^4}{a^2b+2b^2c}+\frac{c^4}{b^2c+2c^2a}+\frac{a^4}{c^2a+2a^2b}$$\geq\frac{(a^2+b^2+c^2)^2}{3(a^2b+b^2c+c^2a)}.$          (1)由不等式(1)知要证原不等式只要证$\frac{(a^2+b^2+c^2)^2}{3(a^2b+b^2c+c^2a)}\geq\sqrt{\frac{a^2+b^2+c^2}{3}}$$\Leftrightarrow(a^2+b^2+c^2)^3\geq3(a^2b+b^2c+c^2a)^2$$\Leftrightarrow(a^6+2a^4c^2+2a^2b^2c^

相关推荐

推荐阅读