底层架构真的折磨死个人(急,在线等)
前面我提到了使用自己的闲置服务器跑10x单细胞转录组上游流程(10x的cellranger count 流程)特别慢,可能是Windows的ubuntu子系统,而不是纯正的ubuntu这样的Linux?所以就干脆重新安装一个ubuntu双系统。见:参考基因组用错了单细胞转录组流程照样可以走通
Windows的内置ubuntu子系统运行速度太慢了
本来是4~8个小时就可以跑完的,在Windows的内置ubuntu子系统运行了30个小时还看不到希望,果断杀掉进程!
从此不再碰Windows的内置ubuntu子系统。(主要是我们生物信息学领域的NGS数据处理,都对磁盘读写要求太高了)
安装Windows和ubuntu双系统
这个超级简单,烧录一个4G的U盘进去ubuntu20的系统即可,重新启动个人电脑时候在BIOS里面设置一下U盘启动,自动安装好ubuntu系统。
开启ubuntu双系统
需要把之前Windows的8T硬盘挂载上去,简单搜索就解决了。
但是我运行10x的cellranger count 流程的时候,发现它没办法调用cellranger软件包文件夹里面的打包好的python的各种模块,而是不停的使用我自己ubuntu里面的python环境。
每次运行10x的cellranger count 流程都失败,每次报错不一样,都是表面的那些错误,缺这个那个模块。可是我明明下载的就是cellranger软件包,理论上无需安装,解压即可使用!我对比了Windows的内置ubuntu子系统运行10x的cellranger count 流程,以及其它服务的 ,和这个ubuntu双系统,确实不明白问题出在哪里。
这样耗了大约两个小时,实在是受不了了,python模块不知道啥时候是尽头。我也思考过是不是这个软件需要注册,绑定了机器,我换了ubuntu就需要重新下载或者解压。
在自己的磁盘解压文件居然也需要sudo权限
然后我解压它的时候,奇迹出现了。满屏的报错,人生第一次啊, 在自己的磁盘里面解压居然也会报错!!!
cellranger-4.0.0/external/cellranger_tiny_ref/3.0.0/star/
tar: cellranger-4.0.0/external/cellranger_tiny_ref/3.0.0/pickle: Cannot utime: Operation not permitted
cellranger-4.0.0/external/cellranger_tiny_ref/3.0.0/star/Genome
tar: cellranger-4.0.0/external/cellranger_tiny_ref/3.0.0/star/Genome: Cannot utime: Operation not permitted
虽然我看到了 Cannot utime: Operation not permitted 这样的报错,但是我关心的是权限问题,所以解压的时候加上sudo,就解决了这个问题,而并没有去搜索这个关键词,也没有去思考,为什么解压也需要sudo呢?这个磁盘的权限明明就是我自己的啊!
果然,重新sudo解压后的cellranger软件包就可以使用了,不再报各种python模块错误了,从3点到7点,仅仅是5个小时就运行完毕了。
但是最后仍然是有一个报错:
Log message:
Operation not permitted (os error 1)
这个报错到底前面的5个小时都浪费了,因为最后的结果文件没有生成,都是各种各样的临时文件。
跑个软件你到底需要什么权限呢
看到这个报错,我顿时火大了,这就是我的磁盘,前面解压需要sudo权限就算了,现在跑个软件,明明都可以创建文件夹,写文件,你到底是需要什么权限?难道这个软件还顺便要挖矿吗????
那就只能是继续搜索权限,发现有人提到了居然是连root用户都有无权限修改文件,原因是chattr命令,用此命的功能更为强大,甚至可以锁定文件,即使root用户也操作不了此文件。就是给文件加上了i属性,查阅命令帮助文档可以看到有i属性的文件是不能修改的,更不可被删除,即使是root用户也不可。
我也尝试了chattr命令,发现我居然连chattr都没办法运行,报错如下;
chattr: Invalid argument while reading flags on
继续搜索,终于搞明白了, chmod和lsattr对windows的ntfs分区上的文件失效,而且是十年前的讨论:
十年前的讨论
最后看了看一眼我的磁盘,唉
我的8T硬盘是NTFS分区
报应啊!
我这8个小时,浪费的···
关键是,我这个8T硬盘里面是有文件的, 也不能随随便便格式化成为Linux支持的ext分区啊,在线求帮助,有什么捷径?
常见的文件系统
没有基础背景知识也能解决问题
我发朋友圈抱怨了这个问题,因为没有计算机背景,所以解决起来非常坎坷,但是好歹算是解决了大部分了。很多人评论说就跟她现在初学R语言一样,碰到的都是稀奇古怪难以理解的报错!
那么,对计算机或者统计学背景的朋友,做生物信息学ngs数据处理,其实也是缺乏生物学背景啊,难道就没有各种磕磕碰碰吗?
- 3522: [Poi2014]Hotel
- 3299: [USACO2011 Open]Corn Maze玉米迷宫
- 2272: [Usaco2011 Feb]Cowlphabet 奶牛文字
- 1632: [Usaco2007 Feb]Lilypad Pond
- 1630/2023: [Usaco2005 Nov]Ant Counting 数蚂蚁
- Java设计模式(七)Decorate装饰器模式
- 1623: [Usaco2008 Open]Cow Cars 奶牛飞车
- 1622: [Usaco2008 Open]Word Power 名字的能量
- 3297: [USACO2011 Open]forgot
- 1740: [Usaco2005 mar]Yogurt factory 奶酪工厂
- 1741: [Usaco2005 nov]Asteroids 穿越小行星群
- 3298: [USACO 2011Open]cow checkers
- 3433: [Usaco2014 Jan]Recording the Moolympics
- 3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法