JGI 数据命令行下载

JGI 提供了三种数据下载方式:

  1. 网页直接下载;
  2. 通过 Globus 下载;
  3. 通过 API 命令行下载;

命令行下载方法:
第一步:生成cookies文件,该文件中保存着用户名和密码

curl 'https://signon.jgi.doe.gov/signon/create' --data-urlencode 'login=USER_NAME' --data-urlencode 'password=USER_PASSWORD' -c cookies
# USER_NAME 和 USER_PASSWORD 换成登陆用户名和密码

第二步:获取下载地址
Genome Portal 中搜索样品名,进入下载界面如下。点击 “Open Downloads as XML” 后得到 XML文件。

在XML文件中提取下载地址(url=”下载地址”)
如:

/ext-api/downloads/get_tape_file?blocking=true&url=/MetspLW13_2/download/_JAMO/531a42f549607a1be0056c4f/submission.assembly.fasta

第三步:下载文件

curl 'https://genome.jgi.doe.gov/ext-api/downloads/get_tape_file?blocking=true&url=/MetspLW13_2/download/_JAMO/531a42f549607a1be0056c4f/submission.assembly.fasta' -b cookies > 168131.assembled.KO

 

根据Barcode序列拆分fastq文件

扩增子测序不同于其他高通量测序项目,扩增子测序往往样品量较大,但单个样品的数据量要求不高(因为仅仅研究扩增区域的序列)。为了节约成本,研究者们通常会把多个样品混在一个文库,并给不同样品加上一段 Barcode 序列。在后续的生物信息分析中,根据 Barcode 序列即可将不同样品的序列拆分开来。接下来介绍两个序列拆分工具
seqtk_demultiplex 和 fastq-multx。

seqtk_demultiplex

seqtk_demultiplex 安装

wget https://github.com/jameslz/fastx-utils/raw/master/seqtk_demultiplex

# seqtk_demultiplex 要求GLIBC_2.14版本
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
mv glibc-2.14.tar.gz /opt/sysoft
cd /opt/sysoft
tar zxvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/sysoft/glibc-2.14
make -j4
make install
cp /opt/sysoftglibc-2.14/lib/libc-2.14.so /lib64/
cd /lib64
mv libc.so.6 libc.so.6.back
# 报错不用管 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/sbin/sln libc-2.14.so /lib64/libc.so.6

#查看支持版本
strings /lib64/libc.so.6 |grep GLIBC
# en_US.UTF-8报错
echo "LANG=en_US.utf-8\nLC_ALL=en_US.utf-8" > /etc/environment
source /etc/environment
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8

seqtk_demultiplex 参数

-1, 测序正向fastq序列,fastq文件,支持gz压缩文件
-2, 测序反向fastq序列,支持gz压缩文件
-b, barcode的文件
-d, 输入文件目录;
-l, barcode 序列长度(如长度大小不一致,填写最短的序列长度),默认5;

barcode 文件格式 (制表符分隔:共三列,第一列为样本名,第二列为正向barcode,第三列为反向barcode)

itaq1	ATCACG	TCTAAT
itaq2	CGATGT	TCTAAT
itaq3	TTAGGC	TCTAAT
itaq4	TGACCA	TCTAAT
itaq5	ACAGTG	TCTAAT
itaq6	GCCAAT	TCTAAT
itaq7	CAGATC	TCTAAT

seqtk_demultiplex 使用

./seqtk_demultiplex -b barcode.txt -1 itaq.1.fastq -2 itaq.2.fastq -l 6 -d seqtk_output

# 因为桥式PCR测序过程中双端序列方向不一定一致,因此需要颠倒两测序文件进行二次拆分,具体参见fastq_multx操作

fastq-multx

seqtk_demultiplex 在拆分数据时无法设置 barcode 允许的错配碱基数,fastq-multx 中可以设置其参数。

fastq-multx 安装

git clone https://github.com/brwnj/fastq-multx
cd fastq-multx
make

fastq-multx 参数

-o, 输出文件,一个输入文件一个输出文件流,格式: %.R1.fq.gz, %为barcode对应的样本名
-m, barcod允许的主要错配个数,一般设置为0, 默认1
-B, barcode文件,允许单端和双端barcode
-n, 打印barcode序列
-b, 从序列的5'端碱基开始匹配barcode
-e, 从序列3'端开始匹配序列
-q, 控制barcode碱基的最小phred quality值,默认为0,不控制
-d, 控制匹配的最佳barcode位置和此佳barcode位置的位置,两个匹配距离不能超过2个碱基

barcode 文件格式 (制表符分隔:单端 barcode 只需要提供两列数据,双端 barcode 需要中间加上 ‘-”)

itaq1	ATCACG-TCTAAT
itaq2	CGATGT-TCTAAT
itaq3	TTAGGC-TCTAAT
itaq4	TGACCA-TCTAAT
itaq5	ACAGTG-TCTAAT
itaq6	GCCAAT-TCTAAT
itaq7	CAGATC-TCTAAT

fastq-multx 使用

mkdir fastq_multx_output-1
./fastq-multx/fastq-multx -B barcode.txt -m 1 -b itaq.1.fastq itaq.2.fastq -o %.R1.fastq -o %.R2.fastq

# 因为桥式PCR测序过程中双端序列方向不一定一致,因此需要颠倒两测序文件进行二次拆分
mkdir fastq_multx_output-2
./fastq-multx/fastq-multx -B barcode.txt -m 1 -b itaq.2.fastq itaq.1.fastq -o %.R1.fastq -o %.R2.fastq

# 合并两次拆分的结果
mkdir fastq_multx_output
for i in `ls fastq_multx_output-1/itaq*.R1.fastq`; do a=${i/.R1.fastq/}; a=${a/fastq_multx_output-1\//}; echo "$a"; done > sample.list
for i in `cat sample.list`; do echo "cat fastq_multx_output-1/$i.R1.fastq fastq_multx_output-2/$i.R2.fastq > ./fastq_multx_output/$i.R1.fastq"; done > command.combine.R1.list
for i in `cat sample.list`; do echo "cat fastq_multx_output-1/$i.R2.fastq fastq_multx_output-2/$i.R1.fastq > ./fastq_multx_output/$i.R2.fastq"; done > command.combine.R2.list
sh command.combine.R1.list
sh command.combine.R2.list

fastq-multx 操作方便,但是反向序列的barcode没有被切除,需要后续进一步处理。