您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > FASTA序列文件处理一网打尽
FASTA序列文件处理一网打尽推荐两个地方:地方一都是小脚本,但实用,大伙也可以自己练习写。地方二成熟软件SeqKit,也很实用。一、小脚本大家可以在这里下载以下脚本:各脚本作用信息如下:|--append_to_fasta_header.py每个序列ID添加后缀|--check_for_embedded_fasta_headers.py检查此种错误类型fasta序列gi1006569DnaA[Vibrioharveyi]MSSSLWLQCLQQLQEELPATEFSMWVRPLQAEVLHACgi409247DNArepairproteinMVSLTFKNFKKEKVPLDLEPSNTILETKTKLAQSISCEESQIKLIYSGKVLQDSKTVSECGLKDGDQVVF|--compare_two_fastas.pl比较两个文件相同序列与不同序列数目|--convert_fasta_contigs_to_gff3.py将contig序列转换为GFF格式|--convert_fastq_to_fasta.py将FASTQ转换为FASTA|--create_fasta_pseudomolecules.pl从遗传图或者Hi-C确定的map信息文件中获得假染色体序列(将contig连成染色体序列)|--extract_fasta_regions.py提取特定区域的序列|--fasta_base_content.py碱基含量统计|--fasta_size_distribution.plGC含量和长度分布统计|--fasta_size_distribution_plot.py序列长度分布作图|--fasta_size_report.pl序列长度信息统计|--filter_fasta_by_header_regex.py使用正则表达式获取FASTA序列|--filter_fasta_by_ids.pl根据ID提取序列|--filter_fasta_by_size.pl根据长度过滤序列|--merge_fasta_files_and_uniquify_ids.py你有多个序列ID相同的文件,想合并一起,保证序列ID唯一性CL1Contig1CL1Contig2|--merge_masked_fasta_files.py将不同软件冰壁重复序列结果合并|--prepend_to_fasta_header.py你有多个序列ID相同的文件,想合并一起,在序列前面添加前缀,保证序列ID唯一性|--reformat_fasta_residue_lengths.py按照一行固定字符数目重新显示FASTA序列|--remove_duplicate_sequences.py移除掉重复的序列|--remove_empty_sequences.pl移除掉文件中空的序列|--reorient_fasta.pl从某一位置截取序列到另一个文件中|--reorient_sequences_by_id.py将指定序列反向或者反向互补|--split_fasta_into_even_files.py分割成指定数目的文件|--split_interleaved_sequence_file.py将FASTQ/FASTA序列中成对的分成R1,R2两个文件,单独非成对的生成一个文件|--subsample_fasta.py随机抽取指定数目的FASTA序列|--validate_fasta.py主要检查以下内容:-ERROR:Entrywith0-lengthsequence-ERROR:Nosymbolsembeddedinsequenceresidues(suggestsmergedrecords)-ERROR:Nonzero-lengthidentifieraftersymboluntilfirstwhitespace-ERROR:Multiplerecordswithinanindividualfilewithsameidentifier-ERROR:Incorrectrecordcount(if--expected_record_countispassed)-ERROR:Makesurethefileendswithablankline(elsecommonlyusedtoolslikecatwillcauseerrors)-WARNING:Residuelines60bp-WARNING:Commentlineswith#(mostparserswillfailtohandlethis)-WARNING:Homopolymersoflength--homopolymer_limitwhicharenotNs-WARNING:Internalstops(*)detectedinproteinFASTA(if--check_internal_stopsispassed)`--write_fasta_from_gff.pl从GFF提取CDS和蛋白序列二、SeqKit处理FASTA和FASTQ的神器,window\linux系统版本都有.对于没有编程基础的小伙伴们,我们照样可以轻松操作序列文件。该软件功能强大,小编只罗列部分模块功能,更详细功能参见软件网站:。一、序列操作。seqkitseq[flags]file参数:-p,--complement取互补序列--dna2rnaDNAtoRNA-l,--lower-case将序列以小写字母形式输出-g,--remove-gaps移除组装序列中的gap-r,--reverse取反向序列--rna2dnaRNAtoDNA-u,--upper-case将序列以大写字母形式输出-w,--line-widthint以每行指定长度输出序列(0fornowrap)(default60)举例:seqkitseqtest.fa-w0#将此文件fasta序列转换成一行输出seqkitseq-w100test.fa#将此文件fasta序列转换成100个碱基一行输出seqkitseq--dna2rnatest.fa#将此文件fasta序列dna转换成rnaseqkitseq-w100-p-rtest.fa#将此文件fasta序列反向互补输出,每行100碱基二、Fasta/q之间及与tab格式互换1、FASTQ转换成FASTA:seqkitfq2fa举例:seqkitfq2fareads_1.fq-oreads_1.fa2、FASTA/FASTQ转换成tab格式。seqkitfx2tab举例:seqkitfx2tabtest.fatest.fa.tab.faseqkitfx2tabtest.fqtest.fq.tab.fqtab格式:IDsequence三、序列信息统计1、序列碱基含量及序列长度信息统计seqkitfx2tab[flags]参数:-B,--base-contentvalue要输出的碱基含量e.g.-BAT-BN-g,--gcprintGCcontent-l,--lengthprintsequencelength-n,--nameonlyprintnames-i,--only-idprintIDinsteadoffullhead举例:seqkitfx2tab-l-g-n-i-Htest.fa输出结果:#nameseqquallengthGCgene13040.002、序列长度分布统计Usage:seqkitstat[flags]举例:seqkitstattest.fa输出结果fileformattypenum_seqssum_lenmin_lenavg_lenmax_lentest.faFASTADNA130303030四、根据ID或特定的motif筛选提取序列seqkitgrep[flags]参数:-n,--by-name匹配整个序列的名字,包含description部分,而不是序列id。-s,--by-seq匹配序列-d,--degeneratepattern/motif包含简并碱基-i,--ignore-case忽略大小写-v,--invert-match输出不匹配此模式的内容-p,匹配模式,支持连续写多个模式,匹配任一模式即输出。如-p^ATG-pTAA$。注意该功能仅能正向匹配,不能实现对互补链匹配。-f,--pattern-filestring支持匹配模式写到一个文件中,如要提取的序列ID。-R,--regionstring匹配位置选择。e.g1:12forfirst12bases,-12:-1forlast12bases-r,--use-regexp使用正则表达式,必须加入此参数,如^匹配首端。同-p联合使用。示例:seqkitgrep-s-r-i-p^atgcds.fa#选取有起始密码子的序列seqkitgrep-flisttest.fanew.fa#根据ID提取序列seqkitgrep-s-d-i-pTTSAA#简并碱基使用。S代表CorG.seqkitgrep-s-R1:30-i-r-pGCTGG##匹配限定到某区域五、motif定位对grep的拓展,可以正反链同时匹配,输出匹配的位置。seqkitlocate[flags]参数-d,--degeneratepattern/motifcontainsdegeneratebase-i,--ignore-caseignorecase-P,--only-positive-strandonlysearchatpositivestrand-p,--patternvaluesearchpattern/motif-f,--pattern-filestringpattern/motiffile(FASTAformat)举例seqkitlocate-i-d-pAUGGACUNtest.fa输出结果seqIDpatternNamepatternstrandstartendmatchedcel-mir-58aAUGGACUNAUGGACUN+8188AUGGACUGath-MIR163AUGGACUNAUGGACUN-122129AUGGACUC六、多个序列文件比较寻找相同的序列或者ID相同的序列seqkitcommon[flags]参数:-n,--by-name匹配整个序列的名字,包含description部分,而不是序列id-s,--by-seqmatchbysequence-i,--ignore-caseignorecase-m,--md5useMD5reducememoryusage举例:1、ByID(default,后面,空格之前的名字)输出ID名字相同的。seqkitcommontest1.fatest2.fa-ocommon.fasta2、Byfullname(整个序列的名字,包含description部分)。输出序列名字相同的。seqkitcommontest1.fatest2.fa-n-ocommon.fasta3、输出要比较的文件中序列相同的序列seqkitcommontest1.fatest2.fa-s-i-ocommon.fasta4、输出要比较的文件中序列相同的序列(forlargesequences)seqkitcommontest1.fatest2.fa-s-i-ocommon.fasta--md5七、提取部分序列如随机抽取10000条FASTQ序列做NT污染评估。同时他也可以对FASTA序列提取seqkitsample[flags]参数:-n,--numberintsamplebynumber(resultmaynotexactlymatch)-p,--proportionfloatsamplebyproportion-s,--rand-se
本文标题:FASTA序列文件处理一网打尽
链接地址:https://www.777doc.com/doc-4086891 .html