超保守原件UCEs,(ultraconserved elements ),是在进化过程中,各个物种保留的一种保守序列,因此可以通过提取该类序列,从而分析各个物种的进化情况,相较于传统的SNP进化分析,更为可靠,而phyluce是一款基于原始测序reads提取UCEs的软件,其原理是先基于spades软件进行组装,得到每个个体的基因组,然后将已知的UCEs比对到组装好的基因组上,最后根据比对结果提取得到UCEs,得到各个个体UCEs后,该软件可以批量对每一个UCE进行多序列比对,从而可以得到每个UCE对应的tree,然后可以借助其他工具得到最可靠的tree
有兴趣可以去查看UCEs的介绍,UCEs,phyluce官网
(1)conda安装phyluce,小编装的v1.7.2
wget https://raw.githubusercontent.com/faircloth-lab/phyluce/v1.7.2/distrib/phyluce-1.7.2-py36-Linux-conda.yml
conda env create -n phyluce-1.7.2 --file phyluce-1.7.2-py36-Linux-conda.yml
(2)利用原始reads进行spades组装,需要注意的是,该组装会消耗大量的内存资源,如果计算机内存不够,最好是提取部分reads进行组装
anaconda3/envs/phyluce-1.7.2/bin/phyluce_assembly_assemblo_spades --conf test.assembly.conf --output test-assamble --cores 8 --memory 200
test.assembly.conf格式如下
/PATH/test格式如下
(3)基因组比对到已知UCEs
wget https://raw.githubusercontent.com/faircloth-lab/uce-probe-sets/master/uce-5k-probe-set/uce-5k-probes.fasta
anaconda3/envs/phyluce-1.7.2/bin/phyluce_assembly_match_contigs_to_probes --contigs test-assamble/contigs.fasta --probes uce-5k-probes.fasta --output test-UCEs
(4)UCE提取与多序列比对
mkdir log
anaconda3/envs/phyluce-1.7.2/bin/phyluce_assembly_get_match_counts --locus-db test-UCEs/probe.matches.sqlite --taxon-list-config taxon-set.conf --taxon-group 'all' --incomplete-matrix --output all-taxa-incomplete.conf
anaconda3/envs/phyluce-1.7.2/bin/phyluce_assembly_get_fastas_from_match_counts --contigs test-assamble --locus-db test-UCEs/probe.matches.sqlite --match-count-output all-taxa-incomplete.conf --output all-taxa-incomplete.fasta --incomplete-matrix all-taxa-incomplete.incomplete --log-path log
anaconda3/envs/phyluce-1.7.2/bin/phyluce_assembly_get_match_counts --locus-db test-UCEs/probe.matches.sqlite --taxon-list-config taxon-set.conf --taxon-group 'all' --incomplete-matrix --output all-taxa-incomplete.conf
anaconda3/envs/phyluce-1.7.2/bin/phyluce_assembly_get_fastas_from_match_counts --contigs test-assamble --locus-db test-UCEs/probe.matches.sqlite --match-count-output all-taxa-incomplete.conf --output all-taxa-incomplete.fasta --incomplete-matrix all-taxa-incomplete.incomplete --log-path log
anaconda3/envs/phyluce-1.7.2/bin/phyluce_assembly_explode_get_fastas_file --input all-taxa-incomplete.fasta --output exploded-fastas --by-taxon
anaconda3/envs/phyluce-1.7.2/bin/phyluce_align_seqcap_align --input all-taxa-incomplete.fasta --output mafft-nexus-edge-trimmed --taxa 4 --aligner mafft --cores 12 --incomplete-matrix --log-path log
anaconda3/envs/phyluce-1.7.2/bin/phyluce_align_seqcap_align --input all-taxa-incomplete.fasta --output mafft-nexus-internal-trimmed --taxa 4 --aligner mafft --cores 12 --incomplete-matrix --output-format fasta --no-trim --log-path log
anaconda3/envs/phyluce-1.7.2/bin/phyluce_align_get_gblocks_trimmed_alignments_from_untrimmed --alignments mafft-nexus-internal-trimmed --output mafft-nexus-internal-trimmed-gblocks --cores 12 --log log
anaconda3/envs/phyluce-1.7.2/bin/phyluce_align_get_align_summary_data --alignments mafft-nexus-internal-trimmed-gblocks --cores 12 --log-path log
anaconda3/envs/phyluce-1.7.2/bin/phyluce_align_remove_locus_name_from_files --alignments mafft-nexus-internal-trimmed-gblocks --output mafft-nexus-internal-trimmed-gblocks-clean --cores 12 --log-path log
anaconda3/envs/phyluce-1.7.2/bin/phyluce_align_get_only_loci_with_min_taxa --alignments mafft-nexus-internal-trimmed-gblocks-clean --taxa 4 --percent 0.90 --output mafft-nexus-internal-trimmed-gblocks-clean-90p --cores 12 --log-path log
anaconda3/envs/phyluce-1.7.2/bin/phyluce_align_concatenate_alignments --alignments mafft-nexus-internal-trimmed-gblocks-clean-90p --output mafft-nexus-internal-trimmed-gblocks-clean-90p-raxml --phylip --log-path log
anaconda3/envs/phyluce-1.7.2/bin/phyluce_align_concatenate_alignments --alignments mafft-nexus-internal-trimmed-gblocks-clean-90p --output mafft-nexus-internal-trimmed-gblocks-clean-90p-raxml --nexus --log-path log