曾老师学习寄语:在学生信这件事上我们还是坚持长期主义
的确,每周五天课程(周三、周日休息),每天晚上8:00~11:00,每次3小时线上互动直播,听起来是很累,很折磨人,很考验人的意志力。
我们一起加油!
S:我有Gitbash那个可以用来登陆服务器吗还需要下载xshell吗?
T:xshell用起来比较方便
T:不影响
S:老师,这个服务器账号密码是永久有效的吗?
生信软件的:
S:我有在server上analyze的经验可以自行练习不下载xshell之类用你们的服务器吗我在海外怕速度会很慢。
T:没关系,我们的服务器是腾讯云,理论上全球登陆都OK,因为仅仅是练习shell命令,对网络要求不高。
T:我们的Linux操作都在服务器上完成,课前会给大家服务器账号,需要大家按照课前说的填写问卷以及安装好软件就行。请不要自己去折腾虚拟机或者双系统,否则后果自负。
S:老师我们现在所有操作都是在你们的服务器上要是以后想用自己电脑分析转录组数据的话像昨天作业里面的那11个软件是都要在自己电脑用终端重新装还是也有适用于mac或者windows的版本?
T:尽量不要用自己电脑做转录组分析...我同学有个惨痛教训,用自己电脑跑转录组,把电脑跑坏了,本想着备份一下数据,结果就在备份数据的时候电脑崩溃了,硬盘损坏,导致他的原始数据丢失了♂
那些软件,我不确定是否都能在mac上跑,因为没做过这种操作...最好就是去买个云服务器之类的,方便使用,也不需要自己管理,省心.或者自己搭一个本地的服务器也可.只是最近硬盘啥的比较贵,建议稍微晚一些再搭.等等党的胜利。
S:老师,这个上网查的是内存满了?但是我运行了free-h还有挺多内存的
S:找到了filezilla合适的版本,但点下载就显示第二张图,无法下载
T:(1)windows:
(2)Mac:
S:申请入钉钉群要有什么备注吗,我刚被拒了?
S:我不小心选择安装了R语言的中文版了是不是需要卸载然后重新安装英文版
T:是的
S:老师好,我使用rstudio他显示我未安装R,可是我已经安装了
T:安装在C盘,再重启一下rstudio(r和rstudio一定要都装c盘)
S:Rstudio安装不成功,提示没有安装R,但是已经安装过R了,这是为什么?
S:老师,typora和iterm2安装不成功,好像是mac系统版本偏低。需要升级系统吗?
T:可以重新到软件官网下载一个与系统适配的,不要随便更新Mac系统
10.软件安装
S:mac安装软件是否不用管什么,直接安装就是了
11.如何截图
13.下载R版本
S:我的R和Rstudio是之前下载的,用的还挺顺利的,还用重新下载么
T:4.0以上就行
14.Windows和Mac那个系统更适合做生信分析?
S:请问后续使用Windows是不是不如Mac好用呢?
T:都是一样的
15.软件在官网上下载不下来
S:请问这里点了下载下载了好多遍都不行,Windows10的选择清华的,应该怎么处理呢
T:网盘
16.FillZilla安装不了
T:感觉可以换个mac的ftp软件
17.Term和Termius如何选择
T:安装termius就可以了,iterm2的话更像是mac原生的“终端”(或者叫terminal),所以不装ierm2直接使用系统自带的terminal也是完全OK的
S:曾老师的视频课真好可真扛学一周才听了这么几个,真的是入了学无止境的坑了单细胞的我还都不敢看呢
T:知识点是承上启下的,起码你现在明白当初直接就开口闭口只想学单细胞的心态是不好的了吧,
S:是的,尤其对于新手很危险。
S:老师们想请教一下我们上课的时候下载基因组是ensembl数据库的我又来utsc看了一下发现人的hg38是这个样子的。
T:这里是一条染色体,就是一个文件。至于这些奇奇怪怪的命名是什么,你可以搜一下Hg38的参考基因组里面各个条目。一般我们关心的就是chr1~22和xy
S:那要是需要用就只能来20几个wget了?
T:可以直接下载一个完整的,包含所有染色体的fasta文件,或者写个循环
T:有没有一些学习心得体会,下面是优秀例子:
S:老师们这个scp命令是有权限要求什么的吗为什么曾老师的视频里面用的那么溜我一次都没成功过?
T:你去搜索一下scp的使用,拷贝文件夹要加-r参数,文件多的情况下,可以打包压缩,再拷贝,上课讲的知识点,用起来。
S:老师,视频里面的bowtie2是二进制文件自己安装的然后里面有example示例数据我的是上课的时候用conda装的我找了半天也没找到example是conda装软件就没有吗还是我没找对地方
T:两个安装方法不一样导致的,conda有他自己的设计理念。
T:我们上课讲Hisat2和Subjunc建索引的时候用的是primary文件,是要去看ensembl网站的readme来确定实际项目到底要用哪些文件建索引。
S:我的命令显示是在run的但是这个文件夹的大小得有两个多小时没变过了之前exit一次这种情况我们得怎么知道服务器有没有在偷懒没干活呢?
我们自己不把sh重定向到log这个subread也给我们出来了nohup的日志那不就不用自己写那么一句了?为什么Subjunc这么顺利Hisat2就是不走道儿呢?
T:在使用nohup的时候,也可以指向一个具体的log文件的nohupxxxxxxx>xxx.log&你如果这么写的话,他就会把本来应该输出到nohup.out的内容改输出到你设置的xxx.log里
S:nohuphisat2-buildHomo_sapiens.GRCh38.dna.primary_assembly.fa.gzHomo_sapiens.GRCh38_release104.genome&我一开始这样提交的结果过了两个多小时出来那个Exit了我就又用nohupshHisat2_index.sh>Hisat2_index.log&这个提交了一遍到现在大小也还没变又不淡定了
T:再认真看看课程回放,不要错过每个细节
S:那是做不同项目的话即使网站的文件更新很频繁只要写清楚我们自己用的哪个版本就可以不需要用最新的咯
T:要自己学会控制变量
T:正常
S:老师软链接是快捷方式那硬链接是什么鬼呢是没有节省空间的作用了还是什么呢既然叫链接应该也可以链过来的吧
T:硬链接是防止误删,试一试,搜一搜更有效率。
S:这个记录分隔符是什么东西呢和字段分隔符有啥区别课上老师说不展开讲了要绕懵了但是理解不了是什么意思为啥还要有个记录分隔符呢
T:awk是一行一行处理的,每一行就是一条记录,此时记录分隔符就是换行符。假如你有需求将文本以某个分隔作为一条条记录来处理,那此时就需要修改记录分隔符。好比如你要取出我这几句话里面每一句话的第一个字符,那你就要修改记录分隔符为句号。
S:张老师,我自己操作对软连接过来的fa.gz文件解压的时候,遇到了下面这个问题。我上网搜了一下说是软链接写成相对路径会报这个错,但是我的软链接是绝对路径呀。不知道是不是我的gunzip命令使用有问题
T:这确实是软链接目录层数太多导致的问题,可以考虑减少一点,比如链接到浅一点的位置。
S:请问一下,上Linux课的时候这些软件我都装过,并且帮助文档都调用成功了,但是现在发现这些软件调用不了,不知道现在是不是要删掉重新安装?还是出了什么问题这些软件用condalist里面是有的
T:你目前的这个问题可以看看conda后面的报错大赏,要装一个软件libgcc
S:忘记前几天是不是在这个群里有人问结肠癌和直肠癌应不应该放在一起分析了就记得曾老师发出来过这个问题我昨天特意问了专业的医生这个是看研究目的的结肠癌基本用不到放疗化疗为主直肠癌的话放疗有一定地位所以如果不考虑放疗因素包括很多肿瘤科医生为了增加样本量都是把两者放在一起分析所以就是我们看到的很多文献直接写结直肠癌
S:各位老师中午好,打扰一下,请问我用terminal下载GDCTCGA里的文件失败,和TCGA正在更新有关系吗?
T:多试几次,或者,重新下载一个gdc-client
T:背诵这个表格哦
T:
其次完成生物信息学数据格式的习题(blast/blat/fa-fq/sam-bam/vcf/bed/gtf-gff),收集这些格式的说明书。
S:运行了这句代码之后,又清屏了,怎么回到之前
T:ctrl+c
S:请问各位老师同学,这种PCA图,可以继续做后面的分析吗?
S:判断文件是否存在在当前文件夹,就看是否可以用Tab补齐。
T:这是因为只要你连接到服务器里之后,你就是在操作我们的服务器,只要你在任何一个地方把它给弄坏了,你到其他的地方连进来也都是一样的。
S:请问md格式的文件用什么软件打开?
T:记事本、typora、Rstudio也行,注意:用typora打开跟记事本打开画风完全不一样噢。
S:ll或ls-l查询结果中的“total”数值,是指这个文件夹下面有2820个文件的意思吗?
T:该目录下所有文件及其子目录所占用块数(block)的总和。
T:这样也可以的因为./代表当前目录,可以省略的
S:萌老师,昨天忆苦思甜的部分,我们以后用到的机多吗现在是不是绝大多数软件都能通过conda下载?
T:在咱们的课程中是用不到的,但是建议大家可以去试试看.其实也不难的.课上演示的三个软件的安装包我都放在了/home/t_linux下面,可以cp一份到你目录下,跟着操作一下试试看~
T:后面的两个错误,一个是-u只是选项,不是命令.conda给你的提示是使用conda-u去update一个已经存在的安装好的miniconda3.
第二个错误是,source的是家目录下的.bashrc,而不是根目录下的,正确的命令是
source~/.bashrc。你这里的source的那条肯定不是tab补出来的所以就Nosuchfileordirectory了
S:每天这个cd和软连接要用无数次现在知道为什么学的时候不用死记硬背用的实在是太多了莫名其妙的就记住了
T:是的常用的就很容易记住那些忘掉的也无所谓,说明不常用~需要的时候去查一下就好了
S:当前的文件夹是不是可以不写路径?
T:当前最好写上./养成习惯会少很多出错的概率
S:虽然只截取了25000出来这个不为0的还是很多的那对于我们新手以后是不是也可以这样先截取一部分把整个流程熟悉了确认没有错误了再用整个儿的挂后台跑?
T:是的,就是给大家传递这样的思想,先用小文件,熟悉流程,掌握方法。
S:我的airway下面没有这些文件,有什么处理办法吗?find命令找不到fastq_raw25000
T:去teach文件夹下cp拷贝
180..bashrc文件问题
S:老师我好像把bashrc搞崩了
T:如下操作
(1)/bin/cp/home/t_linux/.bashrc~运行一下这句
(2)刚才的解决方法,可以帮你把基本命令找回来,但是把你的.bashrc覆盖掉了,你原先的一些做的一些配置信息会丢失,即截图圈出来部分,这些要重新追加,操作起来稍微复杂,我帮你改回来了。
S:是的,我绝对路径是自己打的
T:嗯,错了改过来就行,这是你干的好事PATH="/home/biosoft/hisat2-2.1.0/:PATH",仔细比较一下和老师的代码有什么不同
S:你的家目录,用户名,还有最后PATH的$符号,都有问题
S:萌老师,cd~和cd/home不是应该一个意思吗。为什么出来的东西不同呢?
T:在普通的服务器里面确实是一样的,但是我们有经过一些特殊的设置,这个在第5天的课里有提到过。你可以先cd~之后看看你现在的家目录是在什么位置。不是原生的/home哦,$HOME才是你的home,你echo$HOME看看
T:首先,不知道你哪里找的教程,这个教程可能已经过时了.或许当时能用它介绍的办法解决这个问题,但是你自己也尝试了,没啥用,该出错还是出错.
其次,我上课的ppt里写得很明白遇到这样的报错要怎么解决,那么大的字号还是红色的,运行一下基本就解决了.为啥舍近求远不看看现成的内容要去自己找呢[Emm]
S:用mamba安装的时候会出奇怪的错误
T:那你试试用conda安装
T:每个软件的帮助文档能不能调用出来
S:老师为什么说只取有_的没有_的文件是什么的比如这个*13和*13_1和*13_2是什么关系啊?
T:*13_1和*13_2是双端测序,多余的那个,是没有成功配对的,直接删除即可,这个是airway这个数据集的研究者们比较辣鸡,它们自己瞎搞,把双端测序在过滤的时候,搞的不匹配了。
S:前面曾老师说airway这个数据集质量不是很好那正常的是全部应该只有1和2吗如果换一个数据应该怎么选择留下哪个来分析呢?
S:老师,为啥找不到秘钥呀?
T:find~-name*openssh
S:昨天跟着老师建立文件夹,删了几个空文件夹,然后突然自己的服务器突然掉线了,接着就激活不了了。后来自己又source之后,莫名其妙conda又回来了。今天再上Linux就又不见了。
T:检查环境变量echo$PATH,知道PATH变量的作用是啥,怎么正确修改,以及和你安装软件有什么关系不,如果不知道,把这个知识点回顾一下,试着先把PATH重复的部分去掉。
我看了一下你的账号,你的miniconda3文件夹是有问题的。然后查了一下历史记录,你对miniconda3修改了权限,用chmod775miniconda3/把权限改回来就行了。
T:你试试把./改成~
S:可以了
S:GDC数据库一直登不上,咋办啊?
T:换网络环境,或者到xena数据库下载
S:在Linux环境里面自定义变量怎么查看?除了echo$显示出来某个特定的自定义变量,怎么看到你自定义所有的变量啊?
如何在Linux下查看所有的自定义变量呢?
S:上课用的shqc.sh为啥是sh不是bash
T:运行任务shell脚本,这两个命令都可以。都是shell的解释器,略有差别很多的功能dash都是不及bash的比如touchfile{1..10}这样的写法在bash里可以被解释但是dash里就不可以。感兴趣的可以看看dash和bash的差别.(现在咱们使用的sh基本都是dash软连接过来的)。
其实没有必要在意这么偏计算机的内容,咱们主要还是用计算机来解决生物学的问题.有些地方即使不太清楚也可以先放一下,专注在解决生物学问题的方向上来。
T:mv是用来处理一个文件或者文件夹的,它处理一个真实存在的一个东西,而你现在要处理的其实是一串字符串,这是不一样的。你现在出问题说没有这个文件或文件夹,是因为你把字符串当做一个文件在处理,所以你用move的时候,它就会告诉你没有这样的一个文件或文件夹,因为它只是字符串而已。字符串的话你你不能用mv来处理。所以它的区别不在于具体是一个文件还是文件夹,而是说你处理的是字符串,而不是具体的实实在在存在的文件。所以他会报错。
S:昨天课上有几处在句末用了&符号不是很理解有印象的比如两处
第一个在生成md5的时候md5sumFILENAME>FILE.md5&
还有一个比如说nohupJOB>JOB.long&
T:把任务挂到后台运行:nohup&搭配使用,提交sh任务的时候,把任务挂到后台运行,因为实际项目运行一个命令可能要好几个小时,甚至几天。如果只用&当你提交完任务之后,任务在后台运行,这个时候关闭xshell任务会终止,不会继续运行。但假如说你用nohup&那即便是关闭xshell,任务也会在服务器上继续运行。
S:就是linux里面文件的格式其实都不在意的吗?比如课上有命名fastq.urlsample.ID这类的不是说真的有.url和.ID之类的file吧就是其实.后面写什么都没关系的是么?
T:是的,这个后缀名主要是让你看到这个文件,能想起里面记录了什么内容,其实它们本质上都是一个文本文件。
因为Linux的黑白命令行,无法显示颜色深浅,形状这样的肉眼区分。所以使用后缀名看文件,自定义的区分。
不过,虽然说后缀可以随便来但是还是有一些默认规则的通用的比如.gz。你可以试试看把一个tar.gz结尾的文件给重命名成不带有tar.gz,看看能不能解压开.我做过这个作死操作了,计算机是能识别的[旺柴]就怕你自己识别不了。
S:老师,命令如果比较长转行了是不是要加一个\,最后才能运行成功?
T:建议写到脚本里面,然后bash这个脚本文件。
S:学习R的时候我们可以用语雀和Rmarkdown这样联合在一起复习记笔记,感觉效率还蛮高的因为直接能看到运行的代码而且不想看的地方可以折叠起来也很方便但是Linux因为是在服务器上面的我试了自己的终端缺很多命令没办法放进Rmarkdown里面不知道老师们有什么好的推荐吗还是就只能终端上面截图来做笔记了感觉效率好低。
T:这个问题我之前也发现了,正在尝试自己开发小工具来做这个内容。可能还是不够熟悉,如果足够熟悉的话,不会有这样的问题因为这些命令敲着敲着就会成为肌肉记忆。
S:基础没打好会报错到烦死
T:解决报错本来就是学习的过程,现在我们把路都给你趟好了,所以你运行起来没啥问题,等到真正运行自己的数据的时候,还是一样碰到问题的,要有面对报错解决报错的觉悟哦
S:老师,我发现我的目录下有fastq.gz文件,我想删掉,但是rm-r命令说不存在文件,请问这是怎么回事?
T:不要引号
S:1.为什么这个数据都是length=63,是老师处理过的吗?实际上是会长短不一的吗?
T:1.因为这个数据,作者测序的时候,选择的读长就是63。对于二代测序,以后你可能会遇到读长为100,150的,一般一个原始的fastq文件,读长都比较统一
S:2.Trim-glore是怎么知道接头序列的啊?是所有sequencer用的接头都是一样的吗?
T:2.trim-galore会自动检测一些常见的接头,即reads的前12~13个碱基是否符合某个接头的序列,接头有多种,并不是只有一种
S:为什么老师的命令N就会标出颜色呢我自己的就一样颜色看着命令是一模一样的呀?
T:使用grep得到的结果就有颜色,你这里,grep的结果又传递给其他命令了,所以颜色就消失
S:老师你这个rmd中数据完整性检验时候,直接对比的第11列和第4列的数据,不用我们上课时候处理数据那么麻烦,是因为,以前网页下载的数据,这个fastqmd5和fastq_aspera的数据直接是可以拿来用的格式,不需要整理么?
T:之前下载的是sra数据,sra的简单一些,现在sra的连接ENA数据库不提供了。
S:fastp用起来似乎比trim-galore好些?实际用的时候需要在这两者之间选择吗?
T:选择自己觉得好用的就好了
S:还是不懂怎么判断手里的数据应该用trim还是fastp过滤呢总不能拿到数据每种过滤方法都要做吧这种过滤软件是不是也还有其他的?这个过滤会影响到后面的差异分析结果吗?
T:两个软件都可以,不用纠结,不影响,二选一即可
S:但是两个方法最后过滤完并不会序列完全一样纠结的是对最后的结果会有多大影响
T:没有什么影响的,要是影响大上课就会强调出来的。
S:4.fastp的json文件干什么用的?
T:json文件是用来生成html的质控报告用的
T:其实呢,数据处理的细枝末节,绝大部分都不重要,只需要保证核心是正确的即可。各种流程各种软件参数都有综述,不需要你再比较一次,我们是应用生信,并不是创造生信工具哦~
S:1.过滤的时候切到的那种很小的片段,甚至有切一个碱基的,这种到底怎么知道是接头的,而不是正常的mRNA的sequence?
T:切掉一个碱基的,可能是质量差被切掉
S:Histc是说就不能align那些两个刚好在两个exon的衔接部分的那些reads了吗?Subjunc解决了这个问题?
T:hisat2和subjunc理论上差异并不大哦
S:老师上课有提到一下fq和sam转换怎么理解?干嘛用?
T:你可能有把sam或bam文件转成fq文件的需求,就需要从sam或者bam中提取出fq的信息,这有工具可以实现的比如samtoolsbam2fq。
但是,这种需求是比较少见的,所以了解一下就好。
正常情况下,我们都是用fastq文件比对到参考基因组,得到sam或bam文件,然后进行下一步分析。
S:Salmon用的是cDNArefernece,所以会没有lincRNA之类的count;同样的,那些没有切了intron的preprocessingRNA是不是就count不到了呢?
T:有没有lincrna是由我们前面实验提取rna提取的哪种决定的~普通转录组一般是使用磁珠调取具有polya尾的rna。
S:1.之前在没有map之前不是做过一个fastQC吗不是会显示比如一段基因过度表达(over-represented)吗?类似这种感觉不是map之后再看会更好吗?那样才知道是什么基因过度表达啊?还有其他的一些质控感觉要mapping之后再看更能理解这个数据啊?但是hisat2之后的那个multiQC就显示了一个align的percentage这没啥用啊
T:你从一开始就理解错了哦,fastqc看不到基因过表达信息,仅仅是对fq文件进行质量评估。
S:老师,我做trim_galore过滤,做了好几次了,每次运行几个小时也是这种结果,用jobs查看一直是running,我用的就是软连的那个文件啊。这么慢么?
T:展示一下代码
T:检查一下log日志
T:嗯,试试不用加--fastqc参数
S:不加fastqc可以
T:嗯,原因是,加了这个参数,就会调用fastqc命令,基于Java,但是你的Java环境有点问题。可以考虑着单独再创建一个conda环境,安装上trim_galore和fastqc试试
S:老师,我新创建了个环境,再运行就可以了,谢谢
S:各位老师好,我把下载的基因组用gunzip解压之后为啥好多ATCG从大写变成小写了啊,震惊!
T:解压并不会改变ATCG的大小写.你下的这个文件本身就是这样的.你需要了解一下什么叫sm序列,即softmasked.
T:大小写都有自己的意义,这个fa文件的网页路径,有一个readme,里边介绍了字符。
T:简单讲就是你下错文件啦删了去下个新的。你下次要是下了标记了rm的文件,还能看到一大堆的N呢
S:我就听到下载primary_assembly,逮着一个就下了,处处是细节
S:老师们求救我这里出来个u上面两个点的然后再打|或者$这些字符都不能正常显示了要怎么变回去呢?
T:重新运行一下修改配色的两句代码,然后重启。
S:我现在目录下只有一个对象ls()--"N01_DF"。但是我用saveRDS(N01_DF,file="r.rds")的时候,报错。ErrorinsaveRDS(N01_DF,file="r.rds"):errorwritingtoconnection。
T:推测是你的硬盘问题,errorwritingtoconnection,我使用你的代码是没有问题的。
S:这个保存命令没问题,我保存一个小对象,没有问题,是我的硬盘满了哈
T:duplicate(x)重复值第一次出现为F,其余为T。所以,对于x=c(1,2,3,0),duplicate(!x),返回值为FTTF。
S:尝试写了一个函数,把每一列提取出来变成新的CSV,但是在文件名的命名上好像没办法实现自动化?
T:file=的后面应该写引号里加文件名,一个文件名的本质是个字符串,这个字符串可以用paste0来生成。
S:老师麻烦问一下rio包是不能实现两个excel合并的功能吧?我倒腾了半天,读入是没有问题的但是合并就是不成功看了包里函数的帮助好像也没有是这个功能的
T:你理解错了,Rio包可以读取含有多个工作簿的excel
T:涉及到两个问题:
(1)合并数据框用函数:merge(两个数据框,按相同列合并,这一列是独一无二的,作为索引),join,cbind的区别。
(2)文件读取的方法:rio包中的import()读取只有一个工作簿的excel,import_list()可以读取含有多个工作簿的excel生成有两个元素的列表(生成含两个元素的list),两个元素先merge,再和第二个文件数据框合并。
S:表格里面中英文混杂着会影响这些代码的操作吗因为读进去以后中文信息都乱码了所以导致merge就一直报错?
T:看看设置编码方式能否解决,设置编码方式的方法,看帮助文档自己找。
注意:原始文件不要进行任何修改。
关键词findmethodforfunction
T:见答疑文档Q20,中文用户名是指R包安装,C盘users下边的中文文件夹,R包默认安装在这,不能手动改,可以删除然后新建一个英文的,就可以自动找过去。如果手动改,则需要以管理员身份打开Rstudio,打开Rproject,再重新安装R包,改中文路径见Q20。
解决办法:windows系统,安装奇怪软件后会有网络的代理设置变化,导致包安装不上,去系统设置和浏览器中,吧代理设置关掉。
A:数据结构:vector,matirx,list,data.frame
数据类型:数值型,逻辑型,因子型,字符型
class()判断类型
(1)当NA单独出现时,为逻辑值取值:TFNA,class(NA)=logical,length(NA)=1,而NULL代表没有,class(NULL)=NULL,length(NULL)=0,二者不是同一类
(2)当NAVsNULL,NA可以作为一个元素出现在任何数据结构中,他的数据类型随大流,是缺失值的意思。
table(is.na(b))
#返回值有T有F,如果只需要T/F的个数,用sum()
sum(is.na(b))
set.seed(5)##设定种子
b=rnorm(4);b#在设定种子的前提下生成b的4个随机数
set.seed(5)##确定种子
a=rnorm(4);a#在确定种子的前提下生成a的4个随机数
a==b#返回值才为T
S:文件读取乱码从一种形式变成一种形式:从字母形式的乱码变成了这个菱形加问号的乱码
S:老师我又从头理了一下,终于成功了百分之90,现在就剩下这个列名奇奇怪怪的,我再想办法怎么把英文后面带的...数字和中文后面带的.x.y的列名去掉就成功了
T:这个是因为米有重复的列名存在,所以就分了.x.y
S:rio包export还不能直接导出来excel的格式,encoding="UTF-8"的参数还不能写在export里面,导csv汉字又会乱码,帮助里面让用write.xlsx函数导出,但是rio包里面没有这个函数,就又重新下载安装了write.xlsx函数的包,再用这个函数把文件写出来
T:纠正一下,export可以导出xls,或许是xlsx
S:用筛选出来的circ去预测下游miRNA,在通过miRNA预测mRNA。不知道行不行?
T:能不能读取成功,主要取决于你的文件在不在你的当前目录,如果不在,你得指定文件所在的位置.你新建的Rproj是空的,里面没有任何文件,因此你如果要读取不属于你这个新建的Rproj的文件的话,要么指定文件所在的具体位置,要么回到之前的Rproj去,要么把你要的文件复制或者移动到你新建的这个Rproj里来。
S:各位老师好,我课题有个问题,想咨询一下。我分别导入了72个样本的.rds文件,如P39<-readRDS("../00data/P39.rds"),再用seurat的FindIntegrationAnchors()函数将其整合,这个地方用list还是c呢?我用list这一步没有错误,下一步就报错了,我觉得应该用
T:library(harmony)
seuratObj<-RunHarmony(sce,"orig.ident")
names(seuratObj@reductions)
seuratObj<-RunUMAP(seuratObj,dims=1:15,
reduction="harmony")
建议使用harmony,你这么多单细胞数据集的整合,harmony会友好很多哦,你只需要指定sce的某一列,需要被整合的那个因素。
如果你一定要CCA,这个代码即可。
#拆分为12个seurat子对象
sce.all.list<-SplitObject(sce.all,split.by="orig.ident")
sce.all.list
for(iin1:length(sce.all.list)){
print(i)
sce.all.list[[i]]<-NormalizeData(sce.all.list[[i]],verbose=FALSE)
sce.all.list[[i]]<-FindVariableFeatures(sce.all.list[[i]],selection.method="vst",
nfeatures=2000,verbose=FALSE)
}
#耗时,1h~2h左右
alldata.anchors<-FindIntegrationAnchors(object.list=sce.all.list,dims=1:30,
reduction="cca")
sce.all.int<-IntegrateData(anchorset=alldata.anchors,dims=1:30,new.assay.name="CCA")
names(sce.all.int@assays)
S:如果用seurat的话,FindIntegrationAnchors()使用list()吗?用list()把72个单独的对象,生成一个list列表,对吗?
T:对
S:我还想问个问题,昨天练习里用到的mpg文件,可以view,可以根据它画图,可是在工作目录里并没有,请问这个文件在哪里呢?
S:各位老师好,我好奇地想问一下这下面的conflicts是表示啥意思呀?
T:(1)函数的名称和其他R包一样,使用的时候会有冲突,使用时指定一下R包,例如:要用filter函数,就以这样的形式使用dplyr::filter()。(2)这情况,多出现外部,内部不会打架。而且,tidyverse和dplyr出自于同一个人,不存在冲突的问题。
A:geom_point()geom_dotplot()geom_jitter()
S:用biocmanager下载这个包还是报错,我之前好像也是一直装不上这个包
T:这个包可能是在变化,等等看这个系列最近都有问题。
S:这是我们自己测序的数据,公司发来的结果,他注释到GO通路之后出现很多P值等于0的,这种应该怎么理解呢?
T:可能设置接近于0,它的精度不够,就直接把它约等于0了。
S:这种图画出来很丑哎,曾老师,这样还有办法补救一下吗?
T:如果有差异基因列表,自己去做:
【先搜索后提问】
【搜索完毕告诉我你的关键词,以及发给我你搜索的最佳结果推文】
关键词是,开局50个基因
16ComputationalAnalysisofSingle-CellRNA-Seq
17NormalizationofSingle-CellRNA-Seq
18DimensionalityReductionofSingle-CellRNA-Seq
19Single-CellRNASequencingAnalysis:AStep-by-Step,
S:孙老师,麻烦您看一下,这样的循环代码还算合格吗?哪里应当修改?
T:不合格,你写的条件x=="I",永远是TRUE,这里不需要判断,而且是print了,没有保存下来,只是看了看,这个后面是讲过的,用apply实现更无痛。
S:老师,这是结果
T:正解
T:试一试,搜一搜,即出结果,供参考
老师,刚刚下载GEO数据的过程中报错,课堂上说是因为有中文名,我用帮助文档里的这个方法修改路径,会不会影响已经下载的R包呢
S:求助老师,这个神奇的org.Hs.eg.db包到底怎样装才对?总是装的时候没问题,加载就报错,包还用不了,更新了还是报错?
T:这个包可能是在更新,很多人最近遇到了这个问题,试试安装旧版本。
关于library("org.Hs.eg.db")包的报错,问题在于新版本的RSQLite存在bug,解决方法是安装旧版本的RSQLite:
重启RStudio
然后运行代码
T:这个设置是因为分面函数的默认设置是使每张子图的大小一致,你可以调整一下分面的参数设置。
S:老师,我在电脑上把图展开了,但是导出来怎么还是比例不对呢?
T:导出时,调整一下参数
S:老师,我还没有修改环境变量,这个修改之后会不会让原路径下的R包无法使用呀?
T:不影响的
S:下载表达矩阵都下不了了,报错timeout
T:网络问题,换手机热点试一试
9373068601655297&count=3#wechat_redirect
S:还有一个比较general的问题我们这边某些bioinformatics的人都是在用Python我们主要做单细胞貌似很多analysis在Python和在R里都有对应的包我只是想问下用R和Python的优劣不是说更专业的才用Python吧?
T:这是两个门派,都可以实现分析需求,Python和R相爱相恨,我们推荐用R。
关于生信入门和数据挖掘两个群的-软件安装一样。
S:小洁老师,做生存分析的时候,应该用什么数据呢?readcount,还是FPKM?我发现我在做批量COX的时候,用readcount和FPKM得到的结果不一样?
T:不要看数量,看质量,至少看看韦恩图或者散点图
S:按道理,由readcount变为FPKM,表达量大小的排序应该不会变吧?
T:当然会,readcount肯定是错误的呀,文库大小是必须要考虑的因素。
S:老师这个代码为啥带个L直接0不就行了我试了一下结果是一样的写repeat变量后面就要带个L?
T:试一试,搜一搜。整型变量
S:请教一下,R语言终极练习题的第二题,为什么分面作图的话就需要将扁数据变成长数据,而不分面的情况下作图就不需要呢?
T:试一试,看写代码,如果不变分面的代码要怎么写,下手了自然能明白
S:老师,这道题我刚开始就在想把扁数据变成长数据,但是后来发现好像因为循环的原因,每个循环内的数据本身就是长数据,所以就可以直接正常作图?另外,分面是按照基因来的,基因应该是作为列,而不是列名,所以分面的时候需要扁变长。不知道我的理解对不对?
T:非常地对
S:见到三个done了但还是调用不出来help?像这个不成功起码告诉我吗需要安装哪两个packages但是Python是三个done没有说却什么?
T:python3--help,搜一搜
S:是的听到课上说不用安装非常大怕以后用到所以先看看能不能和老师的命令出一样的结果结果真的没搞清楚
T:怕以后用到…,以后用到了可以现安装啊,不要提前焦虑哦
S:老师,我这个堆叠直方图怎么不堆叠呢?diamonds那个数据运行出来是好的,iris那个不行。
T:对比一下成功的和失败的代码,找不同。试一试能解决90%问题,思考的过程比解决问题本身更重要。
S:4.下游这边比如说看到同组有一个异常样本要怎么办就是直接剔除吗?
T:4.异常样本,比较多的处理方式就是剔除。当然也没有标准答案,有时候是处理和对照标反了,需要检查。
S:对照组的箱线图整体都要比实验组的低或者高不知道中文怎么说就是要怎么处理这种batcheffect呢?
T:对于二代测序,不同批次测序,存在batcheffect,不同后面R包做差异分析的时候,算法已经考虑到这一点了,一般不用手动去removebatcheffect。
对于芯片数据,存在batcheffect,可以用R包函数,有很多,搜一下
T:builtin的对象类型不可替换,一般出错原因不明时,一定要尽量往前倒推,找到第一个报错信息,去修正。或者看看你的exp是不是有问题?
S:最近画气泡图,总是很瘦长,怎么解决?15个pathway为纵坐标,enrich-factor取值0--1为横坐标。哪个参数可以设置?或者需要等比例放大数值,再更改标签?
T:调整一下PDF画布大小width和height参数,或者画图代码的字体
S:可不可以把x.轴拉长?这个气泡能够整体放大吗?
T:最重要的是,要学会自己搜索。
T:需要人工手动注释,这个应该是也有几篇文献出来的,基本上的话只能说尽可能参考文献了。好歹他也是模式生物,所以你不用那么着急也不用那么害怕。
tibble是data.frame的一种形式,语法和data.frame较为相似,其实大部分功能都与data.frame相似。tibble来自于tidyverse生态系统中的tibble包。
依照官网上说的,tibble与data.frame的最大不同在于两点:1.print;2.子集的索引。
T:加括号,或者两行代码写在一行,用分号隔开。
S:我想用str_replace_all替换那个点,怎么所有都换了,这里的点怎么感觉和Linux里面正则表达式似的str_replace_all替换任何字母都行就是点变成这样?
T:特殊字符,定义点,得用"[.]",还可以用\\.
S:请教曾老师,我下载TGGA的RNA-seq数据,将3个数据集合并,然后要怎么去除批次效应呢?
S:老师,有个问题想请教下。
Day4里边我们用的数据是airway这个包里的,那我们怎么自己生成airway包里那种格式的数据啊,是不是要把原始数据上传GEO才会有啊?
T:转录组测序得到的counts矩阵,如果作者又上传到GEO数据库,那直接下载作者上传的数据即可。如果没有,那就要下载作者上传的fastq文件,然后再根据上课讲的转录组数据处理流程,得到counts矩阵
S:谢谢郭老师,我现在已经得到表达定量的矩阵了,怎么才能变成airway包里的那种样子的数据呢。我看自己生成的那个矩阵没有很多比如处理分组啥的信息。
T:你仔细看原文,以及从ENA数据库下载的文件filereport_read_run_PRJNA......文件,里面有说明。
T:横纵坐标都变了,你看函数帮助文档,关于这个add参数的解释。
S:请问差异分析得出来的差异基因的结果,如果要把它们用ensmbl注释的功能分辨出lncRNA和mRNA,是需要下载人类基因组进行比对吗?还是怎么做的?查了很多资料,还是没有解决,请各位老师指教,谢谢
T:首先,你的确定你的数据是否有lncRNA和mRNA这两种,一般要看上游的实验,建库的方式。第二,如果有lncRNA,可以用gtf/gff文件中的biotype区分。
S:我现在在复习GEO那部分的内容,复现的小洁老师讲课一篇文献。作者说的是用这个网站进行注释的,但是只一笔带过了,没有具体说方法
T:annoprobe里的annogene函数可以帮你做
S:张老师,表达矩阵怎么才能手动添加分组?上课用的数据分组信息都是现成的?
T:分组信息,你仔细看原文,以及从ENA数据库下载的文件filereport_read_run_PRJNA......文件,里面有说明
S:具体分组我知道的,就是后边画图时候一运行group_list这个找不到对象
T:赋值一下啊
现在我已经拿到基因表达矩阵,我是知道分组情况的,怎么才能让R知道数据分组
T:有意思的怀疑:
T:粗略看了看,起码几十篇数据挖掘文献,就针对这一个数据集,变着花样各种挖,活脱脱的一个数据挖掘发展史!
T:复制粘贴即可运行的代码,值得立马实践哦,检验你的r基础知识
S:这个文件的后缀不是让我们自己知道是什么文件的吗但是为什么我不写上后缀fastq.gz既不能用zcat查看做fastqc的时候也不能进行呢对于计算机来讲不是应该不管他叫什么计算机都知道他的后缀是fastq.gz吗?
T:有的程序是会智能识别后缀的
T:你没有看全,这里展示的都是control用作对照的探针,还需要再找找其他文件,比如soft文件?
S:老师,我根据流程换了个表达矩阵跑lasso的时候,出来的这个图取不到值,这个我没搞懂是哪里的问题,表达矩阵都是tumor,并且和meta的顺序也都一致。84个样本,用差异基因的表达矩阵可以画出来,用cox的就变得更奇怪啦
T:是的,样本太少,不建议再分割,第三张图效果还可以。
S:我有个问题想请教。一般做WGCNA分析时,我看有的人使用差异表达的基因进行分析,有的人使用所有的基因进行分析,还有用25%变化最大的基因,那种方法比较标准,更为常用有意义呢?
T:以结果为导向,假如你符合要求的基因非常多,你就校正一下,进一步筛选基因。假如你用矫正之后的阈值发现只剩下两三个基因,你就不要矫正了。虽然不矫正会有假阳性,但是比没有阳性强。
S:老师想问一下,一般这种表达矩阵中的NAN怎么处理?是GEO上下载的芯片表达矩阵,未经其他处理?
T:既然一拿到手就是这个样子,那就是垃圾数据,要么处理一下原始数据,要么就换一个数据
S:老师最近需要run一个spatialtranscriptomics包cell2location.是用Python写的。有没有学习Python的推荐
T:用一个软件就需要学一门编程语言,那你会陷入无穷无尽的麻烦,他们的底层逻辑是一样的,如果你确实需要资料也可以给你,py有150g,视频代码
T:应该是很多数据库,试一试,搜一搜
153.代码生成的PDF无法打开?
S:代码文件first.R生成的PDF无法打开?
T:首先,查看工作目录setwd(),确认当前生成文件的路径,然后查看工作目录下所有文件dir(),来确认工作目录下是否有想要的PDF文件。确认无误,说明生成文件没有问题。
可能的原因是:多次运行了画图代码,但是没有运行dev.off;或者多次运行dev.off(关掉画板)但是没有正常运行前边的画图代码,导致画图输出异常。
解决办法:
154.R包下载
155.kegg有一个物种列表
157.正则表达式
Q:字符串搜索:“.t.”"t"一样吗?这样出来结果是一样的
A:这涉及到R语言里面的正则表达式,搜一下
158.字符串的分割-特殊字符
Q:老师,我做字符串的分割,为什么总是不对?
A:点是特殊字符哦,需要加上[],分割的时候是[.]
159.一个公共数据集最多可以被挖掘多少次呢?
160.危险的.bashrc
T:.bashrc(Linux开机后就会加载的个性化设置),运行cp~/.bashrc~/Data/bashrc_bk,备份.bashrc文件,如果损坏,也容易解决。
修改后需要运行source~/.bashrc个性化设置即生效。
161.Nosuchfile
直接原因是:文件名写错了,或者没有在工作目录下
162.文件命名
在R语言中,文件的命名最好用英文,否则会出现一些你看不懂得符号代替
163.xena下载的tcga数据如何用于差异分析
S:xena下载的tcga数据取了log的,应该可以用limma做差异分析吧?
T:需要反log哦~
164.如何检查自己的数据处理结果对不对?
A:抽查,一般样本是对的,那么整个结果也会是对的
165.学员笔记链接
166.如何实现:NA值个数大于这个比例的对应的行删去
S:老师好,我想问一下manyNAs这个函数在R中找不到,也搜不到对应的R包,有没有同类型的函数可以代替使用?功能大概就是设置一个比例,矩阵中NA值个数大于这个比例的对应的行就删去
T:示例代码:
is.na(NA)
is.na("a")#根据返回值,认识函数is.na()
b=matrix(rnorm(20),nrow=5);b#生成矩阵b
k=sample(1:20,10,replace=F);b[k]=NA;bk#随机取样10个,是成为下标,将下标k的元素设置为NA,生成新矩阵b
y=function(x){sum(is.na(b[x,]))<=0.5*length(b[x,])}#编写函数,实现目的
167.!5的返回值?(与7一起看)
S:!作用对象是逻辑值,所以涉及到数据类型转换,所有非零数字转换为逻辑值均为TRUE,0=F。
168.肿瘤转录组数据分组
S:我想问,对于肿瘤转录组数据来说,可以用转移的和未转移的来分组,然后进行差异分析等后续分析吗?我觉得可以做,但是由于我看过的文献有限,好像没见过这么做的
T:非常多,搜索文献
169.字符型数据如何转换成数值型数据
S:数据我经过了转换和合并之后class是character。用lapplyasnumeric后,有一部数据还是character。只能手工一列一列的asnumeric.搞了好久也没找出原因?
T:xena下载的数据,怎么整理,在tcga-1里面有。
170.Lasso分析
S:老师,我还有一个疑问,lasso的时候从1000个计算的值选最好的值时,我发现这样每次得出的min基因和lse基因,都是不同的,画一次有一次不同,有办法可以每次都取到相同的基因吗?
T:set.seed,一个函数,学他,切割数据时用到的随机种子
171.Rstudio与R包
Q:我是中文账户,左键安装Rstudio会报错但是用管理员身份运行Rstudio不会报错,安装R包成功(路径是:C:\ProgramFiles\R\R-4.0.2\library这个路径和jimmy视频里的一样;这次是221个R包对吗?)。改了环境变量TEMP,TMP后,没有在新建的文件夹下重新安装R包,但是library成功。这样应该不会有什么问题吧?
A:提问方式非常标准。安装R包,library没有报错就可以了,其他的问题不大,如果你担心,可以截图看一下你的环境变量是怎么改的。
172.R包安装正确操作
T:将浏览器上的代码复制粘贴到新的RStudio的脚本(script)里,从第一行代码开始,一直点run,逐行运行,不要点太快,留意每一次的运行结果,没有提示error就不用管,遇到error再解决它,看看答疑文档解决方法。如果R包加载失败,则找到安装该包的代码,重新安装,然后再library
173.library文件夹只有30个R包文件(目标221个)
S:我的library一直只有30个R包,而老师视频里200多个
T:不影响,因为R包安装在了不同的路径上。静待上课就好
174.遇到奇怪的报错,怎么都解决不了,怎么办?
T:重启Rstudio
175.以前能用的R包现在不能用了
S:seurat安装失败,问题是上周seurat还能用?
T:(1)最新Seurat包要求R是4.0,而目前的R可能是其他版本,需要调整R或者Seurat的版本,建议设置一下Seurat包的版本,不要轻易调整R语言版本。
(2)还有一种可能是依赖包RANN的问题,可能包需要更新。安装包和更新包的方法,都是重新安装包。