An optimized translating ribosome affinity purification protocol for low-abundance <i>Drosophila</i> tissues.
The 3 matches · 1 of them tie a paragraph to a whole file without given lines: a weak match, whose lines are not tinted
- [1] § STAR★Methods › Method details › Translating Ribosome Affinity Purification (TRAP) › RNA-Seq analysis ↔ multiqc/modules/trim_galore/trim_galore.py, lines 53 to 178 · score 0.60 · Trim Galore, quality trimming, adapter · Report a mismatch
- [2] § STAR★Methods › Method details › Microscopy ↔ multiqc/templates/default/assets/js/packages/showdown.min.js, the whole file · a weak match · score 0.59 · microscope, oil, mounted, scissors, plates, medium · Report a mismatch
- [3] § STAR★Methods › Method details › Translating Ribosome Affinity Purification (TRAP) › RNA-Seq analysis ↔ multiqc/modules/qualimap/QM_RNASeq.py, lines 232 to 301 · score 0.56 · GTF annotation, RNA seq, Alignments, genome, Genes, Mapped · Report a mismatch
Paper
Loaded from Europe PMC by your browser; OSCR does not store it: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
Python · 603 lines · 25 KB · GPL-3.0 · 1 match
- import json
- import logging
- from collections import defaultdict
- from typing import Any, Dict, List, Optional, Tuple, cast
- from multiqc import config
- from multiqc.base_module import BaseMultiqcModule, ModuleNoSamplesFound, SampleGroupingConfig
- from multiqc.plots import bargraph, linegraph, table
- from multiqc.types import ColumnKey, SampleName, SectionAlert
- log = logging.getLogger(__name__)
- SCHEMA_MAJOR_SUPPORTED = 1
- class MultiqcModule(BaseMultiqcModule):
- """
- [Trim Galore](https://github.com/FelixKrueger/TrimGalore) provides
- consistent quality and adapter trimming for next-generation sequencing
- data, with special handling for Reduced Representation Bisulfite
- Sequencing (RRBS) and small-RNA libraries.
- This MultiQC module supports Trim Galore v2.0, which is a Rust
- rewrite of the original Perl-based v0.6 that has a new JSON output
- file summarising results. The earlier v0.6 versions of Trim Galore
- that wrapped Cutadapt are supported with reporting via the Cutadapt module.
- The old log format is still produced, but the Cutadapt module search pattern
- is configured to skip reports mentioning Trim Galore v2+. If you delete the
- JSON but keep the v2 text file, the sample will not be reported by either module.
- #### Paired-end sample grouping
- R1 and R2 of a paired-end sample are grouped automatically into a single
- row in the General Statistics and Pair Validation tables. Click the
- expand arrow on a grouped row to see the per-read values. The grouping
- is derived from the file list inside each JSON report, so it does not
- depend on filename patterns.
- To disable automatic grouping and show one row per read everywhere:
- ```yaml
- trim_galore_config:
- auto_group_pairs: false
- ```
- Auto-grouping can be combined with the global
- [`table_sample_merge`](../reports/customisation.md#sample-grouping)
- config option to merge further — for example to group lanes of an
- already-paired sample.
- """
- def __init__(self):
- super().__init__(
- name="Trim Galore",
- anchor="trim_galore",
- href="https://github.com/FelixKrueger/TrimGalore",
- info=(
- "Quality and adapter trimming for next-generation sequencing data, "
- "with special handling for RRBS libraries."
- ),
- doi="10.5281/zenodo.5127898",
- license="GNU General Public License v3.0",
- license_url="https://github.com/FelixKrueger/TrimGalore/blob/master/LICENSE",
- )
- data_by_sample: Dict[str, Dict[str, Any]] = {}
- self._pair_key_to_samples: Dict[Tuple[str, ...], List[str]] = {}
- for f in self.find_log_files("trim_galore", filehandles=True):
- parsed = self._parse_log(f)
- if parsed is None:
- continue
- s_name, payload, pair_key = parsed
- if self.is_ignore_sample(s_name):
- continue
- if s_name in data_by_sample:
- log.debug(f"Duplicate sample name found! Overwriting: {s_name}")
- data_by_sample[s_name] = payload
- self._pair_key_to_samples.setdefault(pair_key, []).append(s_name)
- self.add_data_source(f, s_name=s_name)
- self.add_software_version(payload["trim_galore_version"], s_name)
- if not data_by_sample:
- raise ModuleNoSamplesFound
- log.info(f"Found {len(data_by_sample)} reports")
- auto_group_pairs = getattr(config, "trim_galore_config", {}).get("auto_group_pairs", True)
- self._pair_display_by_key: Dict[Tuple[str, ...], str] = {}
- explicit_groups: Optional[Dict[str, List[str]]] = None
- if auto_group_pairs:
- explicit_groups, self._pair_display_by_key = self._derive_auto_groups(data_by_sample)
- self._general_stats_table(data_by_sample, explicit_groups)
- self.add_section(
- name="Filtered Reads",
- anchor="trim_galore_filtered_reads",
- description="Number of reads after trimming.",
- helptext=(
- "The `passing` bucket reflects reads that survived quality trimming, adapter trimming and N-content filtering "
- "(i.e. what made it into the trimmed output); the remaining buckets show which filter rejected the rest."
- ),
- plot=self._filtered_reads_plot(data_by_sample),
- )
- adapter_plot = self._adapter_length_plot(data_by_sample)
- if adapter_plot is not None:
- self.add_section(
- name="Adapter Length Distribution",
- anchor="trim_galore_adapter_lengths",
- description="Histogram of adapter match lengths per read.",
- helptext=(
- "Note that a tall left tail at 1 bp is normal: Trim Galore's default `--stringency 1` accepts "
- "single-base overlaps, which represent random hits rather than real adapter contamination."
- ),
- plot=adapter_plot,
- )
- pair_validation_plot, pv_dropped = self._pair_validation_plot(data_by_sample)
- if pair_validation_plot is not None:
- self.add_section(
- name="Pair Validation",
- anchor="trim_galore_pair_validation",
- description="Outcomes of paired-end validation",
- helptext=(
- "Shows pairs analysed, pairs removed (broken down by reason), and reads left unpaired after a partner "
- "was discarded. R1 and R2 of a pair are collapsed into a single row (the data is identical between them)."
- ),
- plot=pair_validation_plot,
- alerts=SectionAlert(
- message=(
- f"**{len(pv_dropped)} sample{'s' if len(pv_dropped) != 1 else ''}** with less than 0.1% "
- "of pairs affected hidden from this table."
- ),
- affected_samples=pv_dropped,
- )
- if pv_dropped
- else None,
- )
- poly_plot, poly_dropped = self._poly_trimming_plot(data_by_sample)
- if poly_plot is not None:
- self.add_section(
- name="Poly-A / Poly-G Trimming",
- anchor="trim_galore_poly_trimming",
- description="Reads and bases removed by Trim Galore's poly-A and poly-G tail trimmers.",
- plot=poly_plot,
- alerts=SectionAlert(
- message=(
- f"**{len(poly_dropped)} sample{'s' if len(poly_dropped) != 1 else ''}** with no "
- "poly-A/G trimming hidden from this table."
- ),
- affected_samples=poly_dropped,
- )
- if poly_dropped
- else None,
- )
- rrbs_plot, rrbs_dropped = self._rrbs_plot(data_by_sample)
- if rrbs_plot is not None:
- self.add_section(
- name="RRBS Trimming",
- anchor="trim_galore_rrbs",
- description="Reduced Representation Bisulfite Sequencing (RRBS) end-repair trimming counts.",
- plot=rrbs_plot,
- alerts=SectionAlert(
- message=(
- f"**{len(rrbs_dropped)} sample{'s' if len(rrbs_dropped) != 1 else ''}** with no "
- "RRBS trimming hidden from this table."
- ),
- affected_samples=rrbs_dropped,
- )
- if rrbs_dropped
- else None,
- )
- self.write_data_file(_flatten_for_data_file(data_by_sample), "multiqc_trim_galore")
- def _parse_log(self, f) -> Optional[Tuple[str, Dict[str, Any], Tuple[str, ...]]]:
- try:
- payload = json.load(f["f"])
- except json.JSONDecodeError as e:
- log.warning(f"Could not parse {f['fn']!r}: {e}")
- return None
- # `tool` check uses .get() because we don't yet know this is a Trim
- # Galore JSON — could be a foreign JSON that matched the filename glob.
- if payload.get("tool") != "Trim Galore":
- log.debug(f"Skipping {f['fn']!r}: tool field is {payload.get('tool')!r}, not Trim Galore")
- return None
- schema = payload["schema_version"]
- major = int(str(schema).split(".")[0])
- if major != SCHEMA_MAJOR_SUPPORTED:
- log.error(
- f"Skipping {f['fn']!r}: schema_version {schema!r} has incompatible major version "
- f"(expected major v{SCHEMA_MAJOR_SUPPORTED}). This module needs updating to handle the new schema."
- )
- return None
- # PE reports list both filenames in `input_filenames`; pick the one for
- # this read_number so R1 and R2 produce distinct samples. SE reports
- # have read_number=1 and a 1-element list, so the same logic works.
- # `input_filenames` is byte-identical across R1 and R2 of the same pair,
- # so it doubles as a stable pair key.
- input_filenames = payload["input_filenames"]
- read_number = payload["read_number"]
- s_name = self.clean_s_name(input_filenames[read_number - 1], f)
- return s_name, payload, tuple(input_filenames)
- def _derive_auto_groups(
- self,
- data_by_sample: Dict[str, Dict[str, Any]],
- ) -> Tuple[Dict[str, List[str]], Dict[Tuple[str, ...], str]]:
- """Build module-supplied groups from tool-derived pair info.
- Returns `(explicit_groups, pair_display_by_key)`. When the user has
- `config.table_sample_merge` set, name patterns layer on top: each
- auto-group's display name is run through `groups_for_sample` to
- merge into a super-group.
- """
- auto_groups: Dict[str, List[str]] = {}
- pair_display_by_key: Dict[Tuple[str, ...], str] = {}
- for pair_key, members in self._pair_key_to_samples.items():
- sorted_members = sorted(members)
- # _clean_fastq_pair needs two names; SE pairs have only one.
- if len(sorted_members) >= 2:
- display = self._clean_fastq_pair(sorted_members[0], sorted_members[1]) or "_".join(sorted_members)
- else:
- display = sorted_members[0]
- auto_groups[display] = sorted_members
- pair_display_by_key[pair_key] = display
- if not config.table_sample_merge:
- return auto_groups, pair_display_by_key
- by_super: Dict[str, List[str]] = defaultdict(list)
- for auto_display, samples in auto_groups.items():
- super_name, _ = self.groups_for_sample(SampleName(auto_display))
- by_super[str(super_name)].extend(samples)
- return dict(by_super), pair_display_by_key
- def _general_stats_table(
- self,
- data_by_sample: Dict[str, Dict[str, Any]],
- explicit_groups: Optional[Dict[str, List[str]]] = None,
- ) -> None:
- gen_stats: Dict[str, Dict[ColumnKey, Any]] = {}
- for s_name, payload in data_by_sample.items():
- rp = payload["read_processing"]
- bp = payload["basepair_processing"]
- total = rp["total_reads"]
- total_bp = bp["total_bp_processed"]
- gen_stats[s_name] = {
- ColumnKey("tg_total_reads"): total,
- ColumnKey("tg_pct_with_adapter"): _safe_pct(rp["reads_with_adapter"], total),
- ColumnKey("tg_pct_passing"): _safe_pct(rp["reads_written"], total),
- ColumnKey("tg_pct_quality_trimmed"): _safe_pct(bp["quality_trimmed_bp"], total_bp),
- ColumnKey("tg_total_bp_written"): bp["total_bp_written"],
- }
- headers: Dict[str, Dict[str, Any]] = {
- "tg_pct_with_adapter": {
- "title": "% Adapter",
- "description": "% reads where at least one adapter was detected",
- "max": 100,
- "min": 0,
- "suffix": "%",
- "scale": "OrRd",
- "format": "{:,.1f}",
- },
- "tg_pct_passing": {
- "title": "% Pass",
- "description": "% reads passing all filters into trimmed output",
- "max": 100,
- "min": 0,
- "suffix": "%",
- "scale": "RdYlGn",
- "format": "{:,.1f}",
- },
- "tg_pct_quality_trimmed": {
- "title": "% Q-trim",
- "description": "% bases removed by 3'-end quality trimming",
- "max": 100,
- "min": 0,
- "suffix": "%",
- "scale": "Blues",
- "format": "{:,.1f}",
- },
- "tg_total_reads": {
- "title": "Reads",
- "description": "Total reads processed",
- "scale": "Greys",
- "shared_key": "read_count",
- },
- "tg_total_bp_written": {
- "title": "BP written",
- "description": "Total basepairs written to trimmed output",
- "scale": "BuGn",
- "shared_key": "base_count",
- "hidden": True,
- },
- }
- self.general_stats_addcols(
- cast(Any, gen_stats),
- headers,
- group_samples_config=SampleGroupingConfig(
- explicit_groups=explicit_groups,
- cols_to_sum=[
- ColumnKey("tg_total_reads"),
- ColumnKey("tg_total_bp_written"),
- ],
- cols_to_weighted_average=[
- (ColumnKey("tg_pct_with_adapter"), ColumnKey("tg_total_reads")),
- (ColumnKey("tg_pct_passing"), ColumnKey("tg_total_reads")),
- (ColumnKey("tg_pct_quality_trimmed"), ColumnKey("tg_total_bp_written")),
- ],
- ),
- )
- def _filtered_reads_plot(self, data_by_sample: Dict[str, Dict[str, Any]]):
- bar_data: Dict[str, Dict[str, int]] = {}
- for s_name, payload in data_by_sample.items():
- rp = payload["read_processing"]
- bar_data[s_name] = {
- "passing": rp["reads_written"],
- "too_short": rp["reads_too_short"],
- "too_long": rp["reads_too_long"],
- "too_many_n": rp["reads_too_many_n"],
- "discarded_untrimmed": rp["reads_discarded_untrimmed"],
- }
- cats = {
- "passing": {"name": "Passed filters"},
- "too_short": {"name": "Too short"},
- "too_long": {"name": "Too long"},
- "too_many_n": {"name": "Too many Ns"},
- "discarded_untrimmed": {"name": "Discarded (untrimmed)"},
- }
- return bargraph.plot(
- bar_data,
- cats,
- {
- "id": "trim_galore_filtered_reads_plot",
- "title": "Trim Galore: Read Filtering",
- "ylab": "Number of reads",
- "cpswitch_counts_label": "Number of reads",
- },
- )
- def _adapter_length_plot(self, data_by_sample: Dict[str, Dict[str, Any]]):
- line_data: Dict[str, Dict[int, int]] = {}
- for s_name, payload in data_by_sample.items():
- adapters = payload["adapter_trimming"]
- for a in adapters:
- key = f"{s_name} ({a['name']})" if len(adapters) > 1 else s_name
- line_data[key] = {int(k): v for k, v in a["length_distribution"].items()}
- if not line_data:
- return None
- return linegraph.plot(
- line_data,
- {
- "id": "trim_galore_adapter_length_plot",
- "title": "Trim Galore: Adapter Length Distribution",
- "xlab": "Adapter overlap length (bp)",
- "ylab": "Reads (count)",
- "ymin": 0,
- "tt_label": "{point.x} bp: {point.y:,} reads",
- },
- )
- def _pair_validation_plot(self, data_by_sample: Dict[str, Dict[str, Any]]):
- # pair_validation is identical between R1 and R2 JSONs of the same pair —
- # collapse them by the tool-derived pair_key. Skip SE samples (no pv).
- all_rows: Dict[str, Dict[str, int]] = {}
- for pair_key, members in self._pair_key_to_samples.items():
- pv = data_by_sample[members[0]]["pair_validation"]
- if not pv: # SE samples — `pair_validation` is null
- continue
- display = self._pair_display_by_key.get(pair_key, members[0])
- all_rows[display] = {
- "pairs_analyzed": pv["pairs_analyzed"],
- "pairs_removed": pv["pairs_removed"],
- "pairs_removed_n": pv["pairs_removed_n"],
- "pairs_removed_too_long": pv["pairs_removed_too_long"],
- "r1_unpaired": pv["r1_unpaired"],
- "r2_unpaired": pv["r2_unpaired"],
- }
- # `pairs_removed_*` are sub-reasons of `pairs_removed` so are not added
- # to the affected-fraction sum here (would double-count).
- def _kept(r: Dict[str, int]) -> bool:
- return bool(r["pairs_analyzed"]) and (
- (r["pairs_removed"] + r["r1_unpaired"] + r["r2_unpaired"]) / r["pairs_analyzed"] > 0.001
- )
- rows = {n: r for n, r in all_rows.items() if _kept(r)}
- dropped = sorted(n for n, r in all_rows.items() if not _kept(r))
- if not rows:
- return None, dropped
- headers: Dict[str, Dict[str, Any]] = {
- "pairs_analyzed": {
- "title": "Pairs analysed",
- "description": "Total read pairs examined by pair validation",
- "scale": "Greys",
- "shared_key": "read_count",
- },
- "pairs_removed": {
- "title": "Pairs removed",
- "description": "Total read pairs removed by pair validation",
- "scale": "OrRd",
- "shared_key": "read_count",
- },
- "pairs_removed_n": {
- "title": "Pairs removed (N content)",
- "description": "Read pairs removed because they exceeded the N-content threshold",
- "scale": "OrRd",
- "shared_key": "read_count",
- },
- "pairs_removed_too_long": {
- "title": "Pairs removed (too long)",
- "description": "Read pairs removed because one or both reads exceeded the maximum length",
- "scale": "OrRd",
- "shared_key": "read_count",
- },
- "r1_unpaired": {
- "title": "R1 unpaired",
- "description": "R1 reads left unpaired after their R2 partner was discarded",
- "scale": "Oranges",
- "shared_key": "read_count",
- },
- "r2_unpaired": {
- "title": "R2 unpaired",
- "description": "R2 reads left unpaired after their R1 partner was discarded",
- "scale": "Oranges",
- "shared_key": "read_count",
- },
- }
- return (
- table.plot(
- rows,
- cast(Any, headers),
- pconfig={
- "namespace": self.name,
- "id": "trim_galore_pair_validation_table",
- "title": "Trim Galore: Pair Validation",
- },
- ),
- dropped,
- )
- def _poly_trimming_plot(self, data_by_sample: Dict[str, Dict[str, Any]]):
- rows: Dict[str, Dict[str, int]] = {}
- dropped: List[str] = []
- for s_name, payload in data_by_sample.items():
- pa = payload["poly_a_trimming"]
- pg = payload["poly_g_trimming"]
- row = {
- "poly_a_reads_trimmed": pa["reads_trimmed"],
- "poly_a_bases_removed": pa["bases_removed"],
- "poly_g_reads_trimmed": pg["reads_trimmed"],
- "poly_g_bases_removed": pg["bases_removed"],
- }
- if any(row.values()):
- rows[s_name] = row
- else:
- dropped.append(s_name)
- if not rows:
- return None, sorted(dropped)
- headers: Dict[str, Dict[str, Any]] = {
- "poly_a_reads_trimmed": {
- "title": "Poly-A reads trimmed",
- "description": "Reads with a poly-A tail trimmed",
- "scale": "Purples",
- "shared_key": "read_count",
- },
- "poly_a_bases_removed": {
- "title": "Poly-A bp removed",
- "description": "Bases removed by poly-A trimming",
- "scale": "Purples",
- "shared_key": "base_count",
- },
- "poly_g_reads_trimmed": {
- "title": "Poly-G reads trimmed",
- "description": "Reads with a poly-G tail trimmed",
- "scale": "Greens",
- "shared_key": "read_count",
- },
- "poly_g_bases_removed": {
- "title": "Poly-G bp removed",
- "description": "Bases removed by poly-G trimming",
- "scale": "Greens",
- "shared_key": "base_count",
- },
- }
- return (
- table.plot(
- rows,
- cast(Any, headers),
- pconfig={
- "namespace": self.name,
- "id": "trim_galore_poly_trimming_table",
- "title": "Trim Galore: Poly-A / Poly-G Trimming",
- },
- ),
- sorted(dropped),
- )
- def _rrbs_plot(self, data_by_sample: Dict[str, Dict[str, Any]]):
- rows: Dict[str, Dict[str, int]] = {}
- dropped: List[str] = []
- for s_name, payload in data_by_sample.items():
- rr = payload["rrbs"]
- row = {
- "rrbs_trimmed_3prime": rr["trimmed_3prime"],
- "rrbs_trimmed_5prime": rr["trimmed_5prime"],
- "rrbs_r2_clipped_5prime": rr["r2_clipped_5prime"],
- }
- if any(row.values()):
- rows[s_name] = row
- else:
- dropped.append(s_name)
- if not rows:
- return None, sorted(dropped)
- headers: Dict[str, Dict[str, Any]] = {
- "rrbs_trimmed_3prime": {
- "title": "3' trimmed",
- "description": "Reads trimmed at the 3' end for RRBS end-repair",
- "scale": "Blues",
- "shared_key": "read_count",
- },
- "rrbs_trimmed_5prime": {
- "title": "5' trimmed",
- "description": "Reads trimmed at the 5' end for RRBS end-repair",
- "scale": "Blues",
- "shared_key": "read_count",
- },
- "rrbs_r2_clipped_5prime": {
- "title": "R2 5' clipped",
- "description": "R2 reads with the 5' end clipped (directional RRBS)",
- "scale": "Blues",
- "shared_key": "read_count",
- },
- }
- return (
- table.plot(
- rows,
- cast(Any, headers),
- pconfig={
- "namespace": self.name,
- "id": "trim_galore_rrbs_table",
- "title": "Trim Galore: RRBS Trimming",
- },
- ),
- sorted(dropped),
- )
- def _flatten_for_data_file(data_by_sample: Dict[str, Dict[str, Any]]) -> Dict[str, Dict[str, Any]]:
- flat: Dict[str, Dict[str, Any]] = {}
- for s_name, p in data_by_sample.items():
- rp = p["read_processing"]
- bp = p["basepair_processing"]
- pa = p["poly_a_trimming"]
- pg = p["poly_g_trimming"]
- rr = p["rrbs"]
- # `pair_validation` is explicitly null for SE samples — keep `or {}`
- # so the .get() calls below produce None for the SE pair columns.
- pv = p["pair_validation"] or {}
- flat[s_name] = {
- "trim_galore_version": p["trim_galore_version"],
- "mode": p["mode"],
- "total_reads": rp["total_reads"],
- "reads_with_adapter": rp["reads_with_adapter"],
- "reads_written": rp["reads_written"],
- "reads_too_short": rp["reads_too_short"],
- "reads_too_long": rp["reads_too_long"],
- "reads_too_many_n": rp["reads_too_many_n"],
- "reads_discarded_untrimmed": rp["reads_discarded_untrimmed"],
- "total_bp_processed": bp["total_bp_processed"],
- "total_bp_written": bp["total_bp_written"],
- "quality_trimmed_bp": bp["quality_trimmed_bp"],
- "pairs_analyzed": pv.get("pairs_analyzed"),
- "pairs_removed": pv.get("pairs_removed"),
- "pairs_removed_n": pv.get("pairs_removed_n"),
- "pairs_removed_too_long": pv.get("pairs_removed_too_long"),
- "r1_unpaired": pv.get("r1_unpaired"),
- "r2_unpaired": pv.get("r2_unpaired"),
- "poly_a_reads_trimmed": pa["reads_trimmed"],
- "poly_a_bases_removed": pa["bases_removed"],
- "poly_g_reads_trimmed": pg["reads_trimmed"],
- "poly_g_bases_removed": pg["bases_removed"],
- "rrbs_trimmed_3prime": rr["trimmed_3prime"],
- "rrbs_trimmed_5prime": rr["trimmed_5prime"],
- "rrbs_r2_clipped_5prime": rr["r2_clipped_5prime"],
- }
- return flat
- def _safe_pct(part: int, total: int) -> float:
- if not total:
- return 0.0
- return 100.0 * part / total
trim_galore.py at commit dc565eb, under GPL-3.0 · at the source
Overview
Abstract
Localized protein translation enables spatially restricted cellular dynamics, particularly in neurons, where specific mRNAs are translated in axons and dendrites far from the cell body. Translating ribosome affinity purification (TRAP) has been used to study axonal translation in rodents and cell-type-specific translation in Drosophila, but existing protocols are not optimized for axons, where material is extremely limited. Here, we present a highly sensitive TRAP protocol for isolating ribosome-bound mRNAs from low-input samples, enabling recovery of axonal mRNAs from Drosophila larval and adult (leg) motor neurons. RNA-seq identified axonally translated transcripts, including mRNAs encoding ribosomal and mitochondrial proteins, similar to those reported in axons of other species, indicating conservation of axonal translation in Drosophila. This low-input method enables analysis of local translation with Drosophila genetics across developmental stages, genetic backgrounds, and disease models, and can be adapted for rare genotypes, other tissues and model systems requiring high sensitivity.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above, with 3 matches between paragraphs and lines of code.
MultiQC/MultiQC
dc565eb9eef7b22a289ab7eec78e5efb6bf297c3, 28 September 2026Availability: 1 check, the latest on 30 September 2026: the link answers
- 30 September 2026: the link answers
725 files
- .claude/
skills/ , JavaScript, 208 linestriaging-module-requests / scripts/ fetch-tool-metrics.js - .github/
workflows/ , Python, 118 linescode_checks.py - .prettierrc.js, JavaScript, 14 lines
- multiqc/
__init__.py , Python, 72 lines - multiqc/
__main__.py , Python, 27 lines - multiqc/
base_module.py , Python, 1,485 lines - multiqc/
config.py , Python, 706 lines - multiqc/
core/ , Python, 1 line__init__.py - multiqc/
core/ , Python, 1,139 linesai.py - multiqc/
core/ , Python, 90 linesconfig_check.py - multiqc/
core/ , Python, 23 linesexceptions.py - multiqc/
core/ , Python, 221 linesexec_modules.py - multiqc/
core/ , Python, 140 linesfile_search.py - multiqc/
core/ , Python, 411 lineslog_and_rich.py - multiqc/
core/ , Python, 109 linesorder_modules_and_sectio ns.py - multiqc/
core/ , Python, 392 linesplot_data_store.py - multiqc/
core/ , Python, 21 linesplugin_hooks.py - multiqc/
core/ , Python, 210 linessoftware_versions.py - multiqc/
core/ , Python, 987 linesspecial_case_modules/ custom_content.py - multiqc/
core/ , Python, 437 linesspecial_case_modules/ load_multiqc_data.py - multiqc/
core/ , Python, 261 linesspecial_case_modules/ profile_runtime.py - multiqc/
core/ , Python, 145 linesspecial_case_modules/ software_versions.py - multiqc/
core/ , Python, 18 linesstrict_helpers.py - multiqc/
core/ , Python, 57 linestmp_dir.py - multiqc/
core/ , Python, 273 linesupdate_config.py - multiqc/
core/ , Python, 80 linesversion_check.py - multiqc/
core/ , Python, 696 lineswrite_results.py - multiqc/
interactive.py , Python, 482 lines - multiqc/
modules/ , Python, 1 line__init__.py - multiqc/
modules/ , Python, 3 linesadapterremoval/ __init__.py - multiqc/
modules/ , Python, 402 linesadapterremoval/ adapterremoval.py - multiqc/
modules/ , Python, 3 linesafterqc/ __init__.py - multiqc/
modules/ , Python, 155 linesafterqc/ afterqc.py - multiqc/
modules/ , Python, 3 linesanglerfish/ __init__.py - multiqc/
modules/ , Python, 253 linesanglerfish/ anglerfish.py - multiqc/
modules/ , Python, 3 linesataqv/ __init__.py - multiqc/
modules/ , Python, 432 linesataqv/ ataqv.py - multiqc/
modules/ , Python, 3 linesbakta/ __init__.py - multiqc/
modules/ , Python, 162 linesbakta/ bakta.py - multiqc/
modules/ , Python, 3 linesbamdst/ __init__.py - multiqc/
modules/ , Python, 522 linesbamdst/ bamdst.py - multiqc/
modules/ , Python, 3 linesbamtools/ __init__.py - multiqc/
modules/ , Python, 45 linesbamtools/ bamtools.py - multiqc/
modules/ , Python, 134 linesbamtools/ stats.py - multiqc/
modules/ , Python, 3 linesbases2fastq/ __init__.py - multiqc/
modules/ , Python, 1,110 linesbases2fastq/ bases2fastq.py - multiqc/
modules/ , Python, 835 linesbases2fastq/ plot_runs.py - multiqc/
modules/ , Python, 519 linesbases2fastq/ plot_samples.py - multiqc/
modules/ , Python, 25 linesbases2fastq/ tests/ conftest.py - multiqc/
modules/ , Python, 500 linesbases2fastq/ tests/ test_bases2fastq.py - multiqc/
modules/ , Python, 3 linesbbduk/ __init__.py - multiqc/
modules/ , Python, 195 linesbbduk/ bbduk.py - multiqc/
modules/ , Python, 3 linesbbmap/ __init__.py - multiqc/
modules/ , Python, 349 linesbbmap/ bbmap.py - multiqc/
modules/ , Python, 496 linesbbmap/ bbmap_filetypes.py - multiqc/
modules/ , Python, 54 linesbbmap/ plot_aqhist.py - multiqc/
modules/ , Python, 35 linesbbmap/ plot_basic_hist.py - multiqc/
modules/ , Python, 46 linesbbmap/ plot_bbsplit.py - multiqc/
modules/ , Python, 57 linesbbmap/ plot_bhist.py - multiqc/
modules/ , Python, 75 linesbbmap/ plot_bqhist.py - multiqc/
modules/ , Python, 43 linesbbmap/ plot_covhist.py - multiqc/
modules/ , Python, 52 linesbbmap/ plot_idhist.py - multiqc/
modules/ , Python, 42 linesbbmap/ plot_ihist.py - multiqc/
modules/ , Python, 52 linesbbmap/ plot_indelhist.py - multiqc/
modules/ , Python, 63 linesbbmap/ plot_mhist.py - multiqc/
modules/ , Python, 91 linesbbmap/ plot_qahist.py - multiqc/
modules/ , Python, 41 linesbbmap/ plot_qchist.py - multiqc/
modules/ , Python, 64 linesbbmap/ plot_qhist.py - multiqc/
modules/ , Python, 3 linesbcftools/ __init__.py - multiqc/
modules/ , Python, 59 linesbcftools/ bcftools.py - multiqc/
modules/ , Python, 495 linesbcftools/ stats.py - multiqc/
modules/ , Python, 3 linesbcl2fastq/ __init__.py - multiqc/
modules/ , Python, 527 linesbcl2fastq/ bcl2fastq.py - multiqc/
modules/ , Python, 3 linesbclconvert/ __init__.py - multiqc/
modules/ , Python, 1,103 linesbclconvert/ bclconvert.py - multiqc/
modules/ , Python, 3 linesbiobambam2/ __init__.py - multiqc/
modules/ , Python, 45 linesbiobambam2/ biobambam2.py - multiqc/
modules/ , Python, 3 linesbiobloomtools/ __init__.py - multiqc/
modules/ , Python, 107 linesbiobloomtools/ biobloomtools.py - multiqc/
modules/ , Python, 3 linesbiscuit/ __init__.py - multiqc/
modules/ , Python, 1,021 linesbiscuit/ biscuit.py - multiqc/
modules/ , Python, 1 linebiscuit/ tests/ __init__.py - multiqc/
modules/ , Python, 50 linesbiscuit/ tests/ test_biscuit.py - multiqc/
modules/ , Python, 3 linesbismark/ __init__.py - multiqc/
modules/ , Python, 498 linesbismark/ bismark.py - multiqc/
modules/ , Python, 3 linesbowtie1/ __init__.py - multiqc/
modules/ , Python, 142 linesbowtie1/ bowtie1.py - multiqc/
modules/ , Python, 3 linesbowtie2/ __init__.py - multiqc/
modules/ , Python, 310 linesbowtie2/ bowtie2.py - multiqc/
modules/ , Python, 3 linesbusco/ __init__.py - multiqc/
modules/ , Python, 144 linesbusco/ busco.py - multiqc/
modules/ , Python, 3 linesbustools/ __init__.py - multiqc/
modules/ , Python, 302 linesbustools/ bustools.py - multiqc/
modules/ , Python, 3 linesccs/ __init__.py - multiqc/
modules/ , Python, 336 linesccs/ ccs.py - multiqc/
modules/ , Python, 1 lineccs/ tests/ __init__.py - multiqc/
modules/ , Python, 100 linesccs/ tests/ test_ccs.py - multiqc/
modules/ , Python, 3 linescellranger/ __init__.py - multiqc/
modules/ , Python, 56 linescellranger/ cellranger.py - multiqc/
modules/ , Python, 486 linescellranger/ count.py - multiqc/
modules/ , Python, 92 linescellranger/ utils.py - multiqc/
modules/ , Python, 330 linescellranger/ vdj.py - multiqc/
modules/ , Python, 3 linescellranger_arc/ __init__.py - multiqc/
modules/ , Python, 434 linescellranger_arc/ cellranger_arc.py - multiqc/
modules/ , Python, 1 linecellranger_arc/ tests/ __init__.py - multiqc/
modules/ , Python, 117 linescellranger_arc/ tests/ test_cellranger_arc.py - multiqc/
modules/ , Python, 134 linescellranger_arc/ utils.py - multiqc/
modules/ , Python, 3 linescells2stats/ __init__.py - multiqc/
modules/ , Python, 98 linescells2stats/ cells2stats.py - multiqc/
modules/ , Python, 311 linescells2stats/ cells2stats_bar_plots.py - multiqc/
modules/ , Python, 345 linescells2stats/ cells2stats_tables.py - multiqc/
modules/ , Python, 287 linescells2stats/ queries.py - multiqc/
modules/ , Python, 66 linescells2stats/ utils.py - multiqc/
modules/ , Python, 3 linescheckatlas/ __init__.py - multiqc/
modules/ , Python, 633 linescheckatlas/ checkatlas.py - multiqc/
modules/ , Python, 3 linescheckm/ __init__.py - multiqc/
modules/ , Python, 215 linescheckm/ checkm.py - multiqc/
modules/ , Python, 3 linescheckm2/ __init__.py - multiqc/
modules/ , Python, 176 linescheckm2/ checkm2.py - multiqc/
modules/ , Python, 3 linescheckqc/ __init__.py - multiqc/
modules/ , Python, 598 linescheckqc/ checkqc.py - multiqc/
modules/ , Python, 3 linesclipandmerge/ __init__.py - multiqc/
modules/ , Python, 123 linesclipandmerge/ clipandmerge.py - multiqc/
modules/ , Python, 3 linesclusterflow/ __init__.py - multiqc/
modules/ , Python, 373 linesclusterflow/ clusterflow.py - multiqc/
modules/ , Python, 3 linesconpair/ __init__.py - multiqc/
modules/ , Python, 120 linesconpair/ conpair.py - multiqc/
modules/ , Python, 3 linescutadapt/ __init__.py - multiqc/
modules/ , Python, 500 linescutadapt/ cutadapt.py - multiqc/
modules/ , Python, 3 linesdamageprofiler/ __init__.py - multiqc/
modules/ , Python, 282 linesdamageprofiler/ damageprofiler.py - multiqc/
modules/ , Python, 3 linesdeacon/ __init__.py - multiqc/
modules/ , Python, 308 linesdeacon/ deacon.py - multiqc/
modules/ , Python, 3 linesdedup/ __init__.py - multiqc/
modules/ , Python, 177 linesdedup/ dedup.py - multiqc/
modules/ , Python, 3 linesdeeptools/ __init__.py - multiqc/
modules/ , Python, 69 linesdeeptools/ bamPEFragmentSizeDistrib ution.py - multiqc/
modules/ , Python, 261 linesdeeptools/ bamPEFragmentSizeTable.p y - multiqc/
modules/ , Python, 149 linesdeeptools/ deeptools.py - multiqc/
modules/ , Python, 184 linesdeeptools/ estimateReadFiltering.py - multiqc/
modules/ , Python, 81 linesdeeptools/ plotCorrelation.py - multiqc/
modules/ , Python, 191 linesdeeptools/ plotCoverage.py - multiqc/
modules/ , Python, 100 linesdeeptools/ plotEnrichment.py - multiqc/
modules/ , Python, 179 linesdeeptools/ plotFingerprint.py - multiqc/
modules/ , Python, 82 linesdeeptools/ plotPCA.py - multiqc/
modules/ , Python, 159 linesdeeptools/ plotProfile.py - multiqc/
modules/ , Python, 3 linesdiamond/ __init__.py - multiqc/
modules/ , Python, 86 linesdiamond/ diamond.py - multiqc/
modules/ , Python, 3 linesdisambiguate/ __init__.py - multiqc/
modules/ , Python, 113 linesdisambiguate/ disambiguate.py - multiqc/
modules/ , Python, 3 linesdragen/ __init__.py - multiqc/
modules/ , Python, 153 linesdragen/ coverage_hist.py - multiqc/
modules/ , Python, 1,806 linesdragen/ coverage_metrics.py - multiqc/
modules/ , Python, 176 linesdragen/ coverage_per_contig.py - multiqc/
modules/ , Python, 147 linesdragen/ dragen.py - multiqc/
modules/ , Python, 152 linesdragen/ dragen_gc_metrics.py - multiqc/
modules/ , Python, 124 linesdragen/ fragment_length.py - multiqc/
modules/ , Python, 744 linesdragen/ mapping_metrics.py - multiqc/
modules/ , Python, 144 linesdragen/ overall_mean_cov.py - multiqc/
modules/ , Python, 122 linesdragen/ ploidy_estimation_metric s.py - multiqc/
modules/ , Python, 149 linesdragen/ rna_quant_metrics.py - multiqc/
modules/ , Python, 84 linesdragen/ rna_transcript_cov.py - multiqc/
modules/ , Python, 109 linesdragen/ sc_atac_metrics.py - multiqc/
modules/ , Python, 110 linesdragen/ sc_rna_metrics.py - multiqc/
modules/ , Python, 1 linedragen/ tests/ __init__.py - multiqc/
modules/ , Python, 40 linesdragen/ tests/ test_dragen.py - multiqc/
modules/ , Python, 103 linesdragen/ time_metrics.py - multiqc/
modules/ , Python, 102 linesdragen/ trimmer_metrics.py - multiqc/
modules/ , Python, 318 linesdragen/ utils.py - multiqc/
modules/ , Python, 472 linesdragen/ vc_metrics.py - multiqc/
modules/ , Python, 3 linesdragen_fastqc/ __init__.py - multiqc/
modules/ , JavaScript, 430 linesdragen_fastqc/ assets/ js/ multiqc_dragen_fastqc.js - multiqc/
modules/ , Python, 106 linesdragen_fastqc/ base_metrics.py - multiqc/
modules/ , Python, 273 linesdragen_fastqc/ content_metrics.py - multiqc/
modules/ , Python, 118 linesdragen_fastqc/ dragen_fastqc.py - multiqc/
modules/ , Python, 189 linesdragen_fastqc/ gc_metrics.py - multiqc/
modules/ , Python, 141 linesdragen_fastqc/ read_metrics.py - multiqc/
modules/ , Python, 104 linesdragen_fastqc/ util.py - multiqc/
modules/ , Python, 3 lineseigenstratdatabasetools/ __init__.py - multiqc/
modules/ , Python, 97 lineseigenstratdatabasetools/ eigenstratdatabasetools. py - multiqc/
modules/ , Python, 3 linesfastp/ __init__.py - multiqc/
modules/ , Python, 703 linesfastp/ fastp.py - multiqc/
modules/ , Python, 3 linesfastq_screen/ __init__.py - multiqc/
modules/ , Python, 274 linesfastq_screen/ fastq_screen.py - multiqc/
modules/ , Python, 3 linesfastqc/ __init__.py - multiqc/
modules/ , JavaScript, 479 linesfastqc/ assets/ js/ multiqc_fastqc.js - multiqc/
modules/ , Python, 1,531 linesfastqc/ fastqc.py - multiqc/
modules/ , Python, 3 linesfastqe/ __init__.py - multiqc/
modules/ , Python, 128 linesfastqe/ fastqe.py - multiqc/
modules/ , Python, 3 linesfeaturecounts/ __init__.py - multiqc/
modules/ , Python, 184 linesfeaturecounts/ featurecounts.py - multiqc/
modules/ , Python, 3 linesfgbio/ __init__.py - multiqc/
modules/ , Python, 186 linesfgbio/ error_rate_by_read_posit ion.py - multiqc/
modules/ , Python, 49 linesfgbio/ fgbio.py - multiqc/
modules/ , Python, 90 linesfgbio/ group_reads_by_umi.py - multiqc/
modules/ , Python, 3 linesfgumi/ __init__.py - multiqc/
modules/ , Python, 228 linesfgumi/ commands.py - multiqc/
modules/ , Python, 211 linesfgumi/ consensus_families.py - multiqc/
modules/ , Python, 91 linesfgumi/ consensus_stats.py - multiqc/
modules/ , Python, 130 linesfgumi/ dedup.py - multiqc/
modules/ , Python, 54 linesfgumi/ family_sizes.py - multiqc/
modules/ , Python, 114 linesfgumi/ fgumi.py - multiqc/
modules/ , Python, 71 linesfgumi/ grouping.py - multiqc/
modules/ , Python, 65 linesfgumi/ review.py - multiqc/
modules/ , Python, 330 linesfgumi/ schemas.py - multiqc/
modules/ , Python, 1 linefgumi/ tests/ __init__.py - multiqc/
modules/ , Python, 45 linesfgumi/ tests/ conftest.py - multiqc/
modules/ , Python, 103 linesfgumi/ tests/ test_commands.py - multiqc/
modules/ , Python, 121 linesfgumi/ tests/ test_consensus_families. py - multiqc/
modules/ , Python, 59 linesfgumi/ tests/ test_consensus_stats.py - multiqc/
modules/ , Python, 118 linesfgumi/ tests/ test_contract.py - multiqc/
modules/ , Python, 86 linesfgumi/ tests/ test_dedup.py - multiqc/
modules/ , Python, 202 linesfgumi/ tests/ test_family_sizes.py - multiqc/
modules/ , Python, 23 linesfgumi/ tests/ test_grouping.py - multiqc/
modules/ , Python, 11 linesfgumi/ tests/ test_review.py - multiqc/
modules/ , Python, 58 linesfgumi/ tests/ test_schemas.py - multiqc/
modules/ , Python, 87 linesfgumi/ tests/ test_umis.py - multiqc/
modules/ , Python, 40 linesfgumi/ tests/ test_yields.py - multiqc/
modules/ , Python, 168 linesfgumi/ umis.py - multiqc/
modules/ , Python, 220 linesfgumi/ util.py - multiqc/
modules/ , Python, 122 linesfgumi/ yields.py - multiqc/
modules/ , Python, 3 linesfiltlong/ __init__.py - multiqc/
modules/ , Python, 108 linesfiltlong/ filtlong.py - multiqc/
modules/ , Python, 3 linesflash/ __init__.py - multiqc/
modules/ , Python, 300 linesflash/ flash.py - multiqc/
modules/ , Python, 3 linesflexbar/ __init__.py - multiqc/
modules/ , Python, 133 linesflexbar/ flexbar.py - multiqc/
modules/ , Python, 3 linesfreyja/ __init__.py - multiqc/
modules/ , Python, 140 linesfreyja/ freyja.py - multiqc/
modules/ , Python, 3 linesganon/ __init__.py - multiqc/
modules/ , Python, 343 linesganon/ ganon.py - multiqc/
modules/ , Python, 3 linesgatk/ __init__.py - multiqc/
modules/ , Python, 409 linesgatk/ analyze_saturation_mutag enesis.py - multiqc/
modules/ , Python, 223 linesgatk/ base_recalibrator.py - multiqc/
modules/ , Python, 69 linesgatk/ gatk.py - multiqc/
modules/ , Python, 48 linesgatk/ utils.py - multiqc/
modules/ , Python, 268 linesgatk/ varianteval.py - multiqc/
modules/ , Python, 3 linesgffcompare/ __init__.py - multiqc/
modules/ , Python, 280 linesgffcompare/ gffcompare.py - multiqc/
modules/ , Python, 3 linesglimpse/ __init__.py - multiqc/
modules/ , Python, 220 linesglimpse/ err_grp.py - multiqc/
modules/ , Python, 294 linesglimpse/ err_spl.py - multiqc/
modules/ , Python, 45 linesglimpse/ glimpse.py - multiqc/
modules/ , Python, 3 linesgoleft_indexcov/ __init__.py - multiqc/
modules/ , Python, 237 linesgoleft_indexcov/ goleft_indexcov.py - multiqc/
modules/ , Python, 3 linesgopeaks/ __init__.py - multiqc/
modules/ , Python, 112 linesgopeaks/ gopeaks.py - multiqc/
modules/ , Python, 3 linesgtdbtk/ __init__.py - multiqc/
modules/ , Python, 192 linesgtdbtk/ gtdbtk.py - multiqc/
modules/ , Python, 3 lineshaplocheck/ __init__.py - multiqc/
modules/ , Python, 112 lineshaplocheck/ haplocheck.py - multiqc/
modules/ , Python, 3 lineshappy/ __init__.py - multiqc/
modules/ , Python, 293 lineshappy/ happy.py - multiqc/
modules/ , Python, 3 lineshicexplorer/ __init__.py - multiqc/
modules/ , Python, 338 lineshicexplorer/ hicexplorer.py - multiqc/
modules/ , Python, 3 lineshicpro/ __init__.py - multiqc/
modules/ , Python, 487 lineshicpro/ hicpro.py - multiqc/
modules/ , Python, 3 lineshicstuff/ __init__.py - multiqc/
modules/ , Python, 363 lineshicstuff/ hicstuff.py - multiqc/
modules/ , Python, 3 lineshicup/ __init__.py - multiqc/
modules/ , Python, 279 lineshicup/ hicup.py - multiqc/
modules/ , Python, 3 lineshifi_trimmer/ __init__.py - multiqc/
modules/ , Python, 293 lineshifi_trimmer/ hifi_trimmer.py - multiqc/
modules/ , Python, 3 lineshifiasm/ __init__.py - multiqc/
modules/ , Python, 109 lineshifiasm/ hifiasm.py - multiqc/
modules/ , Python, 3 lineshisat2/ __init__.py - multiqc/
modules/ , Python, 186 lineshisat2/ hisat2.py - multiqc/
modules/ , Python, 3 lineshomer/ __init__.py - multiqc/
modules/ , Python, 82 lineshomer/ findpeaks.py - multiqc/
modules/ , Python, 76 lineshomer/ homer.py - multiqc/
modules/ , Python, 480 lineshomer/ tagdirectory.py - multiqc/
modules/ , Python, 3 lineshops/ __init__.py - multiqc/
modules/ , Python, 150 lineshops/ hops.py - multiqc/
modules/ , Python, 3 lineshostile/ __init__.py - multiqc/
modules/ , Python, 142 lineshostile/ hostile.py - multiqc/
modules/ , Python, 3 lineshtseq/ __init__.py - multiqc/
modules/ , Python, 136 lineshtseq/ htseq.py - multiqc/
modules/ , Python, 3 lineshumid/ __init__.py - multiqc/
modules/ , Python, 63 lineshumid/ clusters.py - multiqc/
modules/ , Python, 64 lineshumid/ counts.py - multiqc/
modules/ , Python, 46 lineshumid/ humid.py - multiqc/
modules/ , Python, 63 lineshumid/ neighbours.py - multiqc/
modules/ , Python, 130 lineshumid/ stats.py - multiqc/
modules/ , Python, 3 linesinterop/ __init__.py - multiqc/
modules/ , Python, 493 linesinterop/ interop.py - multiqc/
modules/ , Python, 3 linesisoseq/ __init__.py - multiqc/
modules/ , Python, 261 linesisoseq/ isoseq.py - multiqc/
modules/ , Python, 3 linesivar/ __init__.py - multiqc/
modules/ , Python, 177 linesivar/ ivar.py - multiqc/
modules/ , Python, 3 linesjcvi/ __init__.py - multiqc/
modules/ , Python, 373 linesjcvi/ jcvi.py - multiqc/
modules/ , Python, 3 linesjellyfish/ __init__.py - multiqc/
modules/ , Python, 122 linesjellyfish/ jellyfish.py - multiqc/
modules/ , Python, 3 lineskaiju/ __init__.py - multiqc/
modules/ , Python, 301 lineskaiju/ kaiju.py - multiqc/
modules/ , Python, 3 lineskallisto/ __init__.py - multiqc/
modules/ , Python, 147 lineskallisto/ kallisto.py - multiqc/
modules/ , Python, 3 lineskat/ __init__.py - multiqc/
modules/ , Python, 116 lineskat/ kat.py - multiqc/
modules/ , Python, 3 lineskraken/ __init__.py - multiqc/
modules/ , Python, 470 lineskraken/ kraken.py - multiqc/
modules/ , Python, 3 linesleehom/ __init__.py - multiqc/
modules/ , Python, 96 linesleehom/ leehom.py - multiqc/
modules/ , Python, 3 lineslibrarian/ __init__.py - multiqc/
modules/ , Python, 186 lineslibrarian/ librarian.py - multiqc/
modules/ , Python, 3 lineslima/ __init__.py - multiqc/
modules/ , Python, 366 lineslima/ lima.py - multiqc/
modules/ , Python, 3 lineslongranger/ __init__.py - multiqc/
modules/ , Python, 427 lineslongranger/ longranger.py - multiqc/
modules/ , Python, 3 linesmacs2/ __init__.py - multiqc/
modules/ , Python, 160 linesmacs2/ macs2.py - multiqc/
modules/ , Python, 3 linesmalt/ __init__.py - multiqc/
modules/ , Python, 192 linesmalt/ malt.py - multiqc/
modules/ , Python, 3 linesmapdamage/ __init__.py - multiqc/
modules/ , Python, 291 linesmapdamage/ mapdamage.py - multiqc/
modules/ , Python, 3 linesmegahit/ __init__.py - multiqc/
modules/ , Python, 147 linesmegahit/ megahit.py - multiqc/
modules/ , Python, 3 linesmetaphlan/ __init__.py - multiqc/
modules/ , Python, 341 linesmetaphlan/ metaphlan.py - multiqc/
modules/ , Python, 3 linesmethurator/ __init__.py - multiqc/
modules/ , Python, 370 linesmethurator/ methurator.py - multiqc/
modules/ , Python, 3 linesmethylqa/ __init__.py - multiqc/
modules/ , Python, 129 linesmethylqa/ methylqa.py - multiqc/
modules/ , Python, 3 linesmgikit/ __init__.py - multiqc/
modules/ , Python, 507 linesmgikit/ mgikit.py - multiqc/
modules/ , Python, 3 linesmgnifam/ __init__.py - multiqc/
modules/ , Python, 330 linesmgnifam/ mgnifam.py - multiqc/
modules/ , Python, 1 linemgnifam/ tests/ __init__.py - multiqc/
modules/ , Python, 163 linesmgnifam/ tests/ test_mgnifam.py - multiqc/
modules/ , Python, 3 linesminionqc/ __init__.py - multiqc/
modules/ , Python, 263 linesminionqc/ minionqc.py - multiqc/
modules/ , Python, 3 linesmirtop/ __init__.py - multiqc/
modules/ , Python, 260 linesmirtop/ mirtop.py - multiqc/
modules/ , Python, 3 linesmirtrace/ __init__.py - multiqc/
modules/ , Python, 369 linesmirtrace/ mirtrace.py - multiqc/
modules/ , Python, 3 linesmosaicatcher/ __init__.py - multiqc/
modules/ , Python, 175 linesmosaicatcher/ mosaicatcher.py - multiqc/
modules/ , Python, 3 linesmosdepth/ __init__.py - multiqc/
modules/ , Python, 609 linesmosdepth/ mosdepth.py - multiqc/
modules/ , Python, 1 linemosdepth/ tests/ __init__.py - multiqc/
modules/ , Python, 21 linesmosdepth/ tests/ test_gen_stats.py - multiqc/
modules/ , Python, 59 linesmosdepth/ tests/ test_xy_coverage.py - multiqc/
modules/ , Python, 3 linesmotus/ __init__.py - multiqc/
modules/ , Python, 252 linesmotus/ motus.py - multiqc/
modules/ , Python, 3 linesmtnucratio/ __init__.py - multiqc/
modules/ , Python, 114 linesmtnucratio/ mtnucratio.py - multiqc/
modules/ , Python, 3 linesmultivcfanalyzer/ __init__.py - multiqc/
modules/ , Python, 290 linesmultivcfanalyzer/ multivcfanalyzer.py - multiqc/
modules/ , Python, 3 linesnanoq/ __init__.py - multiqc/
modules/ , Python, 321 linesnanoq/ nanoq.py - multiqc/
modules/ , Python, 3 linesnanostat/ __init__.py - multiqc/
modules/ , Python, 486 linesnanostat/ nanostat.py - multiqc/
modules/ , Python, 3 linesnextclade/ __init__.py - multiqc/
modules/ , Python, 321 linesnextclade/ nextclade.py - multiqc/
modules/ , Python, 3 linesngsbits/ __init__.py - multiqc/
modules/ , Python, 196 linesngsbits/ mappingqc.py - multiqc/
modules/ , Python, 47 linesngsbits/ ngsbits.py - multiqc/
modules/ , Python, 176 linesngsbits/ readqc.py - multiqc/
modules/ , Python, 111 linesngsbits/ samplegender.py - multiqc/
modules/ , Python, 28 linesngsbits/ utils.py - multiqc/
modules/ , Python, 3 linesngsderive/ __init__.py - multiqc/
modules/ , Python, 474 linesngsderive/ ngsderive.py - multiqc/
modules/ , Python, 3 linesnonpareil/ __init__.py - multiqc/
modules/ , Python, 404 linesnonpareil/ nonpareil.py - multiqc/
modules/ , Python, 3 linesodgi/ __init__.py - multiqc/
modules/ , Python, 470 linesodgi/ odgi.py - multiqc/
modules/ , Python, 3 linesoptitype/ __init__.py - multiqc/
modules/ , Python, 140 linesoptitype/ optitype.py - multiqc/
modules/ , Python, 3 linespairtools/ __init__.py - multiqc/
modules/ , Python, 346 linespairtools/ pairtools.py - multiqc/
modules/ , Python, 276 linespairtools/ utils.py - multiqc/
modules/ , Python, 3 linespangolin/ __init__.py - multiqc/
modules/ , Python, 259 linespangolin/ pangolin.py - multiqc/
modules/ , Python, 3 linespbmarkdup/ __init__.py - multiqc/
modules/ , Python, 141 linespbmarkdup/ pbmarkdup.py - multiqc/
modules/ , Python, 3 linespeddy/ __init__.py - multiqc/
modules/ , Python, 348 linespeddy/ peddy.py - multiqc/
modules/ , Python, 3 linespercolator/ __init__.py - multiqc/
modules/ , Python, 118 linespercolator/ percolator.py - multiqc/
modules/ , Python, 3 linesphantompeakqualtools/ __init__.py - multiqc/
modules/ , Python, 93 linesphantompeakqualtools/ phantompeakqualtools.py - multiqc/
modules/ , Python, 160 linespicard/ AlignmentSummaryMetrics. py - multiqc/
modules/ , Python, 167 linespicard/ BaseDistributionByCycleM etrics.py - multiqc/
modules/ , Python, 390 linespicard/ CrosscheckFingerprints.p y - multiqc/
modules/ , Python, 168 linespicard/ ExtractIlluminaBarcodes. py - multiqc/
modules/ , Python, 143 linespicard/ GcBiasMetrics.py - multiqc/
modules/ , Python, 439 linespicard/ HsMetrics.py - multiqc/
modules/ , Python, 126 linespicard/ IlluminaBasecallingMetri cs.py - multiqc/
modules/ , Python, 122 linespicard/ IlluminaLaneMetrics.py - multiqc/
modules/ , Python, 205 linespicard/ InsertSizeMetrics.py - multiqc/
modules/ , Python, 325 linespicard/ MarkDuplicates.py - multiqc/
modules/ , Python, 64 linespicard/ MarkIlluminaAdapters.py - multiqc/
modules/ , Python, 105 linespicard/ OxoGMetrics.py - multiqc/
modules/ , Python, 171 linespicard/ QualityByCycleMetrics.py - multiqc/
modules/ , Python, 60 linespicard/ QualityScoreDistribution Metrics.py - multiqc/
modules/ , Python, 93 linespicard/ QualityYieldMetrics.py - multiqc/
modules/ , Python, 213 linespicard/ RnaSeqMetrics.py - multiqc/
modules/ , Python, 165 linespicard/ RrbsSummaryMetrics.py - multiqc/
modules/ , Python, 147 linespicard/ TargetedPcrMetrics.py - multiqc/
modules/ , Python, 345 linespicard/ ValidateSamFile.py - multiqc/
modules/ , Python, 406 linespicard/ VariantCallingMetrics.py - multiqc/
modules/ , Python, 240 linespicard/ WgsMetrics.py - multiqc/
modules/ , Python, 3 linespicard/ __init__.py - multiqc/
modules/ , Python, 312 linespicard/ picard.py - multiqc/
modules/ , Python, 1 linepicard/ tests/ __init__.py - multiqc/
modules/ , Python, 54 linespicard/ tests/ test_picard.py - multiqc/
modules/ , Python, 190 linespicard/ util.py - multiqc/
modules/ , Python, 3 linesporechop/ __init__.py - multiqc/
modules/ , Python, 286 linesporechop/ porechop.py - multiqc/
modules/ , Python, 3 linespreseq/ __init__.py - multiqc/
modules/ , Python, 489 linespreseq/ preseq.py - multiqc/
modules/ , Python, 3 linesprinseqplusplus/ __init__.py - multiqc/
modules/ , Python, 143 linesprinseqplusplus/ prinseqplusplus.py - multiqc/
modules/ , Python, 3 linesprokka/ __init__.py - multiqc/
modules/ , Python, 249 linesprokka/ prokka.py - multiqc/
modules/ , Python, 3 linespurple/ __init__.py - multiqc/
modules/ , Python, 225 linespurple/ purple.py - multiqc/
modules/ , Python, 3 linespychopper/ __init__.py - multiqc/
modules/ , Python, 200 linespychopper/ pychopper.py - multiqc/
modules/ , Python, 3 linespycoqc/ __init__.py - multiqc/
modules/ , Python, 325 linespycoqc/ pycoqc.py - multiqc/
modules/ , Python, 3 linesqc3C/ __init__.py - multiqc/
modules/ , Python, 1,025 linesqc3C/ qc3C.py - multiqc/
modules/ , Python, 3 linesqorts/ __init__.py - multiqc/
modules/ , Python, 315 linesqorts/ qorts.py - multiqc/
modules/ , Python, 765 linesqualimap/ QM_BamQC.py - multiqc/
modules/ , Python, 301 lines, 1 matchqualimap/ QM_RNASeq.py - multiqc/
modules/ , Python, 115 linesqualimap/ __init__.py - multiqc/
modules/ , Python, 78 linesqualimap/ qualimap.py - multiqc/
modules/ , Python, 3 linesquast/ __init__.py - multiqc/
modules/ , Python, 409 linesquast/ quast.py - multiqc/
modules/ , Python, 3 linesribodetector/ __init__.py - multiqc/
modules/ , Python, 162 linesribodetector/ ribodetector.py - multiqc/
modules/ , Python, 3 linesribotish/ __init__.py - multiqc/
modules/ , Python, 479 linesribotish/ ribotish.py - multiqc/
modules/ , Python, 1 lineribotish/ tests/ __init__.py - multiqc/
modules/ , Python, 214 linesribotish/ tests/ test_ribotish.py - multiqc/
modules/ , Python, 3 linesribowaltz/ __init__.py - multiqc/
modules/ , Python, 561 linesribowaltz/ ribowaltz.py - multiqc/
modules/ , Python, 3 linesriker/ __init__.py - multiqc/
modules/ , Python, 288 linesriker/ alignment.py - multiqc/
modules/ , Python, 215 linesriker/ basic.py - multiqc/
modules/ , Python, 132 linesriker/ gcbias.py - multiqc/
modules/ , Python, 385 linesriker/ hybcap.py - multiqc/
modules/ , Python, 152 linesriker/ isize.py - multiqc/
modules/ , Python, 69 linesriker/ riker.py - multiqc/
modules/ , Python, 1 lineriker/ tests/ __init__.py - multiqc/
modules/ , Python, 320 linesriker/ tests/ test_riker.py - multiqc/
modules/ , Python, 59 linesriker/ util.py - multiqc/
modules/ , Python, 372 linesriker/ wgs.py - multiqc/
modules/ , Python, 3 linesrna_seqc/ __init__.py - multiqc/
modules/ , Python, 431 linesrna_seqc/ rna_seqc.py - multiqc/
modules/ , Python, 3 linesrockhopper/ __init__.py - multiqc/
modules/ , Python, 206 linesrockhopper/ rockhopper.py - multiqc/
modules/ , Python, 3 linesrsem/ __init__.py - multiqc/
modules/ , Python, 187 linesrsem/ rsem.py - multiqc/
modules/ , Python, 3 linesrseqc/ __init__.py - multiqc/
modules/ , Python, 138 linesrseqc/ bam_stat.py - multiqc/
modules/ , Python, 123 linesrseqc/ gene_body_coverage.py - multiqc/
modules/ , Python, 90 linesrseqc/ infer_experiment.py - multiqc/
modules/ , Python, 81 linesrseqc/ inner_distance.py - multiqc/
modules/ , Python, 105 linesrseqc/ junction_annotation.py - multiqc/
modules/ , Python, 90 linesrseqc/ junction_saturation.py - multiqc/
modules/ , Python, 145 linesrseqc/ read_distribution.py - multiqc/
modules/ , Python, 67 linesrseqc/ read_duplication.py - multiqc/
modules/ , Python, 80 linesrseqc/ read_gc.py - multiqc/
modules/ , Python, 92 linesrseqc/ rseqc.py - multiqc/
modules/ , Python, 66 linesrseqc/ tin.py - multiqc/
modules/ , Python, 3 linessalmon/ __init__.py - multiqc/
modules/ , Python, 155 linessalmon/ salmon.py - multiqc/
modules/ , Python, 3 linessambamba/ __init__.py - multiqc/
modules/ , Python, 170 linessambamba/ markdup.py - multiqc/
modules/ , Python, 71 linessambamba/ sambamba.py - multiqc/
modules/ , Python, 3 linessamblaster/ __init__.py - multiqc/
modules/ , Python, 122 linessamblaster/ samblaster.py - multiqc/
modules/ , Python, 3 linessamtools/ __init__.py - multiqc/
modules/ , Python, 215 linessamtools/ ampliconclip.py - multiqc/
modules/ , Python, 297 linessamtools/ coverage.py - multiqc/
modules/ , Python, 203 linessamtools/ flagstat.py - multiqc/
modules/ , Python, 175 linessamtools/ idxstats.py - multiqc/
modules/ , Python, 189 linessamtools/ markdup.py - multiqc/
modules/ , Python, 86 linessamtools/ rmdup.py - multiqc/
modules/ , Python, 170 linessamtools/ samtools.py - multiqc/
modules/ , Python, 317 linessamtools/ stats.py - multiqc/
modules/ , Python, 1 linesamtools/ tests/ __init__.py - multiqc/
modules/ , Python, 82 linessamtools/ tests/ test_coverage.py - multiqc/
modules/ , Python, 126 linessamtools/ tests/ test_flagstat.py - multiqc/
modules/ , Python, 3 linessargasso/ __init__.py - multiqc/
modules/ , Python, 153 linessargasso/ sargasso.py - multiqc/
modules/ , Python, 3 linesseqera_cli/ __init__.py - multiqc/
modules/ , Python, 411 linesseqera_cli/ seqera_cli.py - multiqc/
modules/ , Python, 3 linesseqfu/ __init__.py - multiqc/
modules/ , Python, 52 linesseqfu/ seqfu.py - multiqc/
modules/ , Python, 300 linesseqfu/ stats.py - multiqc/
modules/ , Python, 70 linesseqfu/ test/ test_stats.py - multiqc/
modules/ , Python, 3 linesseqkit/ __init__.py - multiqc/
modules/ , Python, 57 linesseqkit/ seqkit.py - multiqc/
modules/ , Python, 316 linesseqkit/ stats.py - multiqc/
modules/ , Python, 1 lineseqkit/ tests/ __init__.py - multiqc/
modules/ , Python, 148 linesseqkit/ tests/ test_stats.py - multiqc/
modules/ , Python, 3 linessequali/ __init__.py - multiqc/
modules/ , Python, 928 linessequali/ sequali.py - multiqc/
modules/ , Python, 3 linesseqwho/ __init__.py - multiqc/
modules/ , Python, 262 linesseqwho/ seqwho.py - multiqc/
modules/ , Python, 3 linesseqyclean/ __init__.py - multiqc/
modules/ , Python, 177 linesseqyclean/ seqyclean.py - multiqc/
modules/ , Python, 3 linessexdeterrmine/ __init__.py - multiqc/
modules/ , Python, 179 linessexdeterrmine/ sexdeterrmine.py - multiqc/
modules/ , Python, 3 linessickle/ __init__.py - multiqc/
modules/ , Python, 132 linessickle/ sickle.py - multiqc/
modules/ , Python, 3 linessincei/ __init__.py - multiqc/
modules/ , Python, 15 linessincei/ _helpers.py - multiqc/
modules/ , Python, 180 linessincei/ scCountQC.py - multiqc/
modules/ , Python, 263 linessincei/ scFilterStats.py - multiqc/
modules/ , Python, 71 linessincei/ sincei.py - multiqc/
modules/ , Python, 3 linesskewer/ __init__.py - multiqc/
modules/ , Python, 157 linesskewer/ skewer.py - multiqc/
modules/ , Python, 3 linesslamdunk/ __init__.py - multiqc/
modules/ , Python, 621 linesslamdunk/ slamdunk.py - multiqc/
modules/ , Python, 3 linessnippy/ __init__.py - multiqc/
modules/ , Python, 263 linessnippy/ snippy.py - multiqc/
modules/ , Python, 3 linessnpeff/ __init__.py - multiqc/
modules/ , Python, 359 linessnpeff/ snpeff.py - multiqc/
modules/ , Python, 3 linessnpsplit/ __init__.py - multiqc/
modules/ , Python, 292 linessnpsplit/ snpsplit.py - multiqc/
modules/ , Python, 3 linessomalier/ __init__.py - multiqc/
modules/ , Python, 719 linessomalier/ somalier.py - multiqc/
modules/ , Python, 3 linessompy/ __init__.py - multiqc/
modules/ , Python, 206 linessompy/ sompy.py - multiqc/
modules/ , Python, 3 linessortmerna/ __init__.py - multiqc/
modules/ , Python, 164 linessortmerna/ sortmerna.py - multiqc/
modules/ , Python, 3 linessourmash/ __init__.py - multiqc/
modules/ , Python, 81 linessourmash/ compare.py - multiqc/
modules/ , Python, 219 linessourmash/ gather.py - multiqc/
modules/ , Python, 56 linessourmash/ sourmash.py - multiqc/
modules/ , Python, 3 linesspaceranger/ __init__.py - multiqc/
modules/ , Python, 348 linesspaceranger/ count.py - multiqc/
modules/ , Python, 47 linesspaceranger/ spaceranger.py - multiqc/
modules/ , Python, 81 linesspaceranger/ utils.py - multiqc/
modules/ , Python, 3 linesstacks/ __init__.py - multiqc/
modules/ , Python, 301 linesstacks/ stacks.py - multiqc/
modules/ , Python, 3 linesstar/ __init__.py - multiqc/
modules/ , Python, 413 linesstar/ star.py - multiqc/
modules/ , Python, 3 linessupernova/ __init__.py - multiqc/
modules/ , Python, 550 linessupernova/ supernova.py - multiqc/
modules/ , Python, 3 linessylphtax/ __init__.py - multiqc/
modules/ , Python, 360 linessylphtax/ sylphtax.py - multiqc/
modules/ , Python, 3 linestelseq/ __init__.py - multiqc/
modules/ , Python, 85 linestelseq/ telseq.py - multiqc/
modules/ , Python, 3 linestheta2/ __init__.py - multiqc/
modules/ , Python, 106 linestheta2/ theta2.py - multiqc/
modules/ , Python, 3 linestophat/ __init__.py - multiqc/
modules/ , Python, 144 linestophat/ tophat.py - multiqc/
modules/ , Python, 3 linestrim_galore/ __init__.py - multiqc/
modules/ , Python, 603 lines, 1 matchtrim_galore/ trim_galore.py - multiqc/
modules/ , Python, 3 linestrimmomatic/ __init__.py - multiqc/
modules/ , Python, 169 linestrimmomatic/ trimmomatic.py - multiqc/
modules/ , Python, 3 linestruvari/ __init__.py - multiqc/
modules/ , Python, 307 linestruvari/ truvari.py - multiqc/
modules/ , Python, 3 linesumicollapse/ __init__.py - multiqc/
modules/ , Python, 1 lineumicollapse/ tests/ __init__.py - multiqc/
modules/ , Python, 79 linesumicollapse/ tests/ test_umicollapse.py - multiqc/
modules/ , Python, 220 linesumicollapse/ umicollapse.py - multiqc/
modules/ , Python, 3 linesumitools/ __init__.py - multiqc/
modules/ , Python, 1 lineumitools/ tests/ __init__.py - multiqc/
modules/ , Python, 48 linesumitools/ tests/ test_umitools.py - multiqc/
modules/ , Python, 402 linesumitools/ umitools.py - multiqc/
modules/ , Python, 3 linesvarscan2/ __init__.py - multiqc/
modules/ , Python, 247 linesvarscan2/ varscan2.py - multiqc/
modules/ , Python, 3 linesvcftools/ __init__.py - multiqc/
modules/ , Python, 93 linesvcftools/ relatedness2.py - multiqc/
modules/ , Python, 65 linesvcftools/ tstv_by_count.py - multiqc/
modules/ , Python, 66 linesvcftools/ tstv_by_qual.py - multiqc/
modules/ , Python, 53 linesvcftools/ tstv_summary.py - multiqc/
modules/ , Python, 82 linesvcftools/ vcftools.py - multiqc/
modules/ , Python, 3 linesvep/ __init__.py - multiqc/
modules/ , Python, 405 linesvep/ vep.py - multiqc/
modules/ , Python, 3 linesverifybamid/ __init__.py - multiqc/
modules/ , Python, 355 linesverifybamid/ verifybamid.py - multiqc/
modules/ , Python, 3 linesvg/ __init__.py - multiqc/
modules/ , Python, 314 linesvg/ vg.py - multiqc/
modules/ , Python, 3 lineswhatshap/ __init__.py - multiqc/
modules/ , Python, 432 lineswhatshap/ whatshap.py - multiqc/
modules/ , Python, 3 linesxengsort/ __init__.py - multiqc/
modules/ , Python, 181 linesxengsort/ xengsort.py - multiqc/
modules/ , Python, 1 linexenium/ __init__.py - multiqc/
modules/ , Python, 313 linesxenium/ xenium.py - multiqc/
modules/ , Python, 3 linesxenome/ __init__.py - multiqc/
modules/ , Python, 324 linesxenome/ xenome.py - multiqc/
multiqc.py , Python, 749 lines - multiqc/
plots/ , Python, 1 line__init__.py - multiqc/
plots/ , Python, 1,129 linesbargraph.py - multiqc/
plots/ , Python, 563 linesbox.py - multiqc/
plots/ , Python, 775 linesheatmap.py - multiqc/
plots/ , Python, 896 lineslinegraph.py - multiqc/
plots/ , Python, 2,138 linesplot.py - multiqc/
plots/ , Python, 568 linesscatter.py - multiqc/
plots/ , Python, 50 linestable.py - multiqc/
plots/ , Python, 1,387 linestable_object.py - multiqc/
plots/ , Python, 71 linesutils.py - multiqc/
plots/ , Python, 1,198 linesviolin.py - multiqc/
report.py , Python, 1,270 lines - multiqc/
templates/ , Python, 1 line__init__.py - multiqc/
templates/ , Python, 23 linesdefault/ __init__.py - multiqc/
templates/ , JavaScript, 2 linesdefault/ assets/ js/ packages/ FileSaver.min.js - multiqc/
templates/ , JavaScript, 4 linesdefault/ assets/ js/ packages/ jquery-3.1.1.min.js - multiqc/
templates/ , JavaScript, 7 linesdefault/ assets/ js/ packages/ jquery-ui.min.js - multiqc/
templates/ , JavaScript, 1 linedefault/ assets/ js/ packages/ jquery.tablesorter.min.j s - multiqc/
templates/ , JavaScript, 13 linesdefault/ assets/ js/ packages/ jszip.min.js - multiqc/
templates/ , JavaScript, 2 linesdefault/ assets/ js/ packages/ pako_inflate.min.js - multiqc/
templates/ , JavaScript, 18 linesdefault/ assets/ js/ packages/ plotly-3.1.2.custom.min. js - multiqc/
templates/ , JavaScript, 3 lines, 1 matchdefault/ assets/ js/ packages/ showdown.min.js - multiqc/
templates/ , JavaScript, 1 linedefault/ compiled/ js/ multiqc.min.js - multiqc/
templates/ , JavaScript, 667 linesdefault/ src/ js/ ai-helpers.js - multiqc/
templates/ , JavaScript, 555 linesdefault/ src/ js/ ai.js - multiqc/
templates/ , JavaScript, 112 linesdefault/ src/ js/ color-mode.js - multiqc/
templates/ , JavaScript, 50 linesdefault/ src/ js/ decompress.js - multiqc/
templates/ , JavaScript, 134 linesdefault/ src/ js/ doi.js - multiqc/
templates/ , JavaScript, 42 linesdefault/ src/ js/ flat.js - multiqc/
templates/ , JavaScript, 48 linesdefault/ src/ js/ main-js.js - multiqc/
templates/ , JavaScript, 5 linesdefault/ src/ js/ main.js - multiqc/
templates/ , JavaScript, 114 linesdefault/ src/ js/ multiqc.js - multiqc/
templates/ , JavaScript, 363 linesdefault/ src/ js/ plots/ bar.js - multiqc/
templates/ , JavaScript, 213 linesdefault/ src/ js/ plots/ box.js - multiqc/
templates/ , JavaScript, 193 linesdefault/ src/ js/ plots/ heatmap.js - multiqc/
templates/ , JavaScript, 174 linesdefault/ src/ js/ plots/ line.js - multiqc/
templates/ , JavaScript, 144 linesdefault/ src/ js/ plots/ scatter.js - multiqc/
templates/ , JavaScript, 455 linesdefault/ src/ js/ plots/ violin.js - multiqc/
templates/ , JavaScript, 803 linesdefault/ src/ js/ plotting.js - multiqc/
templates/ , JavaScript, 15 linesdefault/ src/ js/ render.js - multiqc/
templates/ , JavaScript, 260 linesdefault/ src/ js/ statuses.js - multiqc/
templates/ , JavaScript, 628 linesdefault/ src/ js/ tables.js - multiqc/
templates/ , JavaScript, 107 linesdefault/ src/ js/ toolbox.js - multiqc/
templates/ , JavaScript, 254 linesdefault/ src/ js/ toolbox/ ai.js - multiqc/
templates/ , JavaScript, 56 linesdefault/ src/ js/ toolbox/ citations.js - multiqc/
templates/ , JavaScript, 60 linesdefault/ src/ js/ toolbox/ constants.js - multiqc/
templates/ , JavaScript, 212 linesdefault/ src/ js/ toolbox/ export.js - multiqc/
templates/ , JavaScript, 72 linesdefault/ src/ js/ toolbox/ filters.js - multiqc/
templates/ , JavaScript, 46 linesdefault/ src/ js/ toolbox/ help.js - multiqc/
templates/ , JavaScript, 155 linesdefault/ src/ js/ toolbox/ hide.js - multiqc/
templates/ , JavaScript, 116 linesdefault/ src/ js/ toolbox/ highlights.js - multiqc/
templates/ , JavaScript, 168 linesdefault/ src/ js/ toolbox/ rename.js - multiqc/
templates/ , JavaScript, 445 linesdefault/ src/ js/ toolbox/ save-load.js - multiqc/
templates/ , JavaScript, 141 linesdefault/ src/ js/ toolbox/ utils.js - multiqc/
templates/ , JavaScript, 26 linesdefault/ vite.config.js - multiqc/
templates/ , Python, 27 linesdisco/ __init__.py - multiqc/
templates/ , JavaScript, 1 linedisco/ compiled/ js/ multiqc.min.js - multiqc/
templates/ , JavaScript, 5 linesdisco/ src/ js/ main.js - multiqc/
templates/ , JavaScript, 26 linesdisco/ vite.config.js - multiqc/
templates/ , Python, 15 linesgathered/ __init__.py - multiqc/
templates/ , Python, 18 linesgeo/ __init__.py - multiqc/
templates/ , Python, 22 linesoriginal/ __init__.py - multiqc/
templates/ , JavaScript, 662 linesoriginal/ assets/ js/ ai-helpers.js - multiqc/
templates/ , JavaScript, 570 linesoriginal/ assets/ js/ ai.js - multiqc/
templates/ , JavaScript, 47 linesoriginal/ assets/ js/ decompress.js - multiqc/
templates/ , JavaScript, 42 linesoriginal/ assets/ js/ flat.js - multiqc/
templates/ , JavaScript, 103 linesoriginal/ assets/ js/ multiqc.js - multiqc/
templates/ , JavaScript, 2 linesoriginal/ assets/ js/ packages/ FileSaver.min.js - multiqc/
templates/ , JavaScript, 7 linesoriginal/ assets/ js/ packages/ bootstrap.min.js - multiqc/
templates/ , JavaScript, 3 linesoriginal/ assets/ js/ packages/ dompurify.min.js - multiqc/
templates/ , JavaScript, 4 linesoriginal/ assets/ js/ packages/ jquery-3.1.1.min.js - multiqc/
templates/ , JavaScript, 7 linesoriginal/ assets/ js/ packages/ jquery-ui.min.js - multiqc/
templates/ , JavaScript, 1 lineoriginal/ assets/ js/ packages/ jquery.tablesorter.min.j s - multiqc/
templates/ , JavaScript, 1 lineoriginal/ assets/ js/ packages/ jquery.toast.min.js - multiqc/
templates/ , JavaScript, 13 linesoriginal/ assets/ js/ packages/ jszip.min.js - multiqc/
templates/ , JavaScript, 2 linesoriginal/ assets/ js/ packages/ pako_inflate.min.js - multiqc/
templates/ , JavaScript, 6,083 linesoriginal/ assets/ js/ packages/ plotly-2.27.0.js - multiqc/
templates/ , JavaScript, 8 linesoriginal/ assets/ js/ packages/ plotly-2.27.0.min.js - multiqc/
templates/ , JavaScript, 3 linesoriginal/ assets/ js/ packages/ showdown.min.js - multiqc/
templates/ , JavaScript, 193 linesoriginal/ assets/ js/ plots/ bar.js - multiqc/
templates/ , JavaScript, 210 linesoriginal/ assets/ js/ plots/ box.js - multiqc/
templates/ , JavaScript, 190 linesoriginal/ assets/ js/ plots/ heatmap.js - multiqc/
templates/ , JavaScript, 172 linesoriginal/ assets/ js/ plots/ line.js - multiqc/
templates/ , JavaScript, 141 linesoriginal/ assets/ js/ plots/ scatter.js - multiqc/
templates/ , JavaScript, 413 linesoriginal/ assets/ js/ plots/ violin.js - multiqc/
templates/ , JavaScript, 557 linesoriginal/ assets/ js/ plotting.js - multiqc/
templates/ , JavaScript, 15 linesoriginal/ assets/ js/ render.js - multiqc/
templates/ , JavaScript, 599 linesoriginal/ assets/ js/ tables.js - multiqc/
templates/ , JavaScript, 1,860 linesoriginal/ assets/ js/ toolbox.js - multiqc/
templates/ , Python, 27 linessections/ __init__.py - multiqc/
templates/ , Python, 23 linessimple/ __init__.py - multiqc/
types.py , Python, 147 lines - multiqc/
utils/ , Python, 1 line__init__.py - multiqc/
utils/ , Python, 12 linesconfig.py - multiqc/
utils/ , Python, 1,069 linesconfig_schema.py - multiqc/
utils/ , Python, 112 linesmaterial_icons.py - multiqc/
utils/ , Python, 60 linesmegaqc.py - multiqc/
utils/ , Python, 586 linesmqc_colour.py - multiqc/
utils/ , Python, 116 linespyaml_env.py - multiqc/
utils/ , Python, 12 linesreport.py - multiqc/
utils/ , Python, 16 linestesting.py - multiqc/
utils/ , Python, 393 linesutil_functions.py - multiqc/
validation.py , Python, 288 lines - scripts/
_config_schema_loader.py , Python, 78 lines - scripts/
build-assets.sh , Shell, 42 lines - scripts/
copy_material_icons.py , Python, 188 lines - scripts/
generate_config_docs.py , Python, 503 lines - scripts/
generate_config_schema.p , Python, 32 linesy - scripts/
generate_config_wizard.p , Python, 179 linesy - scripts/
make_module_docs.py , Python, 162 lines - scripts/
modules_info.py , Python, 45 lines - scripts/
post_preview_reports.py , Python, 183 lines - scripts/
print_changelog.py , Python, 167 lines - scripts/
print_missing_csp.py , Python, 61 lines - setup.py, Python, 7 lines
- tests/
__init__.py , Python, 1 line - tests/
conftest.py , Python, 22 lines - tests/
test_cmdline.py , Python, 105 lines - tests/
test_config_wizard.py , Python, 242 lines - tests/
test_custom_configs.py , Python, 166 lines - tests/
test_custom_content.py , Python, 996 lines - tests/
test_env_vars_config.py , Python, 144 lines - tests/
test_interactive.py , Python, 218 lines - tests/
test_modules_run.py , Python, 243 lines - tests/
test_natsort_files.py , Python, 73 lines - tests/
test_output_options.py , Python, 72 lines - tests/
test_plots.py , Python, 1,543 lines - tests/
test_rerun.py , Python, 455 lines - tests/
test_sample_name_cleanin , Python, 52 linesg.py - tests/
test_sample_renaming.py , Python, 219 lines - tests/
test_search_files.py , Python, 238 lines - tests/
test_section_alerts.py , Python, 57 lines - tests/
test_software_versions.p , Python, 253 linesy - LICENSE, License, 621 lines
- README.md, Text, 148 lines
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 723 scripts, each with its path and the digest of its content;
- 3 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
Datasets cited
- geo:GSE313171, at NCBI GEO; found in “Data and code availability”
Data and code availability
RNA-seq datasets have been deposited at GEO (GEO: GSE313171 (https://
This paper does not report original code and data analysis methods are described in the STAR Methods.
Any additional information required to re-analyse the data reported in this study is available from the lead contact upon request.
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 30 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 3 authors, 3 keywords, 4 funders, 39 references, 8 RRIDs.
Cite
This paper
Miller-Fleming, L., Au, W. H., & Whitworth, A. J. (2026). An optimized translating ribosome affinity purification protocol for low-abundance &
BibTeX
@article{millerfleming20
author = {Miller-Fleming, Leonor and Au, Wing Hei and Whitworth, Alexander J},
title = {{An optimized translating ribosome affinity purification protocol for low-abundance \&
journal = {iScience},
year = {2026},
month = mar,
volume = {29},
number = {5},
pages = {115530},
publisher = {Elsevier},
issn = {2589-0042},
doi = {10.1016/
url = {https://
pmid = {42028032},
pmcid = {PMC13099348}
}
RIS
TY - JOUR
AU - Miller-Fleming, Leonor
AU - Au, Wing Hei
AU - Whitworth, Alexander J
TI - An optimized translating ribosome affinity purification protocol for low-abundance &
T2 - iScience
J2 - iScience
PY - 2026
DA - 2026/
VL - 29
IS - 5
SP - 115530
SN - 2589-0042
PB - Elsevier
DO - 10.1016/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1016/
"type": "article-journal",
"title": "An optimized translating ribosome affinity purification protocol for low-abundance &
"container-title": "iScience",
"author": [
{
"family": "Miller-Fleming",
"given": "Leonor"
},
{
"family": "Au",
"given": "Wing Hei"
},
{
"family": "Whitworth",
"given": "Alexander J"
}
],
"container-title-short":
"volume": "29",
"issue": "5",
"page": "115530",
"DOI": "10.1016/
"PMID": "42028032",
"PMCID": "PMC13099348",
"ISSN": "2589-0042",
"publisher": "Elsevier",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
30
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.26508/lsa.202503571
- Reticulon-1 synthesis controls outgrowth and microtubule dynamics in injured cortical axons.Journal: Life science allianceIn common: cellular / molecular, 5 references
- [2] doi:10.1261/rna.080954.126 [code]
- Neuronal subtype-specific ribosomal protein mRNA expression.Journal: RNA (New York, N.Y.)In common: NumPy, cellular / molecular, 4 references
- [3] doi:10.26508/lsa.202603630 [code]
- Locally synthesized glycyl aminoacyl-tRNA synthetase is important for local translation in neurons.Journal: Life science allianceIn common: NumPy, cellular / molecular, 4 references
- [4] doi:10.1038/s41593-024-01619-1
- Messenger RNA transport on lysosomal vesicles maintains axonal mitochondrial homeostasis and prevents axonal degeneration.Journal: Nature neuroscienceIn common: cellular / molecular, 5 references
- [5] doi:10.1038/s41593-025-02062-6
- Muscle-derived miR-126 regulates TDP-43 axonal local synthesis and NMJ integrity in ALS models.Journal: Nature neuroscienceIn common: cellular / molecular, 5 references
- [6] doi:10.1038/s41467-023-40142-y [code]
- Glial Draper signaling triggers cross-neuron plasticity in bystander neurons after neuronal cell death in Drosophila.Journal: Nature communicationsIn common: NumPy, drosophila, cellular / molecular, 3 references
- [7] doi:10.1093/narmme/ugaf005 [code]
- Neuromuscular dysfunction in patient-derived FUS&
lt;sup& gt;R244RR& lt;/ sup& gt;-ALS iPSC model via axonal downregulation of neuromuscular junction proteins. Journal: NAR molecular medicineIn common: Pillow, NumPy, 3 references - [8] doi:10.1073/pnas.2502424122 [code]
- Neuronal processes contain the essential components for the late steps of ribosome biogenesis.Journal: Proceedings of the National Academy of Sciences of the United States of AmericaIn common: NumPy, cellular / molecular, 4 references
- [9] doi:10.1098/rsob.250101 [code]
- Unravelling axonal transcriptional landscapes: insights from induced pluripotent stem cell-derived cortical neurons and implications for motor neuron degeneration.Journal: Open biologyIn common: cellular / molecular, 4 references
- [10] doi:10.1186/s12929-024-01061-2
- CPEB2-activated axonal translation of VGLUT2 mRNA promotes glutamatergic transmission and presynaptic plasticity.Journal: Journal of biomedical scienceIn common: cellular / molecular, 4 references
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 1 repository of the authors' code, each at its verified commit and with its license, 723 scripts, and 3 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:05a0339e7bfef7ec…
Add the badge to the code's README
If you are an author or a maintainer of this paper's code, you can add this badge. It says what OSCR knows of the paper (its code, its validated tracing map) and links the code to this page. Paste one of these snippets under the README's title. Keep the two marks around it, so that the badge can be replaced in place and is never added twice. OSCR changes nothing in your repository.
Markdown
<!-- oscr-badge:start -->
[](https://openscicode.org/badge/doi/10.1016/j.isci.2026.115530)
<!-- oscr-badge:end -->reStructuredText
.. oscr-badge:start
.. image:: https://openscicode.org/badge/doi/10.1016/j.isci.2026.115530.svg
:target: https://openscicode.org/badge/doi/10.1016/j.isci.2026.115530
:alt: OSCR
.. oscr-badge:endHTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1016/j.isci.2026.115530"><img src="https://openscicode.org/badge/doi/10.1016/j.isci.2026.115530.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->On GitHub, open the README, choose Edit (the pencil), paste the snippet under the title, then "Commit changes".
If you choose to, you can have the badge kept up to date for you, with oscr badge --write from the command line or with the GitHub Action in your repository's workflows. Every other form and option (a card, AsciiDoc, LaTeX, shields.io) is on the badge page.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: code errors and mismatches between the code and the paper about this paper and its code, from readers and its authors, beside the paper and its tracing map.
Report a mismatch between the code and the paper · Report a code error (signed in)
Reproductions: reports from readers who ran the authors' code and did not get the paper's result, what they ran, with which environment, commit and data.
Report a reproduction failure (signed in)
Versions of its code: the releases of its code tied to a version of this paper (the preprint, the accepted manuscript, the version of record…), each with the tracing map versioned with it.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
