1、bioinformatic data skills 学习专题5 bioinformatics dBioinformatic Data Skills 学习专题(5) Bioinformatics D. Chapter 6 Bioinformatics DataIntro我们无时无刻不在和这些数据打交道,有空倒也不妨问问自己,如何获取、存储、备份和分享这些数据呢?Vince Buffalo在这章就数据的获得和存储备份做了一些具体介绍和实战经验(鉴于英文描述地更准确,主题名就不翻译了):Retrieving Bioinformatics DataData IntegrityCompressing D
2、ata and Working with Compressed DataRetrieving Bioinformatics Data除了分析自己的数据,我们也可以从GEO、ENCODE这些公共数据库下载需要的数据。这种数据的连接一般都以ftp(File Transfer Protocal)或者http(Hyper Text Transfer Protocal )开头,这两种都属与应用层数据传输协议。下载数据:wget/curl我们可以使用wget或者curl快速文档或者数据,他们两者各有长处。wget 非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,w
3、get会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。相比wget,curl可以接受更多传输协议。wget会在指定网页下爬取各种数据,而curl可以下载多个网页的文件,但是不能断点续传。在python和R中也有相应的包用于网络爬虫。wget的一些方便用法e.g.1:使用wget下载单个文件说明:以上例子从网络下载一个文件并保存在当前目录,在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。$wget -O下载并以不同的文件名保存$wget -
4、O wordpress.zip limit -rate限速下载当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。$wget -limit-rate=300k -c断点续传$wget -c -c重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。e.g.5:使用wget -b后台下载$wget -b in background, pid 1840.Output will be written to wget-log.
5、#对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载。#可以使用以下命令来察看下载进度:$tail -f wget-loge.g.6:伪装代理名称下载wget -user-agent=Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16 -i下载多个文件#首先,保存一份下载链接文件,接着使用这个文件和参数-i下载:$cat filelist.txturl1url2url3url4$wget -i f
6、ilelist.txte.g.8:使用wget mirror镜像网站$wget -mirror -p -convert-links -P ./LOCAL URL下载整个网站到本地-miror:开户镜像下载-p:下载所有为了html页面显示正常的文件-convert-links:下载后,转换成本地的链接-P ./LOCAL:保存所有文件和目录到本地指定目录e.g.9: 使用wget -r -A下载指定格式文件可以在以下情况使用该功能:下载一个网站的所有图片下载一个网站的所有视频下载一个网站的所有PDF文件$wget -r -A.pdf urle.g.10:使用wget FTP下载可以使用wget
7、来完成ftp链接的下载使用wget匿名ftp下载:wget ftp-url使用wget用户名和密码认证的ftp下载:wget ftp-user=USERNAMEftp-password=PASSWORD url$wget ftp-url$wget -ftp-user=USERNAME -ftp-password=PASSWORD url数据传输 rsync 和 scprsync是可以实现增量备份的工具,配合任务计划,rsync能实现定时或间隔同步。rsync可以实现scp的远程拷贝(rsync不支持远程到远程的拷贝,但scp支持)、cp的本地拷贝、rm删除和ls -l显示文件列表等功能。我们可
8、以利用这个功能在服务器和本地PC间进行文件传输。scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。#从本地服务器复制到远程服务器复制文件:$scp local_file remote_usernameremote_ip:remote_folder$scp local_file remote_usernameremote_ip:remote_file$scp local_file remote
9、_ip:remote_folder$scp local_file remote_ip:remote_file#指定了用户名,命令执行后需要输入用户密码;如果不指定用户名,命令执行后需要输入用户名和密码。#复制目录:$scp -r local_folder remote_usernameremote_ip:remote_folder$scp -r local_folder remote_ip:remote_folderData Integrity在网络传输、设备之间转存、复制大文件等时,可能会出现传输前后数据不一致的情况,特别是在网络这种相对更不稳定的环境中更容易出现。因此校验文件的完整性必不可
10、少。1. SHASHA值就像人的指纹,是文件的数字指纹,是唯一的,一个文件对应一个唯一的SHA1值,一般用来确认你的文件和官方发布的是否一致.如果官方原版文件被别人做过手脚,那么算出来的SHA1值就会不同.所以SHA1值是用来“验明正身”的。有些居心叵测的人在官方系统光盘里面加入木马程序、广告程序等,然后再放出来给人下载,如果你不检查SHA1值就贸然安装就中招了,可以在网上下载一个数字指纹检验器来计算你下载回来的文件的SHA1值,然后到微软的MSDN去查看官方发布的SHA1值,如果两者相等,说明你下载的文件是和官方提供的是一样的,你可以放心的安装了。这就是SHA1值的用处,其他地方不用SHA1
11、值的。确认数据完整后,我们可以储存sha信息:$ shasum data/*fastq fastq_checksums.sha$ cat fastq_checksums.sha524d9a057c51b1.d8b1cbe2eaf92c96a9 data/Csyrichta_TAGGACT_L008_R1_001.fastqd2940f444f00c7.4f9c9314ab7e1a1b16 data/Csyrichta_TAGGACT_L008_R1_002.fastq623a4ca571d572.1ec51b9ecd53d3aef6 data/Csyrichta_TAGGACT_L008_R1
12、_003.fastqf0b3a4302daf7a.7bf1628dfcb07535bb data/Csyrichta_TAGGACT_L008_R1_004.fastq53e2410863c36a.4c4c219966dd9a2fe5 data/Csyrichta_TAGGACT_L008_R1_005.fastqe4d0ccf541e90c.5db75a3bef8c88ede7 data/Csyrichta_TAGGACT_L008_R1_006.fastq再用 shasum-c进行检验,会提示哪些文件不对:$ shasum -c fastq_checksums.shadata/Csyric
13、hta_TAGGACT_L008_R1_001.fastq: OKdata/Csyrichta_TAGGACT_L008_R1_002.fastq: OKdata/Csyrichta_TAGGACT_L008_R1_003.fastq: OKdata/Csyrichta_TAGGACT_L008_R1_004.fastq: OKdata/Csyrichta_TAGGACT_L008_R1_005.fastq: OKdata/Csyrichta_TAGGACT_L008_R1_006.fastq: FAILEDshasum: WARNING: 1 computed checksum did NO
14、T match2. MD5一个 MD5 校验和(checksum)通过对接收的传输数据执行散列运算来检查数据的正确性。计算出的散列值拿来和随数据传输的散列值比较。如果两个值相同,说明传输的数据完整无误、没有被窜改过(前提是散列值没有被窜改),从而可以放心使用。MD5校验可以应用在多个领域,比如说机密资料的检验,下载文件的检验,明文密码的加密等。echo -n hello | md5sum | cut -d -f1 #字符串”hello”的MD5:5d41402abc4b2a76b9719d911017c592md5sum -c md5sums-4.8.6 # 在当前目录执行检验Compress
15、ing Data and Working with Compressed Data空间有限,数据也需要压缩。文中给出一个具体的例子:Illumina Hiseq能够产出21,408,674,240 bytes的数据,大约 20G,而这些数据不经过压缩则有大约58G。假如这些fastq文件一共有150Million,200bp长,对人基因组而言就是10x coverage,压缩率达到66%。测序技术越发普及,我们需要的数据量也会变大,适当压缩数据十分有利于减少项目的臃肿:只保留压缩文件,及时删除中间文件;善用如cat, grep,less之“流”,生活更美好。gzip是个使用广泛的压缩程序,文件
16、经它压缩过后,其名称后面会多出.gz的扩展名。e.g.1ls /显示当前目录文件a.c b.h d.cppgzip * /压缩目录下的所有文件ls /显示当前目录文件a.c.gz b.h.gz d.cpp.gze.g.2 列出详细的信息gzip -dv * /解压文件,并列出详细信息a.c.gz: 0.0% - replaced with a.cb.h.gz: 0.0% - replaced with b.hd.cpp.gz: 0.0% - replaced with d.cpprootw3cschool.cc a# e.g.3 显示压缩文件的信息gzip -l *compressed unc
17、ompressed ratio uncompressed_name24 0 0.0% a.c24 0 0.0% b.h26 0 0.0% d.cppzgrep, zcat, zless都可以用来看gzip压缩的文件:zgrep -color -i -n AGATAGAT Csyrichta_TAGGACT_L008_R1_001.fastq.gz2706: ACTTCGGAGAGCCCATATATACACACTAAGATAGATAGCGTTAGCTAATGTAGATAGATT融合以上操作的实战从buffalo的网站上扒下来的:用wget下载fa/gtf文件:$ wget ftp:/ftp.en
18、sembl.org/pub/release-74/fasta/mus_musculus/dna/Mus_musculus.GRCm38.74.dna.toplevel.fa.gz$ wget ftp:/ftp.ensembl.org/pub/release-74/gtf/mus_musculus/Mus_musculus.GRCm38.74.gtf.gz瞅瞅压缩的fa文件吧:zgrep Mus_musculus.GRCm38.74.dna.toplevel.fa.gz | lesschecksum和sha-1 sumsum Mus_musculus.GRCm38.74.dna.toplevel
19、.fa.gz53504 793314sum Mus_musculus.GRCm38.74.gtf.gz00985 15074shasum Mus_musculus.GRCm38.74.dna.toplevel.fa.gz01c868e22a981.c2154c20ae7899c5f Mus_musculus.GRCm38.74.dna.toplevel.fa.gz shasum cf5bb5f8bda2803410bb04b708bff59cb575e379 Mus_musculus.GRCm38.74.gtf.gz用wget下载CHECKSUMS文件:$ wget ftp:/ftp.ense
20、mbl.org/pub/release-74/gtf/mus_musculus/CHECKSUMS最后作者又再次强调了工作记录的重要性,以下是他的readme.md模板:# Genome and Annotation DataMouse (*Mus musculus*) reference genome version GRCm38 (Ensemblrelease 74) was downloaded on Sat Feb 22 21:24:42 PST 2014, using: wget ftp:/ftp.ensembl.org/pub/release-74/fasta/mus_muscul
21、us/dna/Mus_musculus.GRCm38.74.dna.toplevel.fa.gzGene annotation data (also Ensembl release 74) was downloaded from Ensembl onSat Feb 22 23:30:27 PST 2014, using: wget ftp:/ftp.ensembl.org/pub/release-74/gtf/mus_musculus/Mus_musculus.GRCm38.74.gtf.gz# SHA-1 Sums + Mus_musculus.GRCm38.74.dna.toplevel.
22、fa.gz: 01c868e22a9815c0c8ac247c2154c20ae7899c5f + Mus_musculus.GRCm38.74.gtf.gz: cf5bb5f8bda2803410bb04b708bff59cb575e379Although this isnt a lot of documentation, this is infinitely better than not document ing how data was acquired. As this example demonstrates, it takes very little effort to prop
23、erly track the data that enters your project, and thereby ensure reproducibility. The most important step in documenting your work is that youre consistent and make it a habit.说的在理,继续磨练。下期:work with range data (chapter 9)Here is a problem related to yours and solved before. Could you use it? Could you use its result? Could you use its method? How to Solve It George Plya (1945) 参考http:/linuxtools-rst.readthedocs.io/zh_CN/latest/tool/wget.html
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1