通过在EBI 网站上选择相关的测序数据下载信息,我们可以获得文件的md5值:
    image.png
    用tsv格式下载下来,就是这样:
    image.png
    然而,如果你直接把这个文件往md5 里面怼,它是看不懂的,不讲武德啊!

    1. $md5sum -c md5.txt
    2. md5sum: md5.txt: no properly formatted MD5 checksum lines found

    我们需要转换为md5 可以认识的格式才行~

    1. $cat md5.txt
    2. edb28880ba7056f5428eef84ec59b501 SRR12692093_1.fastq.gz
    3. 6637d5e8ff67a966d2eddc604e6e2e7e SRR12692093_2.fastq.gz
    4. 2f682ab1324cb73be60ce109d3e15cd4 SRR12692098_1.fastq.gz
    5. 3bfee3b58c8e50373747f5991fecf387 SRR12692098_2.fastq.gz
    6. 54422bb1ff8718b1f514615214f033e0 SRR12692099_1.fastq.gz
    7. 64d854f25b644abb0672540cc02fac1a SRR12692099_2.fastq.gz

    可以看到,一共有三个部分,第一个是md5值,中间分隔是两个空格符号,再是文件名。

    这里我写了个小脚本:

    1. $ bash ena2md5.sh atac_md5.txt
    2. edb28880ba7056f5428eef84ec59b501 SRR12692093_1.fastq.gz
    3. 6637d5e8ff67a966d2eddc604e6e2e7e SRR12692093_2.fastq.gz
    4. 2f682ab1324cb73be60ce109d3e15cd4 SRR12692098_1.fastq.gz
    5. 3bfee3b58c8e50373747f5991fecf387 SRR12692098_2.fastq.gz
    6. 54422bb1ff8718b1f514615214f033e0 SRR12692099_1.fastq.gz
    7. 64d854f25b644abb0672540cc02fac1a SRR12692099_2.fastq.gz

    代码如下:

    1. $ cat ena2md5.sh
    2. paste <(cat $1 | sed '1d' | \
    3. cut -f2 | awk -F ';' '{print$1,$2}' | \
    4. tr ' ' '\n') <(cat $1 | sed '1d' | \
    5. cut -f1 | while read id; do echo ${id}_1.fastq.gz; echo ${id}_2.fastq.gz; done) | \
    6. awk -F '\t' '{print$1,$2}' | sed 's/[ ]/ /'

    这里还有一个问题,我们从ebi 上下载的内容有时候不是来源于同一个项目的,或者是多次下载不同的SRR 数据的,因此我们有时候需要将它们的md5 数据进行合并,再进行检验,这里还是有一个脚本:
    需要注意在下载的文件目录下操作。

    1. $ cat merge_md5.sh
    2. if [ -f ./new_md5.txt ]
    3. then rm ./new_md5.txt
    4. fi
    5. ls filereport_read_run_ERR* | \
    6. while read id ; do cat $id | sed '1d' ; done >> ./new_md5.txt

    ps:不知道ebi 有没有sra 类似的“购物车”功能,如果有,那就不需要我这个合并脚本了,甚至更加方便~