Package: randmag
Eric Hugoson (eric@hugoson.org/hugoson@evolbio.mpg.de/ @EricHugo)IntroductionWith an ever increasing rate of sequencing comes challenges in analysing the data.
In particular, single-amplified genomes and metagenome assembled genomes (SAGs & MAGs) may
prove challenging due to their propensity to be incomplete or contaminated
with contigs from other genomes. Many tools exist to tackle the challenges at
various stages of the analysis, but none are perfect. In order to devise new
tools methods for dealing with SAGs and MAGs the ability to simulate such data
sets is paramount.randMAG is a slim software aimed at producing artificial MAGs or SAGs from existent
complete genomes. randMAG produces randomised MAGs based on whole genomes provided, a
distribution of contig lengths given, as well as desired completeness- and
contamination levels.Packaged with randMAG is a file containing the lengths of 192243 contigs of 2284
bacterial MAGs [1] from the Tara Oceans metagenomic survey.[TullyEtAl_2018]DependenciesPython (>=3.6)Python librariesIf built from the PyPI package these will be installed automatically, otherwise can
easily be installed usingpip(Install pip).RequiredBiopython (>= 1.70)Numpy (>= 1.13.1)Matplotlib (>= 2.0.2)SciPy (>= 1.1.0)seaborn (>= 0.9.0)pandas (>= 0.23.4)Positional argumentsgenome_tab            Genomes in .fna in list format
distribution          Set of lengths to base the distribution ongenome_tabshould be a simple file with a list of genomes (nucleotide fasta files)
that will be used to built the artificial MAGs, e.g.:GCF_000007265.1_ASM726v1_genomic.fna
GCF_000007325.1_ASM732v1_genomic.fna
...distributionshould also be a simple file containing a list of integers representing
a distribution of contig sizes by which the artificial contigs will be split, e.g.:23967
15981
149609
...Optionally,distributioncan be filled withTara_bactto use the set of contig
lengths from Tara Oceans described in the introduction.Optional arguments-h,--helpshow this help message and exit-cCOMPLETENESS,--completenessCOMPLETENESSRange of completeness levels to be produced.
Default=1.0-rCONTAMINATION,--contaminationCONTAMINATIONRange of contamination to be included in produced
MAGs. Default=1.0-nNUM,--numNUMNumber of randomised MAGs to produce. Produces one
randomised per provided genome by default.ExamplesInitially, create a file with a list of the genomic fasta files which are to be the basis for the artificial MAGs:$ head -n5 reference_fna.list
/nobackup/genomic_sources/genbank_reference_bacteria_fna_20181128/ncbi-genomes-2018-11-28/GCF_000005845.2_ASM584v2_genomic.fna
/nobackup/genomic_sources/genbank_reference_bacteria_fna_20181128/ncbi-genomes-2018-11-28/GCF_000006745.1_ASM674v1_genomic.fna
/nobackup/genomic_sources/genbank_reference_bacteria_fna_20181128/ncbi-genomes-2018-11-28/GCF_000006765.1_ASM676v1_genomic.fna
/nobackup/genomic_sources/genbank_reference_bacteria_fna_20181128/ncbi-genomes-2018-11-28/GCF_000006785.2_ASM678v2_genomic.fna
/nobackup/genomic_sources/genbank_reference_bacteria_fna_20181128/ncbi-genomes-2018-11-28/GCF_000006845.1_ASM684v1_genomic.fnaThen a second file which is a list of lengths representing the distribution of contig sizes:$ head -n5 Tara_bact
23967
15981
149609
37636
121320Example 1 - Split into contigsThis example splits up all .fna files inreference_fna.listinto contigs according
to the distribution of contig lengths inTara_bact:$ randMAG reference_fna.list Tara_bactThe result is all a single .fna file created in the current working directory for
each input .fna. Also produced issimulated_MAGs.tab, a tabular file containing input
file, the unique 8-char suffix assigned, completeness-, and redundancy fractions:$ head -n5 simulated_MAGs.tab
GCF_000005845.2_ASM584v2_genomic    mpmwoutk        1.0     1.0
GCF_000006745.1_ASM674v1_genomic    mmqehxfx        1.0     1.0
GCF_000006765.1_ASM676v1_genomic    engiyxoz        1.0     1.0
GCF_000006785.2_ASM678v2_genomic    rtvayhqu        1.0     1.0
GCF_000006845.1_ASM684v1_genomic    bzpsqnfq        1.0     1.0The content of the fasta files in this example remained unchanged apart from
being split into contigs.Example 2 - Alter completeness/contaminationTo change the completeness and contamination of the fasta files the-cand-rarguments need to be used. The-nargument can be used to get precisely the
desired number of unqiue MAGs:$ randMAG reference_fna.list Tara_bact -c 0.7 -r 1.2 -n 10000This will produce files that are at most 70% complete and at least 20% contaminated:$ head -n5 simulated_MAGs.tab
GCF_000005845.2_ASM584v2_genomic    kfcckaxy        0.6956260400391929      1.2092498368299183
GCF_000006745.1_ASM674v1_genomic    xqnerzfy        0.6927500102156292      1.202911467089386
GCF_000006765.1_ASM676v1_genomic    kiubfyau        0.6988059837775469      1.200510423558475
GCF_000006785.2_ASM678v2_genomic    xxltcsmv        0.6849106013550827      1.2144702270571384
GCF_000006845.1_ASM684v1_genomic    rcxezdoq        0.6927952822804169      1.2028640216997193As well as 10 000 unique MAGs as requested with-n:$ wc -l simulated_MAGs.tab
10000 simulated_MAGs.tabReferences[TullyEtAl_2018]Tully,B.J. et al. (2018) The reconstruction of 2,631 draft metagenome-assembled genomes from the global oceans. Sci. Data, 5, 170203