You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ RecMpox is a command-line tool that **flags potential recombination events** in
9
9
1.**References are required**: RecMpox compares your genomes against two reference sequences (for example, Clade Ia vs. Ib, or Ib vs. IIb), because recombination can only occur between two distinct lineages.
10
10
2.**Alignment and diagnostic SNPs**: The two reference genomes are aligned using [Squirrel](https://github.com/aineniamh/squirrel), so that the same genomic positions correspond across all sequences. RecMpox then identifies positions where the two references differ at the same coordinates. These positions are defined as diagnostic SNPs, because they distinguish between the reference lineages. Positions where the references are identical are ignored, as they do not provide information for detecting recombination.
11
11
3.**Consensus genome classification**: Your consensus genomes are aligned to the same references. At each diagnostic SNP, the base is classified as matching reference 1, reference 2, or other (e.g., gaps or ambiguous bases).
12
-
4.**Flagging potential recombinants**: If both references contribute at least 5% of the diagnostic positions in a genome, RecMpox flags it as a potential recombinant, since no single lineage clearly dominates.
12
+
4.**Flagging potential recombinants**: If both references contribute at least 10% of the diagnostic positions in a genome, RecMpox flags it as a potential recombinant, since no single lineage clearly dominates.
13
13
5.**Recombination tracts and breakpoints**: By examining the pattern of reference matches along the genome, RecMpox infers recombination tracts and identifies their breakpoints (start and end positions). To reduce false positives, runs of fewer than 2 consecutive diagnostic SNPs are ignored.
14
14
6 **Outputs**:
15
15
- TSV file: or each genome, reports the number and proportion of diagnostic SNPs matching each reference, the resulting recombinant flag, and summary statistics used for tract inference.
@@ -98,6 +98,7 @@ recmpox -i accessions.txt -o output -ref Ia,Ib # one accession per line or com
98
98
-`-ref1_g`, `-ref2_g`: Genotype labels for TSV/HTML (default from `-ref` or accession)
99
99
-`-include-indels`: Include diagnostic indels (default: SNPs only)
100
100
-`-min-indel-size`: Min indel length (bp) when using `-include-indels` (default: 100)
101
+
-`-m, --minor-ref-pct`: Minor reference % threshold for calling "potential recombinant" (default: 10). Increase to be more conservative (e.g. 15, 20).
101
102
-`-t, --threads`: Number of threads
102
103
-`-q, --quiet`: Log to file only
103
104
@@ -126,8 +127,8 @@ Intermediate files (e.g. diagnostic_snps.txt, Squirrel outputs) are written unde
126
127
127
128
## Interpretation
128
129
129
-
-**No recombinant**: One ref dominates (minor ref <5% of diagnostic sites).
130
-
-**Potential recombinant**: Both refs contribute ≥5% (minor ref % ≥ 5%). The HTML report shows recombination tracts (beginning/end of each tract) and breakpoints between tracts. A single tract means the genome is entirely one clade (no recombination).
130
+
-**No recombinant**: One ref dominates (minor ref <10% of diagnostic sites).
131
+
-**Potential recombinant**: Both refs contribute ≥10% (minor ref % ≥ 10%). The HTML report shows recombination tracts (beginning/end of each tract) and breakpoints between tracts. A single tract means the genome is entirely one clade (no recombination).
131
132
-**High pct_other**: Many Ns, gaps, or non-ref bases at diagnostic sites (poor coverage or alignment).
help=f"Minor reference %% threshold for calling 'potential recombinant' (default: {MINOR_REF_PCT_THRESHOLD:g}).",
1231
+
)
1223
1232
required.add_argument("-i", "-input", dest="input", type=Path, default=None, metavar="", help="FASTA file, directory of .fa/.fasta/.fna, .txt file of accessions (one per line or comma-separated), NCBI accession, or comma-separated accessions (e.g. -i ACC1,ACC2 or -i accessions.txt)")
1224
1233
required.add_argument("-ref", dest="ref", type=str, default=None, metavar="", help="Reference pair: two comma-separated labels among Ia, Ib, IIa, IIb (e.g. Ia,Ib or Ib,IIb). Uses built-in defaults. Either -ref or both -ref1 and -ref2 are required.")
1225
1234
required.add_argument("-ref1", type=str, default=None, metavar="", help="First reference: FASTA path or NCBI accession; overrides ref1 when using -ref. Required if -ref is not used.")
@@ -1239,6 +1248,11 @@ def main() -> None:
1239
1248
1240
1249
args=parser.parse_args()
1241
1250
1251
+
ifgetattr(args, "minor_ref_pct", None) isNone:
1252
+
args.minor_ref_pct=MINOR_REF_PCT_THRESHOLD
1253
+
ifargs.minor_ref_pct<0orargs.minor_ref_pct>100:
1254
+
parser.error("--minor-ref-pct must be between 0 and 100")
0 commit comments