学完了生信技能树的马拉松授课,算是掌握了跟人工智能对话的基础,比如前些日子看到的练习题:PDX小鼠模型的单细胞样品定量能选择人类参考基因组吗,是需要下载这个CRA010501数据集里面的单细胞转录组样品的fq文件,然后走cellranger定量流程,选择人类以及小鼠参考基因组,各自走一遍定量流程,然后两个表达量矩阵分开做一下降维聚类分群哈, 看看背后是否有一些被忽略的生物学现象。
需要使用的数据库文件批量下载脚本是 :
for i in {34..39};do ( axel -n 20 https://download.cncb.ac.cn/gsa2/CRA010501/CRR7274${i}/CRR7274${i}_f1.fq.gz );done
for i in {34..39};do ( axel -n 20 https://download.cncb.ac.cn/gsa2/CRA010501/CRR7274${i}/CRR7274${i}_r2.fq.gz );done
如果网络好基本上也就是等一个晚上就下载完毕,但是大部分情况下,这个下载会中断!
这段Shell脚本代码是一个简单的循环,用于在指定的数字范围内(34到39)执行一个下载命令。下面是对代码的逐行解析:
for i in {34..39}; do
for i in {34..39}:这是一个for循环,i是循环变量,{34..39}是一个序列表达式,表示从34开始到39结束的整数序列。每次循环,i依次取34, 35, 36, 37, 38, 39这些值。( axel -n 20 https://download.cncb.ac.cn/gsa2/CRA010501/CRR7274${i}/CRR7274${i}_f1.fq.gz )
axel:这是一个下载工具,用于下载网络文件。它类似于wget,但通常提供更快的下载速度。-n 20:axel的选项,表示同时进行20个下载线程。done
done:表示for循环的结束。整个脚本的作用是使用axel工具并发下载序列34到39对应的.fq.gz文件。这些文件名遵循模式CRR7274XX_f1.fq.gz,其中XX是循环变量i的值。
需要注意的是,这个脚本中的URL是硬编码的,假设文件结构和URL模式是匹配的。如果URL模式与实际文件结构不匹配,脚本将无法正确下载文件。此外,脚本没有错误处理机制,例如处理下载失败的情况。在实际使用中,可能需要添加适当的错误检查和日志记录。
因为理论上这个代码应该是下载6个文件,但是经常运行卡死,然后就成功了3个文件,需要改进!!!
如果脚本在下载过程中卡死,但最终只成功下载了3个文件,可能是由于几个原因造成的,例如网络问题、服务器限制、本地磁盘写入问题或者axel命令的稳定性等。以下是一些建议来改进脚本:
set -e来使脚本在遇到错误时立即退出,这样可以更快地发现问题所在。curl或wget的重试选项。-n参数指定的线程数。axel -a -n 20 URL,其中-a选项会在下载失败时重试。axel不稳定,可以尝试使用其他下载工具,比如wget或curl。axel的--progress选项来监控下载进度。screen或tmux等工具来运行脚本,这样即使终端会话断开,下载进程也不会终止。下面是添加了一些改进的脚本示例:
#!/bin/bash
set -e # 遇到错误立即退出
for i in {34..39}; do
echo "开始下载文件:CRR7274${i}_f1.fq.gz"
axel -q -a -n 20 https://download.cncb.ac.cn/gsa2/CRA010501/CRR7274${i}/CRR7274${i}_f1.fq.gz || true # 重试逻辑,失败不退出
if [ $? -eq 0 ]; then
echo "下载成功:CRR7274${i}_f1.fq.gz"
else
echo "下载失败:CRR7274${i}_f1.fq.gz"
fi
sleep 1 # 增加延时
done
这个脚本在每次下载尝试失败后不会退出,而是继续尝试下载下一个文件,并且在每次下载尝试之间增加了一秒的延时。同时,脚本会在控制台输出每次下载的开始和结束状态。
值得注意的是人工智能说其中-a选项会在下载失败时重试,但似乎这个知识点有问题!而且很明显上面的代码虽然说最后都会给出来很好的日志信息,但是并不能成功下载:
cat nohup.out
开始下载文件:CRR727434_f1.fq.gz
SSL error: (null)
下载成功:CRR727434_f1.fq.gz
开始下载文件:CRR727435_f1.fq.gz
SSL error: (null)
下载成功:CRR727435_f1.fq.gz
开始下载文件:CRR727436_f1.fq.gz
下载成功:CRR727436_f1.fq.gz
开始下载文件:CRR727437_f1.fq.gz
SSL error: (null)
下载成功:CRR727437_f1.fq.gz
开始下载文件:CRR727438_f1.fq.gz
SSL error: (null)
下载成功:CRR727438_f1.fq.gz
开始下载文件:CRR727439_f1.fq.gz
下载成功:CRR727439_f1.fq.gz
download.cncb.ac.cn 是中国科学院北京基因组研究所(China National Center for Biotechnological Information, CNCB)提供的数据库下载站点。这个数据库主要提供与基因组学相关的数据下载服务,包括但不限于以下几类:
关于ID系列的规则,不同的数据库可能有不同的命名规则,但通常这些ID遵循一定的命名约定,以确保它们是唯一的并能够提供关于数据的有用信息。例如:
CRA010501或CRR7274,可能代表一个特定的研究项目或样本。f1.fq.gz可能表示FASTQ格式的第一条序列。.gz表示GZIP压缩文件,.fq或.fastq表示FASTQ文件。1、2等。如果需要了解特定数据库的ID规则,通常可以查看数据库的用户指南或FAQ部分,或者直接联系数据库的管理员获取更详细的信息。由于数据库的具体规则可能随时更新,获取最新的信息总是一个好主意。对于download.cncb.ac.cn数据库,如果需要更具体的信息,建议访问其官方网站或联系他们的技术支持获取帮助。
其实是需要看官网了,因为人工智能并没有太多关于这个中国科学院北京基因组研究所(China National Center for Biotechnological Information, CNCB)提供的数据库下载站点的信息,所以它也很陌生,我是自己去看官网才发现:
提示:HTTP下载速度有限,推荐使用Egde Turbo或FTP客户端(比如 FileZilla Client)下载数据。EgdeTurbo支持Linux命令行、Windows/Mac平台的Chrome、Edge和Firefox浏览器。就需要自己下载edgeturbo这个二进制软件,然后使用它的download 命令即可,在linux终端上输入以下命令进行下载软件:
mkdir -p ~/biosoft/
cd ~/biosoft/
wget https://ngdc.cncb.ac.cn/ettrans/download/edgeturbo-client.linux.latest.cncb.tar.gz
然后解压即可使用啦
tar -zxvf edgeturbo-client.linux.latest.cncb.tar.gz
~/biosoft/edgeturbo-client/edgeturbo --help
比如我们上面练习题:PDX小鼠模型的单细胞样品定量能选择人类参考基因组吗,是需要下载这个CRA010501数据集里面的单细胞转录组样品的fq文件,只需要一行代码即可,非常方便!
~/biosoft/edgeturbo-client/edgeturbo dl /gsa2/CRA010501/
基本上两三个小时就下载完毕了;
├── [4.0K] CRR727434
│ ├── [10.0G] CRR727434_f1.fq.gz
│ ├── [ 11G] CRR727434_r2.fq.gz
│ └── [1.1K] CRR727434_sta.xml
├── [4.0K] CRR727435
│ ├── [ 12G] CRR727435_f1.fq.gz
│ ├── [ 13G] CRR727435_r2.fq.gz
│ └── [1.1K] CRR727435_sta.xml
├── [4.0K] CRR727436
│ ├── [ 17G] CRR727436_f1.fq.gz
│ ├── [ 18G] CRR727436_r2.fq.gz
│ └── [1.1K] CRR727436_sta.xml
├── [4.0K] CRR727437
│ ├── [ 14G] CRR727437_f1.fq.gz
│ ├── [ 14G] CRR727437_r2.fq.gz
│ └── [1.1K] CRR727437_sta.xml
├── [4.0K] CRR727438
│ ├── [ 12G] CRR727438_f1.fq.gz
│ ├── [ 13G] CRR727438_r2.fq.gz
│ └── [1.1K] CRR727438_sta.xml
├── [4.0K] CRR727439
│ ├── [ 12G] CRR727439_f1.fq.gz
│ ├── [ 13G] CRR727439_r2.fq.gz
│ └── [1.1K] CRR727439_sta.xml
└── [ 876] md5sum.txt
6 directories, 19 files
而且很容易检测 md5sum.txt,说明下载的文件是完整的。接下来就完完全全参考 小鼠的5个样品的10x技术单细胞转录组上游定量(文末赠送全套代码),走cellranger流程即可。而且大家在完成作业的时候可以根据留言选择
