GPatch 0.3.8__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
gpatch-0.5.0/PKG-INFO ADDED
@@ -0,0 +1,141 @@
1
+ Metadata-Version: 2.1
2
+ Name: gpatch
3
+ Version: 0.5.0
4
+ Summary: Assemble contigs into a chromosome-scalse pseudo-assembly using alignments to a reference sequence. Download the github repository for helper scripts to automate GPatch workflows, identify and correct misjoins in the contig assembly, produce dot-plots of patched pseudoassemblies to a reference assembly, and generate chrom.sizes and liftover chains for patched pseudoassemblies.
5
+ Home-page: https://github.com/adadiehl/GPatch
6
+ Author: Adam Diehl
7
+ Author-email: adadiehl@umich.edu
8
+ License: UNKNOWN
9
+ Description: # GPatch
10
+ ## Assemble contigs into a chromosome-scalse pseudo-assembly using alignments to a reference sequence.
11
+
12
+ Starting with alignments of contigs to a reference genome, produce a chromosome-scale pseudoassembly by patching gaps between mapped contigs with sequences from the reference.
13
+
14
+ ## Dependencies
15
+ * Python >= v3.7
16
+ * samtools (https://github.com/samtools/samtools)
17
+ * biopython (https://biopython.org/)
18
+ * pysam (https://github.com/pysam-developers/pysam)
19
+ * minimap2 (https://github.com/lh3/minimap2)
20
+
21
+ We recommend using minimap2 for alignment, using the -a option to generate SAM output.
22
+
23
+ ## Installation
24
+
25
+ We recommend installing with conda, into a new environment:
26
+ ```
27
+ conda create -n GPatch -c conda-forge -c bioconda Bio pysam minimap2 samtools GPatch
28
+ ```
29
+
30
+ Install with pip:
31
+ ```
32
+ pip install GPatch
33
+ ```
34
+
35
+ Installation from the github repository is not recommended. However, if you must, follow the steps below:
36
+ 1) git clone https://github.com/adadiehl/GPatch
37
+ 2) cd GPatch/
38
+ 3) python3 -m pip install -e .
39
+
40
+
41
+ ## Usage
42
+ ```
43
+ GPatch.py [-h] -q SAM/BAM -r FASTA [-x STR] [-b FILENAME] [-m N] [-w PATH] [-d] [-t] [-s] [-l N] [-e] [-k]
44
+ [--legacy_junctions] [--max_resid N] [--chain_mapq N] [--chain_minlen N] [--chain_maxgap N]
45
+ [--chain_tol N] [--anchor N] [--min_overlap_identity F] [--indel_tol N] [--max_mm2_tests N]
46
+ [--win_min N] [--win_max N] [--minimap2 PATH] [--threads N]
47
+ ```
48
+
49
+ Starting with alignments of contigs to a reference genome, produce a chromosome-scale pseudoassembly by patching gaps between mapped contigs with sequences from the reference. By default, reference chromosomes with no mapped contigs are printed to output unchanged. Use the --drop_missing option to disable this behavior. By default, patches are applied to the 5' and 3' telomere ends of pseudochromsomes if the first and last contig alignments do not extend to the start/end of the reference chromsome. In some cases, this may cause spurious duplications. Use the --no_extend option if this is a concern. Note that GPatch is designed to be run on single-haplotype or unphased genome assemblies. For phased assemblies, each haplotype should be separated into its own input FASTA file prior to alignment. GPatch can then be run separately on the BAM files for each haplotype to obtain phased pseudoassemblies, otherwise results will be unpredictable and likely incorrect.
50
+
51
+ #### Required Arguments
52
+ | Argument | Description |
53
+ |---|---|
54
+ | __-q SAM/BAM, --query_bam SAM/BAM__ | Path to SAM/BAM file containing non-overlapping contig mappings to the reference genome. |
55
+ | __-r FASTA, --reference_fasta FASTA__ | Path to reference genome fasta. |
56
+
57
+ #### Optional Arguments:
58
+ | Argument | Description |
59
+ |---|---|
60
+ | __-h, --help__ | Show this help message and exit. |
61
+ | __-x STR, --prefix STR__ | Prefix to add to output file names. Default=None |
62
+ | __-b FILENAME, --store_final_bam FILENAME__ | Store the final set of primary contig alignments to the given file name. Default: Do not store the final BAM. |
63
+ | __-m N, --min_qual_score N__ | Minimum mapping quality score to retain an alignment. Default=30 |
64
+ | __-w PATH, --whitelist PATH__ | Path to BED file containing whitelist regions: i.e., the inverse of blacklist regions. Supplying this will have the effect of excluding alignments that fall entirely within blacklist regions. Default=None |
65
+ | __-d, --drop_missing__ | Omit unpatched reference chromosome records from the output if no contigs map to them. Default: Unpatched chromosomes are printed to output unchanged. |
66
+ | __-t, --no_trim__ | Do not trim the 5' end of contigs that overlap the previously-placed contig; overlapping contigs are bookended untrimmed. Default: Trim the overlap, measured directly from the contig sequences (or, with --legacy_junctions, inferred from the soft-clip-extended alignment coordinates). |
67
+ | __-s, --scaffold_only__ | Pad gaps between placed contigs with strings of N characters instead of patching with sequence from the reference assembly. Effectively turns GPatch into a reference-guided scaffolding tool. Note that patches.bed will still be generated to document (inverse) mapped contig boundaries in reference frame. |
68
+ | __-l N, --gap_length N__ | Length of "N" gaps separating placed gontigs when using --scaffold_only. Has no effect when in default patching mode. Default=Estimate gap length from alignment. |
69
+ | __-e, --no_extend__ | Do not patch telomere ends of pseudochromosomes with reference sequence upstream of the first mapped contig and downstream of the last mapped contig. Default is to include 5' and 3' patches to extend telomeres to the ends implied by the alignment. |
70
+ | __-k, --keep_nested__ | Do not drop contigs with mapped positions nested entirely inside other mapped contigs. Instead, these will be bookended after the contig in which they are nested. Default is to drop contigs with mapped positions nested entirely within other mapped contigs. This option should be used with caution as these mappings cannot be placed unambigiously relative to other mapped contigs, thus including them is likely to lead to unpredictable and possibly incorrect results. Do not use this unless you are sure you know what you are doing! |
71
+
72
+ #### Junction-Handling Arguments:
73
+ | Argument | Description |
74
+ |---|---|
75
+ | __--legacy_junctions__ | Use the original (GPatch <= 0.4) junction logic: contig extents from the primary alignment extended by its full soft-clips, overlaps trimmed by the overlap of those extents, and gaps patched by their distance. No junctions.tsv is written. |
76
+ | __--max_resid N__ | Maximum unaligned sequence (bp) remaining at a contig end, after chaining, for the reference gap estimate at that end to be trusted. Default=10000 |
77
+ | __--chain_mapq N__ | Minimum mapping quality of supplementary alignments used to extend contig extents. Default=20 |
78
+ | __--chain_minlen N__ | Minimum aligned query length (bp) of supplementary alignments used to extend contig extents. Default=10000 |
79
+ | __--chain_maxgap N__ | Maximum gap (bp), in both query and reference, between chained alignments. Default=1000000 |
80
+ | __--chain_tol N__ | Maximum overlap (bp) allowed between chained alignments. Default=10000 |
81
+ | __--anchor N__ | Length (bp) of the exact anchors used to detect overlaps between adjacent contigs; also the minimum detectable overlap. Default=500 |
82
+ | __--min_overlap_identity F__ | Minimum identity over the whole overlap for a candidate overlap to be accepted. Default=0.999 |
83
+ | __--indel_tol N__ | Maximum length difference (bp) between the two anchor-implied overlap lengths for a candidate containing indels; such candidates are verified with minimap2. 0 disables. Default=50 |
84
+ | __--max_mm2_tests N__ | Maximum number of indel-containing candidate overlaps verified with minimap2 per junction. Default=20 |
85
+ | __--win_min N__ | Minimum size (bp) of the contig-end windows searched for overlaps. Default=1000000 |
86
+ | __--win_max N__ | Maximum size (bp) of the contig-end windows searched for overlaps. Default=4000000 |
87
+ | __--minimap2 PATH__ | Path to minimap2, used only to verify candidate overlaps containing indels. Default: minimap2 on PATH; if not found, such candidates are not considered. |
88
+ | __--threads N__ | Number of processes used for overlap detection. Default=1 |
89
+
90
+ ## Junction Handling
91
+
92
+ At each junction between adjacent placed contigs, GPatch either trims the 5' end of the second contig (the contigs overlap), patches the gap between them with reference sequence, or bookends them. N characters are never introduced, except that patches are replaced by N runs in --scaffold_only mode.
93
+
94
+ 1. __Contig extents.__ The primary alignment of each contig is chained to supplementary alignments of the same contig that are on the same chromosome and strand and colinear with it in both query and reference. Each contig end is then extrapolated onto the reference only by the unaligned sequence remaining beyond the outermost chained alignment (the "residual"). These extents are also used to identify nested contigs. With --legacy_junctions, the primary alignment's full soft-clips are used instead.
95
+ 2. __Overlap measurement.__ Overlaps are measured directly from the contig sequences. Candidate overlaps come from exact matches of two anchors: the next contig's first bases within the end of the previous contig, and the previous contig's last bases within the start of the next contig. A candidate supported by both anchors is accepted if identity over the whole overlap is at least --min_overlap_identity.
96
+ 3. __Decision.__ The extent-based gap estimate is *trusted* when the residuals at both contig ends of the junction are at most --max_resid, *one-sided* when only one exceeds it, and *untrusted* otherwise.
97
+
98
+ | Decision | When |
99
+ |---|---|
100
+ | trim_measured | Exactly one overlap was found; it is trimmed. |
101
+ | trim_ambiguous | Several overlap offsets were found (tandem repeats). The one closest to the estimated overlap is trimmed if the estimate is trusted or one-sided; otherwise the smallest. |
102
+ | patch | No overlap; the estimated gap is >= 0 and trusted. The gap is patched with reference sequence. |
103
+ | patch_one_sided | No overlap; the estimated gap is >= 0 and one-sided. The gap is patched with reference sequence. |
104
+ | bookend | No overlap; the estimate predicts an overlap or is untrusted. The contigs are joined directly. |
105
+
106
+ Chromosome ends are patched when the residual at the terminal contig end is at most --max_resid (and --no_extend is not set). Contigs are never trimmed against a chromosome end. The decision and reasoning for every junction are written to junctions.tsv.
107
+
108
+ ## Output
109
+
110
+ GPatch produces the following output files:
111
+ | File | Description |
112
+ |---|---|
113
+ | __patched.fasta__ | The final patched genome. |
114
+ | __contigs.bed__ | Location of contigs in the coordinate frame of the patched genome. |
115
+ | __patches.bed__ | Location of patches in the coordinate frame of the reference genome. |
116
+ | __unplaced.tsv__ | Contigs in the input BAM that are not in the pseudoassembly, with the reason (unmapped, low_mapq, whitelist, nested) and their primary alignment. |
117
+ | __unplaced.fasta__ | Sequences of the unplaced contigs, in their original orientation. |
118
+ | __junctions.tsv__ | The decision (trim, patch or bookend) made at each junction between adjacent contigs and at chromosome ends, with the contig extents, residual unaligned lengths, gap estimate, candidate overlaps and the reason for the decision. Not written with --legacy_junctions. |
119
+
120
+ ## Helper Scripts
121
+
122
+ The scripts directory contains helper scripts for running GPatch and working with its output, including a shell script to automate a two-stage patching process, including initial alignment and patching steps, misjoin breakpoint prediction and contig-breaking, and subsequent realignment and patching of the split contigs, with dot-plots against the reference assembly created after both patching stages. In addition, scripts are provided to generate a chrom.sizes file for a patched pseudoassembly and a set of liftover chains that can be used to translate features mapped to the unpatched contigs to the patched pseudoassembly. Please see the README.md within the scripts for detailed usage information.
123
+
124
+ ## Citing GPatch
125
+ Please use the following citation if you use this software in your work:
126
+
127
+ Fast and Accurate Draft Genome Patching with GPatch
128
+ Adam Diehl, Alan Boyle
129
+ bioRxiv 2025.05.22.655567; doi: https://doi.org/10.1101/2025.05.22.655567
130
+
131
+ Keywords: genomics,genome assembly
132
+ Platform: UNKNOWN
133
+ Classifier: Development Status :: 4 - Beta
134
+ Classifier: Programming Language :: Python :: 3
135
+ Classifier: License :: OSI Approved :: MIT License
136
+ Classifier: Operating System :: OS Independent
137
+ Classifier: Intended Audience :: Science/Research
138
+ Classifier: Topic :: Scientific/Engineering
139
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
140
+ Classifier: Natural Language :: English
141
+ Description-Content-Type: text/markdown
gpatch-0.5.0/README.md ADDED
@@ -0,0 +1,121 @@
1
+ # GPatch
2
+ ## Assemble contigs into a chromosome-scalse pseudo-assembly using alignments to a reference sequence.
3
+
4
+ Starting with alignments of contigs to a reference genome, produce a chromosome-scale pseudoassembly by patching gaps between mapped contigs with sequences from the reference.
5
+
6
+ ## Dependencies
7
+ * Python >= v3.7
8
+ * samtools (https://github.com/samtools/samtools)
9
+ * biopython (https://biopython.org/)
10
+ * pysam (https://github.com/pysam-developers/pysam)
11
+ * minimap2 (https://github.com/lh3/minimap2)
12
+
13
+ We recommend using minimap2 for alignment, using the -a option to generate SAM output.
14
+
15
+ ## Installation
16
+
17
+ We recommend installing with conda, into a new environment:
18
+ ```
19
+ conda create -n GPatch -c conda-forge -c bioconda Bio pysam minimap2 samtools GPatch
20
+ ```
21
+
22
+ Install with pip:
23
+ ```
24
+ pip install GPatch
25
+ ```
26
+
27
+ Installation from the github repository is not recommended. However, if you must, follow the steps below:
28
+ 1) git clone https://github.com/adadiehl/GPatch
29
+ 2) cd GPatch/
30
+ 3) python3 -m pip install -e .
31
+
32
+
33
+ ## Usage
34
+ ```
35
+ GPatch.py [-h] -q SAM/BAM -r FASTA [-x STR] [-b FILENAME] [-m N] [-w PATH] [-d] [-t] [-s] [-l N] [-e] [-k]
36
+ [--legacy_junctions] [--max_resid N] [--chain_mapq N] [--chain_minlen N] [--chain_maxgap N]
37
+ [--chain_tol N] [--anchor N] [--min_overlap_identity F] [--indel_tol N] [--max_mm2_tests N]
38
+ [--win_min N] [--win_max N] [--minimap2 PATH] [--threads N]
39
+ ```
40
+
41
+ Starting with alignments of contigs to a reference genome, produce a chromosome-scale pseudoassembly by patching gaps between mapped contigs with sequences from the reference. By default, reference chromosomes with no mapped contigs are printed to output unchanged. Use the --drop_missing option to disable this behavior. By default, patches are applied to the 5' and 3' telomere ends of pseudochromsomes if the first and last contig alignments do not extend to the start/end of the reference chromsome. In some cases, this may cause spurious duplications. Use the --no_extend option if this is a concern. Note that GPatch is designed to be run on single-haplotype or unphased genome assemblies. For phased assemblies, each haplotype should be separated into its own input FASTA file prior to alignment. GPatch can then be run separately on the BAM files for each haplotype to obtain phased pseudoassemblies, otherwise results will be unpredictable and likely incorrect.
42
+
43
+ #### Required Arguments
44
+ | Argument | Description |
45
+ |---|---|
46
+ | __-q SAM/BAM, --query_bam SAM/BAM__ | Path to SAM/BAM file containing non-overlapping contig mappings to the reference genome. |
47
+ | __-r FASTA, --reference_fasta FASTA__ | Path to reference genome fasta. |
48
+
49
+ #### Optional Arguments:
50
+ | Argument | Description |
51
+ |---|---|
52
+ | __-h, --help__ | Show this help message and exit. |
53
+ | __-x STR, --prefix STR__ | Prefix to add to output file names. Default=None |
54
+ | __-b FILENAME, --store_final_bam FILENAME__ | Store the final set of primary contig alignments to the given file name. Default: Do not store the final BAM. |
55
+ | __-m N, --min_qual_score N__ | Minimum mapping quality score to retain an alignment. Default=30 |
56
+ | __-w PATH, --whitelist PATH__ | Path to BED file containing whitelist regions: i.e., the inverse of blacklist regions. Supplying this will have the effect of excluding alignments that fall entirely within blacklist regions. Default=None |
57
+ | __-d, --drop_missing__ | Omit unpatched reference chromosome records from the output if no contigs map to them. Default: Unpatched chromosomes are printed to output unchanged. |
58
+ | __-t, --no_trim__ | Do not trim the 5' end of contigs that overlap the previously-placed contig; overlapping contigs are bookended untrimmed. Default: Trim the overlap, measured directly from the contig sequences (or, with --legacy_junctions, inferred from the soft-clip-extended alignment coordinates). |
59
+ | __-s, --scaffold_only__ | Pad gaps between placed contigs with strings of N characters instead of patching with sequence from the reference assembly. Effectively turns GPatch into a reference-guided scaffolding tool. Note that patches.bed will still be generated to document (inverse) mapped contig boundaries in reference frame. |
60
+ | __-l N, --gap_length N__ | Length of "N" gaps separating placed gontigs when using --scaffold_only. Has no effect when in default patching mode. Default=Estimate gap length from alignment. |
61
+ | __-e, --no_extend__ | Do not patch telomere ends of pseudochromosomes with reference sequence upstream of the first mapped contig and downstream of the last mapped contig. Default is to include 5' and 3' patches to extend telomeres to the ends implied by the alignment. |
62
+ | __-k, --keep_nested__ | Do not drop contigs with mapped positions nested entirely inside other mapped contigs. Instead, these will be bookended after the contig in which they are nested. Default is to drop contigs with mapped positions nested entirely within other mapped contigs. This option should be used with caution as these mappings cannot be placed unambigiously relative to other mapped contigs, thus including them is likely to lead to unpredictable and possibly incorrect results. Do not use this unless you are sure you know what you are doing! |
63
+
64
+ #### Junction-Handling Arguments:
65
+ | Argument | Description |
66
+ |---|---|
67
+ | __--legacy_junctions__ | Use the original (GPatch <= 0.4) junction logic: contig extents from the primary alignment extended by its full soft-clips, overlaps trimmed by the overlap of those extents, and gaps patched by their distance. No junctions.tsv is written. |
68
+ | __--max_resid N__ | Maximum unaligned sequence (bp) remaining at a contig end, after chaining, for the reference gap estimate at that end to be trusted. Default=10000 |
69
+ | __--chain_mapq N__ | Minimum mapping quality of supplementary alignments used to extend contig extents. Default=20 |
70
+ | __--chain_minlen N__ | Minimum aligned query length (bp) of supplementary alignments used to extend contig extents. Default=10000 |
71
+ | __--chain_maxgap N__ | Maximum gap (bp), in both query and reference, between chained alignments. Default=1000000 |
72
+ | __--chain_tol N__ | Maximum overlap (bp) allowed between chained alignments. Default=10000 |
73
+ | __--anchor N__ | Length (bp) of the exact anchors used to detect overlaps between adjacent contigs; also the minimum detectable overlap. Default=500 |
74
+ | __--min_overlap_identity F__ | Minimum identity over the whole overlap for a candidate overlap to be accepted. Default=0.999 |
75
+ | __--indel_tol N__ | Maximum length difference (bp) between the two anchor-implied overlap lengths for a candidate containing indels; such candidates are verified with minimap2. 0 disables. Default=50 |
76
+ | __--max_mm2_tests N__ | Maximum number of indel-containing candidate overlaps verified with minimap2 per junction. Default=20 |
77
+ | __--win_min N__ | Minimum size (bp) of the contig-end windows searched for overlaps. Default=1000000 |
78
+ | __--win_max N__ | Maximum size (bp) of the contig-end windows searched for overlaps. Default=4000000 |
79
+ | __--minimap2 PATH__ | Path to minimap2, used only to verify candidate overlaps containing indels. Default: minimap2 on PATH; if not found, such candidates are not considered. |
80
+ | __--threads N__ | Number of processes used for overlap detection. Default=1 |
81
+
82
+ ## Junction Handling
83
+
84
+ At each junction between adjacent placed contigs, GPatch either trims the 5' end of the second contig (the contigs overlap), patches the gap between them with reference sequence, or bookends them. N characters are never introduced, except that patches are replaced by N runs in --scaffold_only mode.
85
+
86
+ 1. __Contig extents.__ The primary alignment of each contig is chained to supplementary alignments of the same contig that are on the same chromosome and strand and colinear with it in both query and reference. Each contig end is then extrapolated onto the reference only by the unaligned sequence remaining beyond the outermost chained alignment (the "residual"). These extents are also used to identify nested contigs. With --legacy_junctions, the primary alignment's full soft-clips are used instead.
87
+ 2. __Overlap measurement.__ Overlaps are measured directly from the contig sequences. Candidate overlaps come from exact matches of two anchors: the next contig's first bases within the end of the previous contig, and the previous contig's last bases within the start of the next contig. A candidate supported by both anchors is accepted if identity over the whole overlap is at least --min_overlap_identity.
88
+ 3. __Decision.__ The extent-based gap estimate is *trusted* when the residuals at both contig ends of the junction are at most --max_resid, *one-sided* when only one exceeds it, and *untrusted* otherwise.
89
+
90
+ | Decision | When |
91
+ |---|---|
92
+ | trim_measured | Exactly one overlap was found; it is trimmed. |
93
+ | trim_ambiguous | Several overlap offsets were found (tandem repeats). The one closest to the estimated overlap is trimmed if the estimate is trusted or one-sided; otherwise the smallest. |
94
+ | patch | No overlap; the estimated gap is >= 0 and trusted. The gap is patched with reference sequence. |
95
+ | patch_one_sided | No overlap; the estimated gap is >= 0 and one-sided. The gap is patched with reference sequence. |
96
+ | bookend | No overlap; the estimate predicts an overlap or is untrusted. The contigs are joined directly. |
97
+
98
+ Chromosome ends are patched when the residual at the terminal contig end is at most --max_resid (and --no_extend is not set). Contigs are never trimmed against a chromosome end. The decision and reasoning for every junction are written to junctions.tsv.
99
+
100
+ ## Output
101
+
102
+ GPatch produces the following output files:
103
+ | File | Description |
104
+ |---|---|
105
+ | __patched.fasta__ | The final patched genome. |
106
+ | __contigs.bed__ | Location of contigs in the coordinate frame of the patched genome. |
107
+ | __patches.bed__ | Location of patches in the coordinate frame of the reference genome. |
108
+ | __unplaced.tsv__ | Contigs in the input BAM that are not in the pseudoassembly, with the reason (unmapped, low_mapq, whitelist, nested) and their primary alignment. |
109
+ | __unplaced.fasta__ | Sequences of the unplaced contigs, in their original orientation. |
110
+ | __junctions.tsv__ | The decision (trim, patch or bookend) made at each junction between adjacent contigs and at chromosome ends, with the contig extents, residual unaligned lengths, gap estimate, candidate overlaps and the reason for the decision. Not written with --legacy_junctions. |
111
+
112
+ ## Helper Scripts
113
+
114
+ The scripts directory contains helper scripts for running GPatch and working with its output, including a shell script to automate a two-stage patching process, including initial alignment and patching steps, misjoin breakpoint prediction and contig-breaking, and subsequent realignment and patching of the split contigs, with dot-plots against the reference assembly created after both patching stages. In addition, scripts are provided to generate a chrom.sizes file for a patched pseudoassembly and a set of liftover chains that can be used to translate features mapped to the unpatched contigs to the patched pseudoassembly. Please see the README.md within the scripts for detailed usage information.
115
+
116
+ ## Citing GPatch
117
+ Please use the following citation if you use this software in your work:
118
+
119
+ Fast and Accurate Draft Genome Patching with GPatch
120
+ Adam Diehl, Alan Boyle
121
+ bioRxiv 2025.05.22.655567; doi: https://doi.org/10.1101/2025.05.22.655567
@@ -28,11 +28,11 @@ def readme():
28
28
  def main():
29
29
 
30
30
  metadata = dict(
31
- name="GPatch",
32
- version="0.3.8",
31
+ name="gpatch",
32
+ version="0.5.0",
33
33
  author="Adam Diehl",
34
34
  author_email="adadiehl@umich.edu",
35
- description="Assemble contigs into a chromosome-scalse pseudo-assembly using alignments to a reference sequence.",
35
+ description="Assemble contigs into a chromosome-scalse pseudo-assembly using alignments to a reference sequence. Download the github repository for helper scripts to automate GPatch workflows, identify and correct misjoins in the contig assembly, produce dot-plots of patched pseudoassemblies to a reference assembly, and generate chrom.sizes and liftover chains for patched pseudoassemblies.",
36
36
  long_description=readme(),
37
37
  long_description_content_type="text/markdown",
38
38
  url="https://github.com/adadiehl/GPatch",