The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
The rchime() function allows you to detect and remove
chimeras from your dataset using a referenced based approach.
rchime() can be used with strollur
objects or data.frames as inputs. Let’s look at examples of both
data types using sequence data from mothur’s MiSeq_SOP example
analysis, and the silva_gold() reference sequences.
rchime is designed to be flexible and you can use any reference
you choose.
Let’s create a strollur object containing the MiSeq_SOP sequences.
fasta_data <- readRDS(rchime_example("miseq_fasta.rds"))
abundance_data <- readRDS(rchime_example("miseq_abundance.rds"))
strollur <- strollur::new_dataset("rchime reference example")
strollur::add(strollur, table = fasta_data, type = "sequence")
#> Added 6084 sequences.
strollur::assign(strollur, table = abundance_data, type = "sequence_abundance")
#> Assigned 6084 sequence abundances.
strollur
#> rchime reference example:
#>
#> starts ends nbases ambigs polymers numns numseqs
#> Minimum: 1 249 249 0 3 0 1.00
#> 2.5%-tile: 1 252 252 0 4 0 3216.38
#> 25%-tile: 1 252 252 0 4 0 32163.75
#> Median: 1 253 253 0 4 0 64327.50
#> 75%-tile: 1 253 253 0 5 0 96491.25
#> 97.5%-tile: 1 254 254 0 6 0 125438.62
#> Maximum: 1 256 256 0 8 0 128655.00
#> Mean: 1 252 252 0 4 0 64327.64
#>
#> Number of unique seqs: 6084
#> Total number of seqs: 128655
#>
#> Total number of samples: 20data_df <- readRDS(rchime_example("miseq_data_frame.rds"))
str(data_df)
#> 'data.frame': 6084 obs. of 3 variables:
#> $ sequence_name: chr "M00967_43_000000000-A3JHG_1_1101_10133_8460" "M00967_43_000000000-A3JHG_1_1101_10134_24617" "M00967_43_000000000-A3JHG_1_1101_10331_23332" "M00967_43_000000000-A3JHG_1_1101_10340_12294" ...
#> $ sequence : chr "TACGTAGGGGGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGGCGGCCATGCAAGTCAGAAGTGAAAACCCGGGGCTCAACCCTGGGAGTGCTTTTGAAACT"| __truncated__ "TACGTAGGGGGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGGCGGCCATGCAAGTCAGAAGTGAAAACCCGGGGCTCAACCCTGGGAGTGCTTTTGAAACT"| __truncated__ "TACGGAGGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGCAGGCGGCATGGCAAGTCAGATGTGAAAGCCCGGGGCTCAACCCCGGGACTGCATTTGAAACT"| __truncated__ "TACGGAGGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGGCTGTTAAGTCAGCGGTCAAATGTCGGGGCTCAACGCCGTCGAGCCGTTGAAACTG"| __truncated__ ...
#> $ abundance : int 620 4 1 1 1 1 1 3 1 2 ...When removing chimeras using a reference, the potential parents are chosen from the set of reference sequences. Let’s use the reference to remove the chimeras.
reference <- silva_gold()
str(reference)
#> 'data.frame': 5181 obs. of 2 variables:
#> $ sequence_name: chr "7000004128189528" "7000004128189537" "7000004128189547" "7000004128189554" ...
#> $ sequence : chr "GACGAACGCTGGCGGCGTGCTTAACACATGCAAGTCGAGCGGAAAGGCCCTTCGGGGTACTCGAGCGGCGAACGGGTGAGTAACACGTGGGCAACCTACCCCCAGCACCGG"| __truncated__ "GATGAACGCTGGCGGTATGCTTAACACATGCAAGTCGAACGGAATCTTCGGATTTAGTGGCGGACGGGTGAGTAACGCGTGAGAATCTAGCTCTAGGTCGGGGACAACCAC"| __truncated__ "ATTGAACGCTGGCGGCATGCCTTACACATGCAAGTCGAACGGTAACAGGTCTTCGGATGCTGACGAGTGGCGAACGGGTGAGTAATACATCGGAACGTGCCCGATCGTGGG"| __truncated__ "GATGAACGCTGGCGGCGTGCCTAATACATGCAAGTCGAACGAAGCATCTTCGGATGCTTAGTGGCGAACGGGTGAGTAACACGTAGATAACCTACCTTTAACTCGAGGATA"| __truncated__ ...
strollur_results <- rchime(strollur, reference = reference)
#> Added a chimera_report report.
#> → rchime removed `1037` chimeras from your dataset.
#> → It took `2.46205997467041` seconds to detect and remove the chimeras.
strollur
#> rchime reference example:
#>
#> starts ends nbases ambigs polymers numns numseqs
#> Minimum: 1 249 249 0 3 0 1.00
#> 2.5%-tile: 1 252 252 0 4 0 3190.45
#> 25%-tile: 1 252 252 0 4 0 31904.50
#> Median: 1 253 253 0 4 0 63809.00
#> 75%-tile: 1 253 253 0 5 0 95713.50
#> 97.5%-tile: 1 254 254 0 6 0 124427.55
#> Maximum: 1 256 256 0 8 0 127618.00
#> Mean: 1 252 252 0 4 0 63809.14
#>
#> scrap_summary:
#> type trash_code unique total
#> 1 sequence chimeras_rchime 787 1037
#>
#> Number of unique seqs: 5297
#> Total number of seqs: 127618
#>
#> Total number of samples: 20
#> Total number of custom reports: 1
data_frame_results <- rchime(data_df, reference = reference)
#> → rchime detected `1037` chimeras in your dataset.
#> → It took `2.4663610458374` seconds to detect the chimeras.The rchime() function returns a list containing the
results of the function. When you are running the command with a
strollur object, the chimera_report is added, and chimeras are removed
for you automatically. Let’s take a closer look at the results
returned.
The chimera_report is a data.frame with a row for each sequence in your dataset. Let’s take a look at the first 5 chimeric sequences in the report:
strollur_results$chimera_report[
strollur_results$chimera_report$Chimeric_Status == "Y",
] |> head(n = 5)
#> Score Query ParentA
#> 14 0.3524927 M00967_43_000000000-A3JHG_1_2107_6538_14332 S000013923
#> 18 0.4054292 M00967_43_000000000-A3JHG_1_2108_19687_26893 S000008023
#> 21 0.3314002 M00967_43_000000000-A3JHG_1_2113_21308_17042 S000015682
#> 23 0.3266551 M00967_43_000000000-A3JHG_1_2110_13110_1977 S000260075
#> 30 0.6744335 M00967_43_000000000-A3JHG_1_1109_10514_23344 7000004128490675
#> ParentB Top_Parent QM QA QB QAB
#> 14 S000022285 S000022285 89.03509 80.70175 82.01754 77.63158
#> 18 7000004128504291 S000008023 94.82072 93.22709 77.29084 77.68924
#> 21 S000017014 S000015682 97.98387 96.37097 85.88710 84.67742
#> 23 7000004128191216 S000260075 95.93496 94.30894 79.26829 76.42276
#> 30 7000004131498332 7000004128490675 94.42231 88.84462 77.68924 74.10359
#> QT LY LN LA RY RN RA Div Chimeric_Status
#> 14 82.01754 22 6 14 19 0 5 7.017544 Y
#> 18 93.22709 46 2 10 4 0 1 1.593625 Y
#> 21 96.37097 32 2 0 4 0 3 1.612903 Y
#> 23 94.30894 45 4 6 4 0 0 1.626016 Y
#> 30 88.84462 45 3 3 15 1 7 5.577689 YResults also contains a list of the names of the chimeric sequences. Let’s get the names of the first 10 chimeras.
strollur_results$chimeras |> head(n = 10)
#> [1] "M00967_43_000000000-A3JHG_1_2107_6538_14332"
#> [2] "M00967_43_000000000-A3JHG_1_2108_19687_26893"
#> [3] "M00967_43_000000000-A3JHG_1_2113_21308_17042"
#> [4] "M00967_43_000000000-A3JHG_1_2110_13110_1977"
#> [5] "M00967_43_000000000-A3JHG_1_1109_10514_23344"
#> [6] "M00967_43_000000000-A3JHG_1_2111_20856_13433"
#> [7] "M00967_43_000000000-A3JHG_1_1110_15964_18711"
#> [8] "M00967_43_000000000-A3JHG_1_2101_14761_24747"
#> [9] "M00967_43_000000000-A3JHG_1_1114_20514_18980"
#> [10] "M00967_43_000000000-A3JHG_1_1113_26305_21260"These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.