Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Add jcvi.graphics.ribbon module #733

Merged
merged 50 commits into from
Dec 26, 2024
Merged
Changes from 39 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
8178517
Initialise dev branch
Adamtaranto Sep 18, 2019
08b1110
Merge branch 'master' into dev
Adamtaranto Sep 19, 2019
3b53422
Merge branch 'master' into dev
Adamtaranto Sep 19, 2019
f711d54
Do not plot blocks/ribbons from lines beginning with *
Adamtaranto Sep 20, 2019
20822ff
Add opt noline to suppress ribbon outlines
Adamtaranto Sep 25, 2019
a6481dc
Merge branch 'master' into dev
Adamtaranto Dec 11, 2019
29845fc
Port style option for straight ribbons + various formating fixes
Adamtaranto Dec 12, 2019
a052c78
Port xrange to Py3 and fix default strand colour selection
Adamtaranto Feb 19, 2020
33f915d
Merge branch 'master' into dev
Adamtaranto Feb 21, 2020
cef3130
Merge branch 'master' into dev
Adamtaranto Jun 30, 2021
88bed6a
Migrate Ribbon scripts to py3
Adamtaranto Jul 1, 2021
40ae6b7
Beta support for PAF input
Adamtaranto Jul 5, 2021
90ac8b7
pep8 fixes
Adamtaranto Jul 5, 2021
da8113d
Merge branch 'master' into dev
Adamtaranto Jul 6, 2021
333fc2e
Merge branch 'master' into dev
Adamtaranto Jul 13, 2021
65057ad
Black formatting
Adamtaranto Feb 15, 2023
6c6da04
Merge branch 'master' into dev
Adamtaranto Feb 15, 2023
9a0cf01
add ribbon test case files
Adamtaranto Feb 17, 2023
37ea56b
log matplotlib backend
Adamtaranto Feb 17, 2023
b265c46
add logging to ribbon
Adamtaranto Feb 17, 2023
e36ab91
Merge branch 'dev' of github.com:Adamtaranto/jcvi into dev
Adamtaranto Feb 17, 2023
b4a44fb
Merge branch 'master' into dev
Adamtaranto Feb 17, 2023
8e4c872
Do not try to set usetex=False or resave
Adamtaranto Feb 19, 2023
8029175
Replace check_call with check_out in sh()
Adamtaranto Feb 19, 2023
a5225ec
Collect stderr msgs from lastal for use in
Adamtaranto Feb 19, 2023
3f7ad6d
Log suggestion to use --notex if savefig fails
Adamtaranto Feb 19, 2023
7abd51e
Merge branch 'master' into dev
Adamtaranto Feb 19, 2023
00ff793
Add cleanup empty pdf before exit if savefig fails
Adamtaranto Feb 20, 2023
6b986bb
Merge branch 'main' of https://github.com/tanghaibao/jcvi
Adamtaranto Feb 20, 2023
2dc790c
Merge branch 'master' into dev
Adamtaranto Feb 20, 2023
cecfab7
Reorder imports
Adamtaranto Feb 20, 2023
bf49be0
Black formatting
Adamtaranto Feb 20, 2023
642c0ba
Add logging to clarify why latex use is
Adamtaranto Feb 21, 2023
e378e6f
Add logging to clarify why latex is
Adamtaranto Feb 21, 2023
ad0c3d2
Merge branch 'master' into dev
Adamtaranto Feb 21, 2023
2daf3dc
Merge branch 'main' of https://github.com/tanghaibao/jcvi
Adamtaranto Feb 23, 2023
ae7c0ef
Merge remote-tracking branch 'upstream/main'
Adamtaranto Nov 14, 2024
9043e99
Merge branch 'main' into dev
Adamtaranto Nov 14, 2024
aef18d5
Merge branch 'tanghaibao:main' into dev
Adamtaranto Dec 25, 2024
b37a74a
Merge branch 'tanghaibao:main' into dev
Adamtaranto Dec 26, 2024
bdecf60
rm trmp folder from tracking
Adamtaranto Dec 26, 2024
efb0dba
ignore dev files
Adamtaranto Dec 26, 2024
eb9e35e
Use logger + minor pylance fixes
Adamtaranto Dec 26, 2024
75530e8
sort imports
Adamtaranto Dec 26, 2024
ec9adac
Try checkout PR head instead of SHA
Adamtaranto Dec 26, 2024
49ee148
Try PAT token
Adamtaranto Dec 26, 2024
0bc954a
disable black commits for forks
Adamtaranto Dec 26, 2024
e622804
add issues write permission
Adamtaranto Dec 26, 2024
9221608
test checkout fixes
Adamtaranto Dec 26, 2024
691b470
Disable for forks
Adamtaranto Dec 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Created by http://www.gitignore.io

# Ribbon testing
ribbon_test/

### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -66,6 +66,7 @@ methods.
- Histogram using R and ASCII art.
- Paint regions on set of chromosomes.
- Macro-synteny and micro-synteny plots.
- Ribbon plots from whole genome alignments.

- <kbd>utils</kbd>
- Grouper can be used as disjoint set data structure.
381 changes: 381 additions & 0 deletions jcvi/apps/wga2ribbon.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,381 @@
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

"""
Convert PAF/LASTZ alignments to bed and block files for jcvi.ribbon
using layout file as guide.
"""

from collections import namedtuple
from jcvi.graphics.base import AbstractLayout
from operator import attrgetter
import argparse
import glob
import os
import shutil
import sys


def mainArgs():
"""Parse command line arguments."""
parser = argparse.ArgumentParser(
description="Convert whole-genome alignments to block & bed format \
for ribbon.",
prog="jvci.apps.wga2ribbon",
)
parser.add_argument(
"-f",
"--format",
type=str,
required=True,
choices=["paf", "lastz"],
help="Set alignment format as paf or lastz.",
)
parser.add_argument(
"-a",
"--alignments",
action="append",
required=True,
help='Set arg for each alignment file to be imported.\
Has format "[Source chrm Idx],[Hit chrm Idx],\
[filename]" i.e. For file with alignmnets between the \
first and second tracks in ribbon.layout: \
-a "0,1,A2B_Alignment.tab"',
)
parser.add_argument(
"-l", "--layout", type=str, required=True, help="Ribbon plot layout file."
)
parser.add_argument(
"--minID",
type=float,
default=50,
help="Extract alignments with identity => than minID",
)
parser.add_argument(
"--outBed",
type=str,
default="ribbons.bed",
help="Write alignment block coords to this bedfile",
)
parser.add_argument(
"--outBlocks",
type=str,
default="ribbons.block",
help="Write alignment block names to this file.",
)
args = parser.parse_args()
return args


class LayoutLine(object):
# 0-11: x,y,rotation,ha,va,color,ratio,label,chrmName,rStart,rEnd,chrmMax
def __init__(self, row, delimiter=","):
self.hidden = row[0] == "*"
if self.hidden:
row = row[1:]
args = row.rstrip().split(delimiter)
args = [x.strip() for x in args]
self.x = float(args[0])
self.y = float(args[1])
self.rotation = int(args[2])
self.ha = args[3]
self.va = args[4]
self.color = args[5]
self.ratio = 1
if len(args) > 6:
self.ratio = float(args[6])
if len(args) > 7:
self.label = args[7].strip()
else:
self.label = None
if len(args) > 8:
self.ChrmName = str(args[8])
if len(args) > 9:
self.rStart = int(args[9])
self.rEnd = int(args[10])
else:
self.rStart = None
self.rEnd = None
if len(args) > 10:
self.chrmMax = int(args[10])
else:
self.chrmMax = None


class Layout(AbstractLayout):
def __init__(self, filename, delimiter=","):
super(Layout, self).__init__(filename)
fp = open(filename)
self.edges = []
for row in fp:
# Skip blank lines
if row.strip():
# Skip header rows
if row[0] == "#":
continue
# Import edges
if row[0] == "e":
args = row.rstrip().split(delimiter)
args = [x.strip() for x in args]
# From index 1 and 2
a, b = args[1:3]
a, b = int(a), int(b)
assert args[0] == "e"
self.edges.append((a, b))
else:
# Parse all other lines as sequence tracks
self.append(LayoutLine(row, delimiter=delimiter))

# Track number of layout lines added
self.lines = len(self)

if 3 <= len(self) <= 8:
self.assign_colors()


def readLASTZ(infile, minID=50):
"""
Read in LASTZ result file from LASTZ_genome_align.sh
Populate nested dictionary of hits keyed by Target
and then Query scaffold names.
# Check diff between standard LASTZ and mimeo-LASTZ formats
"""
with open(infile) as f:
content = f.readlines()
content = [x.strip().split() for x in content]
hitsDict = dict()
# Set named tuple format
hitTup = namedtuple(
"Elem",
[
"t_start",
"t_end",
"t_strand",
"q_start",
"q_end",
"q_strand",
"idPct",
"UID",
],
)
counter = 0
# Read in split rows
for row in content:
# Ignore lines begining with '#'
if row[0][0] == "#":
continue
# Count if hit identity exceeds threshold
# CS10_Chromosome_08 + 1993504 1993793 supercont1.32 + 15987 16251 8424 72.9
elif float(row[9]) >= minID:
counter += 1
UID = counter
t_name = str(row[0])
t_strand = str(row[1])
t_start = int(row[2]) # - 1 # Convert from idx '1' to idx '0'
t_end = int(row[3]) # - 1 # Convert from idx '1' to idx '0'
q_name = str(row[4])
q_strand = str(row[5])
idPct = float(row[9])
# Check that start position < end position
if int(row[6]) < int(row[7]):
q_start = int(row[6]) # - 1 # Convert from idx '1' to idx '0'
q_end = int(row[7]) # - 1 # Convert from idx '1' to idx '0'
# Correct for inverted coordinates
else:
print(("Inverting query sequence coordinates for record number:", UID))
q_end = int(row[6]) # - 1 # Convert from idx '1' to idx '0'
q_start = int(row[7]) # - 1 # Convert from idx '1' to idx '0'
# Create target scaffold dict if not seen
if t_name not in list(hitsDict.keys()):
hitsDict[t_name] = dict()
# Create query scaffold list if not seen
if q_name not in list(hitsDict[t_name].keys()):
hitsDict[t_name][q_name] = list()
# Write record to target:query list as named tuple
hitsDict[t_name][q_name].append(
hitTup(t_start, t_end, t_strand, q_start, q_end, q_strand, idPct, UID)
)
return hitsDict


def readPAF(infile, minID=50):
"""
Format info here: https://github.com/lh3/miniasm/blob/master/PAF.md
From PAF file populate nested dictionary of hits keyed by Target (Ref) and
then Query scaffold names.
# Check target and query seq defs for PAF and LASTZ
# Check what PAF does with rev orientation coords - flipped?
# Check if ribbon wants intervals indexed from zero
# PAF is zero based
# Check how strand orientation is assigned
"""
# |Col|Type |Description |
# |--:|:----:|:-----------------------------------------|
# |0 |string|Query sequence name |
# |1 |int |Query sequence length |
# |2 |int |Query start (0-based; BED-like; closed) |
# |3 |int |Query end (0-based; BED-like; open) |
# |4 |char |Relative strand: "+" or "-" |
# |5 |string|Target sequence name |
# |6 |int |Target sequence length |
# |7 |int |Target start on original strand (0-based) |
# |8 |int |Target end on original strand (0-based) |
# |9 |int |Number of residue matches |
# |10 |int |Alignment block length |
# |11 |int |Mapping quality (0-255; 255 for missing) |
with open(infile) as f:
content = f.readlines()
content = [x.strip().split() for x in content]
hitsDict = dict()
# Set named tuple format
hitTup = namedtuple(
"Elem",
[
"t_start",
"t_end",
"t_strand",
"q_start",
"q_end",
"q_strand",
"idPct",
"UID",
],
)
counter = 0
# Read in split rows
for row in content:
# Ignore lines begining with '#'
if row[0][0] == "#":
continue
# Count if hit identity exceeds threshold
# For PAF calc idenity from matching bases and alignment length.
rowID = float(row[9]) / float(row[10])
if rowID >= minID:
counter += 1
UID = counter
t_name = str(row[5])
t_strand = "+"
t_start = int(row[7]) # + 1 # Convert from idx '0' to idx '1'
t_end = int(row[8]) # + 1 # Convert from idx '0' to idx '1'
q_name = str(row[0])
q_strand = str(row[4])
idPct = rowID
# Check that start position < end position
if int(row[2]) < int(row[3]):
q_start = int(row[2]) # + 1 # Convert from idx '0' to idx '1'
q_end = int(row[3]) # + 1 # Convert from idx '0' to idx '1'
# Correct for inverted coordinates
else:
print(("Inverting query sequence coordinates for record number: ", UID))
q_end = int(row[2]) # + 1 # Convert from idx '0' to idx '1'
q_start = int(row[3]) # + 1 # Convert from idx '0' to idx '1'
# Create target scaffold dict if not seen
if t_name not in list(hitsDict.keys()):
hitsDict[t_name] = dict()
# Create query scaffold list if not seen
if q_name not in list(hitsDict[t_name].keys()):
hitsDict[t_name][q_name] = list()
# Write record to target:query list as named tuple
hitsDict[t_name][q_name].append(
hitTup(t_start, t_end, t_strand, q_start, q_end, q_strand, idPct, UID)
)
return hitsDict


def main():
# Get cmd line args
args = mainArgs()
plotlines = Layout(args.layout)

# Check number of alignment files = layout lines -1 (i.e. AvB.tab, BvC.tab)
# if plotlines.lines != len(args.alignments) + 1:
# print('Error: Alignment file list must be == number sequence lines in layout - 1')
# sys.exit(0)

# Init dict with layout row indexs as keys and empty list as value
bedlines = dict()
for i in range(plotlines.lines):
bedlines[i] = list()
# Init blocklines
blocklines = list()
for coords in args.alignments:
assert len(coords.split(",")) == 3
selfIdx, hitIdx, alnFile = coords.split(",")
selfIdx = int(selfIdx)
hitIdx = int(hitIdx)
hits = readLASTZ(alnFile, minID=args.minID)
# Extract hits between sequence selfIdx and hitIdx as per layout file.
for x in sorted(
hits[plotlines[selfIdx].ChrmName][plotlines[hitIdx].ChrmName],
key=lambda x: (int(x.t_start), int(x.t_end)),
):
tName = str(plotlines[selfIdx].ChrmName)
qName = str(plotlines[hitIdx].ChrmName)
tUID = "_".join(
[
str(selfIdx),
str(hitIdx),
str(selfIdx),
"ID" + str(x.UID),
tName,
str(x.t_start),
str(x.t_end),
]
)
qUID = "_".join(
[
str(selfIdx),
str(hitIdx),
str(hitIdx),
"ID" + str(x.UID),
qName,
str(x.q_start),
str(x.q_end),
]
)
bedlines[selfIdx].append(
tuple(
[
tName,
str(x.t_start),
str(x.t_end),
tUID,
str(x.idPct),
str(x.t_strand),
]
)
)
bedlines[hitIdx].append(
tuple(
[
qName,
str(x.q_start),
str(x.q_end),
qUID,
str(x.idPct),
str(x.q_strand),
]
)
)
blockline = ["."] * plotlines.lines
blockline[selfIdx] = tUID
blockline[hitIdx] = qUID
blocklines.append("\t".join(blockline))

# Sort bedlines for each seq in layout file.
# Sort by Chrm name, start, end, UID
with open(args.outBed, "w") as f:
for layoutIdx in list(bedlines.keys()):
for line in sorted(
bedlines[layoutIdx], key=lambda x: (x[0], int(x[1]), int(x[2]), x[3])
):
f.write("\t".join(line) + "\n")

# Write blocklines
with open(args.outBlocks, "w") as f:
for line in blocklines:
f.write(line + "\n")


if __name__ == "__main__":
main()
2 changes: 2 additions & 0 deletions jcvi/compara/synteny.py
Original file line number Diff line number Diff line change
@@ -41,6 +41,8 @@ def __init__(self, filename, defaultcolor="#fb8072", header=False):
data = []
highlight = []
for row in fp:
if row[0] == '#':
continue
hl = "*" in row
# r* highlights the block in red color
if hl:
27 changes: 24 additions & 3 deletions jcvi/graphics/base.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

from os import remove
import copy
import logging
Adamtaranto marked this conversation as resolved.
Show resolved Hide resolved
import os.path as op
import re
import sys
@@ -322,14 +324,33 @@ def update_figname(figname: str, format: str) -> str:
return figname + "." + format


def savefig(figname, dpi=150, iopts=None, cleanup=True):
def update_figname(figname: str, format: str) -> str:
"""Update the name of a figure to include the format.
Args:
figname (str): Path to the figure
format (str): Figure format, must be one of GRAPHIC_FORMATS
Returns:
str: New file path
"""
_, ext = op.splitext(figname)
if ext.strip(".") in GRAPHIC_FORMATS: # User suffix has precedence
return figname
# When the user has not supplied a format in the filename, use the requested format
assert format in GRAPHIC_FORMATS, "Invalid format"
return figname + "." + format


def savefig(figname, dpi=150, iopts=None, cleanup=True, transparent=False):
try:
format = figname.rsplit(".", 1)[-1].lower()
except:
format = "pdf"
try:
logger.debug("Matplotlib backend is: %s", mpl.get_backend())
plt.savefig(figname, dpi=dpi, format=format)
logging.debug(f"Matplotlib backend is: {mpl.get_backend()}")
logging.debug(f"Attempting save as: {figname}")
plt.savefig(figname, dpi=dpi, format=format, transparent=transparent)
except Exception as e:
logger.error("savefig failed with message:\n%s", e)
logger.info("Try running again with --notex option to disable latex.")
886 changes: 886 additions & 0 deletions jcvi/graphics/ribbon.py

Large diffs are not rendered by default.

43 changes: 43 additions & 0 deletions temp/environment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: jcvidev
channels:
- conda-forge
- anaconda
- bioconda
- defaults
dependencies:
- conda-forge::python=3.10
- conda-forge::biopython
- bioconda::bx-python
- bioconda::crossmap
- bioconda::gffutils
- bioconda::goatools
- bioconda::pybedtools
- bioconda::pyBigWig
- bioconda::pysam
- boto3
- brewer2mpl
- coveralls
- cython
- deap
- etetoolkit::ete3
- graphviz
- jinja2
- matplotlib
- more-itertools
- natsort
- networkx
- numpy
- pip
- pypdf2
- pytest
- pyyaml
- rich
- scikit-image
- scipy
- seaborn
- webcolors
- xlrd
- pip:
- ftpretty
- ortools
- latex
2,239 changes: 2,239 additions & 0 deletions temp/ribbon_testing/data/3S_genes.bed

Large diffs are not rendered by default.

152 changes: 152 additions & 0 deletions temp/ribbon_testing/data/ribbons2.bed
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
CS10_Chromosome_08 22348 22759 0_1_0_ID6208_CS10_Chromosome_08_22348_22759 62.5 +
CS10_Chromosome_08 40607 41007 0_1_0_ID6209_CS10_Chromosome_08_40607_41007 74.4 +
CS10_Chromosome_08 43768 44288 0_1_0_ID6210_CS10_Chromosome_08_43768_44288 68.8 +
CS10_Chromosome_08 324005 324584 0_1_0_ID6211_CS10_Chromosome_08_324005_324584 61.9 +
CS10_Chromosome_08 326479 327065 0_1_0_ID6212_CS10_Chromosome_08_326479_327065 63.9 +
CS10_Chromosome_08 783487 783726 0_1_0_ID6213_CS10_Chromosome_08_783487_783726 77.4 +
CS10_Chromosome_08 1004621 1005899 0_1_0_ID6214_CS10_Chromosome_08_1004621_1005899 61.6 +
CS10_Chromosome_08 1006640 1007734 0_1_0_ID6215_CS10_Chromosome_08_1006640_1007734 62.0 +
CS10_Chromosome_08 1182944 1183400 0_1_0_ID6216_CS10_Chromosome_08_1182944_1183400 60.4 +
CS10_Chromosome_08 1184351 1184661 0_1_0_ID6217_CS10_Chromosome_08_1184351_1184661 65.3 +
CS10_Chromosome_08 1184351 1184661 0_1_0_ID6218_CS10_Chromosome_08_1184351_1184661 69.5 +
CS10_Chromosome_08 1348017 1348436 0_1_0_ID6219_CS10_Chromosome_08_1348017_1348436 67.2 +
CS10_Chromosome_08 1523868 1524139 0_1_0_ID6220_CS10_Chromosome_08_1523868_1524139 69.4 +
CS10_Chromosome_08 1745146 1746995 0_1_0_ID6221_CS10_Chromosome_08_1745146_1746995 80.0 +
CS10_Chromosome_08 1747416 1748240 0_1_0_ID6222_CS10_Chromosome_08_1747416_1748240 60.4 +
CS10_Chromosome_08 1748704 1748811 0_1_0_ID6223_CS10_Chromosome_08_1748704_1748811 74.1 +
CS10_Chromosome_08 1791154 1791771 0_1_0_ID6224_CS10_Chromosome_08_1791154_1791771 69.6 +
CS10_Chromosome_08 1791170 1793488 0_1_0_ID6225_CS10_Chromosome_08_1791170_1793488 66.9 +
CS10_Chromosome_08 1792229 1796114 0_1_0_ID6226_CS10_Chromosome_08_1792229_1796114 65.8 +
CS10_Chromosome_08 1810438 1810550 0_1_0_ID6227_CS10_Chromosome_08_1810438_1810550 77.6 +
CS10_Chromosome_08 1862617 1863337 0_1_0_ID6228_CS10_Chromosome_08_1862617_1863337 69.6 +
CS10_Chromosome_08 1875306 1878592 0_1_0_ID6229_CS10_Chromosome_08_1875306_1878592 88.7 +
CS10_Chromosome_08 1877194 1877329 0_1_0_ID6230_CS10_Chromosome_08_1877194_1877329 83.8 +
CS10_Chromosome_08 1877328 1878296 0_1_0_ID6231_CS10_Chromosome_08_1877328_1878296 80.7 +
CS10_Chromosome_08 1878585 1878847 0_1_0_ID6232_CS10_Chromosome_08_1878585_1878847 83.3 +
CS10_Chromosome_08 1898276 1899718 0_1_0_ID6233_CS10_Chromosome_08_1898276_1899718 71.5 +
CS10_Chromosome_08 1914850 1915695 0_1_0_ID6234_CS10_Chromosome_08_1914850_1915695 66.4 +
CS10_Chromosome_08 1921977 1923438 0_1_0_ID6235_CS10_Chromosome_08_1921977_1923438 63.4 +
CS10_Chromosome_08 1922101 1922387 0_1_0_ID6236_CS10_Chromosome_08_1922101_1922387 82.6 +
CS10_Chromosome_08 1924846 1925234 0_1_0_ID6237_CS10_Chromosome_08_1924846_1925234 64.2 +
CS10_Chromosome_08 1932161 1949596 0_1_0_ID6238_CS10_Chromosome_08_1932161_1949596 69.3 +
CS10_Chromosome_08 1949705 1955130 0_1_0_ID6239_CS10_Chromosome_08_1949705_1955130 68.8 +
CS10_Chromosome_08 1955471 1958786 0_1_0_ID6240_CS10_Chromosome_08_1955471_1958786 69.9 +
CS10_Chromosome_08 1974393 1975158 0_1_0_ID6241_CS10_Chromosome_08_1974393_1975158 72.6 +
CS10_Chromosome_08 2029857 2041232 0_1_0_ID6242_CS10_Chromosome_08_2029857_2041232 93.2 +
CS10_Chromosome_08 2041919 2043735 0_1_0_ID6243_CS10_Chromosome_08_2041919_2043735 63.9 +
CS10_Chromosome_08 2042059 2043938 0_1_0_ID6244_CS10_Chromosome_08_2042059_2043938 83.8 +
CS10_Chromosome_08 2050659 2051154 0_1_0_ID6245_CS10_Chromosome_08_2050659_2051154 61.7 +
CS10_Chromosome_08 2063015 2063616 0_1_0_ID6246_CS10_Chromosome_08_2063015_2063616 60.1 +
CS10_Chromosome_08 2086833 2088719 0_1_0_ID6247_CS10_Chromosome_08_2086833_2088719 78.8 +
CS10_Chromosome_08 2088103 2088677 0_1_0_ID6248_CS10_Chromosome_08_2088103_2088677 77.2 +
CS10_Chromosome_08 2099021 2099394 0_1_0_ID6249_CS10_Chromosome_08_2099021_2099394 71.6 +
CS10_Chromosome_08 2103905 2104316 0_1_0_ID6250_CS10_Chromosome_08_2103905_2104316 63.5 +
supercont1.4 360530 360950 0_1_1_ID6208_supercont1.4_360530_360950 62.5 +
supercont1.4 360530 360950 0_1_1_ID6250_supercont1.4_360530_360950 63.5 -
supercont1.4 596508 597029 0_1_1_ID6210_supercont1.4_596508_597029 68.8 +
supercont1.4 601527 602106 0_1_1_ID6211_supercont1.4_601527_602106 61.9 +
supercont1.4 602351 602937 0_1_1_ID6212_supercont1.4_602351_602937 63.9 +
supercont1.4 612361 612595 0_1_1_ID6213_supercont1.4_612361_612595 77.4 +
supercont1.4 628912 630801 0_1_1_ID6247_supercont1.4_628912_630801 78.8 -
supercont1.4 628943 630217 0_1_1_ID6214_supercont1.4_628943_630217 61.6 +
supercont1.4 645941 647033 0_1_1_ID6215_supercont1.4_645941_647033 62.0 +
supercont1.4 657157 657414 0_1_1_ID6220_supercont1.4_657157_657414 69.4 +
supercont1.4 776234 777067 0_1_1_ID6222_supercont1.4_776234_777067 60.4 +
supercont1.4 946532 947159 0_1_1_ID6224_supercont1.4_946532_947159 69.6 +
supercont1.4 955294 959102 0_1_1_ID6226_supercont1.4_955294_959102 65.8 +
supercont1.4 1402473 1402989 0_1_1_ID6245_supercont1.4_1402473_1402989 61.7 -
supercont1.4 1433314 1435189 0_1_1_ID6244_supercont1.4_1433314_1435189 83.8 -
supercont1.4 1442202 1453529 0_1_1_ID6242_supercont1.4_1442202_1453529 93.2 -
supercont1.4 1456690 1456796 0_1_1_ID6227_supercont1.4_1456690_1456796 77.6 +
supercont1.4 1457716 1458477 0_1_1_ID6241_supercont1.4_1457716_1458477 72.6 -
supercont1.4 1458547 1462210 0_1_1_ID6240_supercont1.4_1458547_1462210 69.9 -
supercont1.4 1462152 1467881 0_1_1_ID6239_supercont1.4_1462152_1467881 68.8 -
supercont1.4 1468827 1486499 0_1_1_ID6238_supercont1.4_1468827_1486499 69.3 -
supercont1.4 1486957 1487355 0_1_1_ID6237_supercont1.4_1486957_1487355 64.2 -
supercont1.4 1490003 1491807 0_1_1_ID6235_supercont1.4_1490003_1491807 63.4 -
supercont1.4 1491550 1491819 0_1_1_ID6236_supercont1.4_1491550_1491819 82.6 -
supercont1.4 1494063 1494965 0_1_1_ID6234_supercont1.4_1494063_1494965 66.4 -
supercont1.4 1527816 1528787 0_1_1_ID6231_supercont1.4_1527816_1528787 80.7 -
supercont1.4 1533310 1533445 0_1_1_ID6230_supercont1.4_1533310_1533445 83.8 -
supercont1.4 1651811 1652732 0_1_1_ID6228_supercont1.4_1651811_1652732 69.6 +
supercont1.4 1752640 1754961 0_1_1_ID6225_supercont1.4_1752640_1754961 66.9 -
supercont1.4 1764037 1767378 0_1_1_ID6229_supercont1.4_1764037_1767378 88.7 +
supercont1.4 1776117 1776379 0_1_1_ID6232_supercont1.4_1776117_1776379 83.3 +
supercont1.4 2454049 2454162 0_1_1_ID6223_supercont1.4_2454049_2454162 74.1 -
supercont1.4 2454254 2455922 0_1_1_ID6233_supercont1.4_2454254_2455922 71.5 +
supercont1.4 2541546 2543361 0_1_1_ID6221_supercont1.4_2541546_2543361 80.0 -
supercont1.4 2541590 2543361 0_1_1_ID6243_supercont1.4_2541590_2543361 63.9 +
supercont1.4 2561570 2562090 0_1_1_ID6219_supercont1.4_2561570_2562090 67.2 -
supercont1.4 2654831 2655413 0_1_1_ID6246_supercont1.4_2654831_2655413 60.1 +
supercont1.4 2660829 2661403 0_1_1_ID6248_supercont1.4_2660829_2661403 77.2 +
supercont1.4 2673180 2673516 0_1_1_ID6249_supercont1.4_2673180_2673516 71.6 +
supercont1.4 2681592 2681908 0_1_1_ID6217_supercont1.4_2681592_2681908 65.3 -
supercont1.4 2681982 2682304 0_1_1_ID6218_supercont1.4_2681982_2682304 69.5 -
supercont1.4 2775716 2776169 0_1_1_ID6216_supercont1.4_2775716_2776169 60.4 -
supercont1.4 2779766 2780102 0_1_1_ID6209_supercont1.4_2779766_2780102 74.4 -
CS10_Chromosome_08 4 175 0_2_0_ID4222a_CS10_Chromosome_08_4_175 97.6 +
CS10_Chromosome_08 78 216 0_2_0_ID4223a_CS10_Chromosome_08_78_216 89.9 +
CS10_Chromosome_08 314883 315802 0_2_0_ID4224a_CS10_Chromosome_08_314883_315802 63.1 +
CS10_Chromosome_08 315028 316422 0_2_0_ID4225a_CS10_Chromosome_08_315028_316422 65.2 +
CS10_Chromosome_08 315520 316870 0_2_0_ID4226a_CS10_Chromosome_08_315520_316870 68.4 +
CS10_Chromosome_08 318835 323064 0_2_0_ID4227a_CS10_Chromosome_08_318835_323064 63.5 +
CS10_Chromosome_08 324005 324581 0_2_0_ID4228a_CS10_Chromosome_08_324005_324581 66.0 +
CS10_Chromosome_08 324584 328373 0_2_0_ID4229a_CS10_Chromosome_08_324584_328373 63.8 +
CS10_Chromosome_08 325677 326646 0_2_0_ID4230a_CS10_Chromosome_08_325677_326646 69.1 +
CS10_Chromosome_08 326325 327775 0_2_0_ID4231a_CS10_Chromosome_08_326325_327775 64.2 +
CS10_Chromosome_08 326416 327723 0_2_0_ID4232a_CS10_Chromosome_08_326416_327723 61.1 +
CS10_Chromosome_08 587298 589416 0_2_0_ID4233a_CS10_Chromosome_08_587298_589416 60.4 +
CS10_Chromosome_08 1808109 1808239 0_2_0_ID4234a_CS10_Chromosome_08_1808109_1808239 77.3 +
CS10_Chromosome_08 1840322 1840444 0_2_0_ID4235a_CS10_Chromosome_08_1840322_1840444 80.7 +
CS10_Chromosome_08 1884317 1884428 0_2_0_ID4236a_CS10_Chromosome_08_1884317_1884428 67.9 +
CS10_Chromosome_08 1914870 1915690 0_2_0_ID4237a_CS10_Chromosome_08_1914870_1915690 63.2 +
CS10_Chromosome_08 1924862 1925234 0_2_0_ID4238a_CS10_Chromosome_08_1924862_1925234 60.2 +
CS10_Chromosome_08 1932156 1936381 0_2_0_ID4239a_CS10_Chromosome_08_1932156_1936381 63.9 +
CS10_Chromosome_08 1937162 1942101 0_2_0_ID4240a_CS10_Chromosome_08_1937162_1942101 61.9 +
CS10_Chromosome_08 1942866 1949596 0_2_0_ID4241a_CS10_Chromosome_08_1942866_1949596 60.0 +
CS10_Chromosome_08 1942866 1949596 0_2_0_ID4242a_CS10_Chromosome_08_1942866_1949596 60.1 +
CS10_Chromosome_08 1952577 1954491 0_2_0_ID4243a_CS10_Chromosome_08_1952577_1954491 66.9 +
CS10_Chromosome_08 1952577 1954491 0_2_0_ID4244a_CS10_Chromosome_08_1952577_1954491 66.8 +
CS10_Chromosome_08 1954488 1955022 0_2_0_ID4245a_CS10_Chromosome_08_1954488_1955022 64.1 +
CS10_Chromosome_08 1955612 1958786 0_2_0_ID4246a_CS10_Chromosome_08_1955612_1958786 61.9 +
CS10_Chromosome_08 1974386 1975158 0_2_0_ID4247a_CS10_Chromosome_08_1974386_1975158 63.7 +
CS10_Chromosome_08 1999394 2005380 0_2_0_ID4248a_CS10_Chromosome_08_1999394_2005380 71.3 +
CS10_Chromosome_08 2029857 2040457 0_2_0_ID4249a_CS10_Chromosome_08_2029857_2040457 96.4 +
CS10_Chromosome_08 2040460 2043938 0_2_0_ID4250a_CS10_Chromosome_08_2040460_2043938 77.0 +
CS10_Chromosome_08 2049263 2049400 0_2_0_ID4251a_CS10_Chromosome_08_2049263_2049400 68.8 +
CS10_Chromosome_08 2107873 2108044 0_2_0_ID4252a_CS10_Chromosome_08_2107873_2108044 97.6 +
CS10_Chromosome_08 2107879 2108050 0_2_0_ID4253a_CS10_Chromosome_08_2107879_2108050 97.6 +
CS10_Chromosome_08 2107920 2108098 0_2_0_ID4254a_CS10_Chromosome_08_2107920_2108098 83.1 +
SN15_SOL_Chromosome_05 10 178 0_2_2_ID4222a_SN15_SOL_Chromosome_05_10_178 97.6 +
SN15_SOL_Chromosome_05 10 178 0_2_2_ID4252a_SN15_SOL_Chromosome_05_10_178 97.6 -
SN15_SOL_Chromosome_05 10 178 0_2_2_ID4253a_SN15_SOL_Chromosome_05_10_178 97.6 -
SN15_SOL_Chromosome_05 308363 309256 0_2_2_ID4224a_SN15_SOL_Chromosome_05_308363_309256 63.1 +
SN15_SOL_Chromosome_05 310796 312167 0_2_2_ID4225a_SN15_SOL_Chromosome_05_310796_312167 65.2 +
SN15_SOL_Chromosome_05 314991 319528 0_2_2_ID4227a_SN15_SOL_Chromosome_05_314991_319528 63.5 +
SN15_SOL_Chromosome_05 341804 342379 0_2_2_ID4228a_SN15_SOL_Chromosome_05_341804_342379 66.0 +
SN15_SOL_Chromosome_05 342311 343709 0_2_2_ID4231a_SN15_SOL_Chromosome_05_342311_343709 64.2 +
SN15_SOL_Chromosome_05 343929 344805 0_2_2_ID4237a_SN15_SOL_Chromosome_05_343929_344805 63.2 +
SN15_SOL_Chromosome_05 420783 422682 0_2_2_ID4244a_SN15_SOL_Chromosome_05_420783_422682 66.8 -
SN15_SOL_Chromosome_05 438764 445476 0_2_2_ID4242a_SN15_SOL_Chromosome_05_438764_445476 60.1 -
SN15_SOL_Chromosome_05 513908 514280 0_2_2_ID4238a_SN15_SOL_Chromosome_05_513908_514280 60.2 +
SN15_SOL_Chromosome_05 514637 518978 0_2_2_ID4239a_SN15_SOL_Chromosome_05_514637_518978 63.9 +
SN15_SOL_Chromosome_05 545939 550861 0_2_2_ID4240a_SN15_SOL_Chromosome_05_545939_550861 61.9 +
SN15_SOL_Chromosome_05 560221 566933 0_2_2_ID4241a_SN15_SOL_Chromosome_05_560221_566933 60.0 +
SN15_SOL_Chromosome_05 573256 575155 0_2_2_ID4243a_SN15_SOL_Chromosome_05_573256_575155 66.9 +
SN15_SOL_Chromosome_05 648297 648828 0_2_2_ID4245a_SN15_SOL_Chromosome_05_648297_648828 64.1 +
SN15_SOL_Chromosome_05 648866 652400 0_2_2_ID4246a_SN15_SOL_Chromosome_05_648866_652400 61.9 +
SN15_SOL_Chromosome_05 652463 653231 0_2_2_ID4247a_SN15_SOL_Chromosome_05_652463_653231 63.7 +
SN15_SOL_Chromosome_05 654147 654258 0_2_2_ID4236a_SN15_SOL_Chromosome_05_654147_654258 67.9 -
SN15_SOL_Chromosome_05 657180 663150 0_2_2_ID4248a_SN15_SOL_Chromosome_05_657180_663150 71.3 +
SN15_SOL_Chromosome_05 698195 708549 0_2_2_ID4249a_SN15_SOL_Chromosome_05_698195_708549 96.4 +
SN15_SOL_Chromosome_05 706257 706375 0_2_2_ID4235a_SN15_SOL_Chromosome_05_706257_706375 80.7 -
SN15_SOL_Chromosome_05 706257 706384 0_2_2_ID4234a_SN15_SOL_Chromosome_05_706257_706384 77.3 -
SN15_SOL_Chromosome_05 720459 723807 0_2_2_ID4250a_SN15_SOL_Chromosome_05_720459_723807 77.0 +
SN15_SOL_Chromosome_05 1013605 1013742 0_2_2_ID4251a_SN15_SOL_Chromosome_05_1013605_1013742 68.8 +
SN15_SOL_Chromosome_05 1726019 1728398 0_2_2_ID4233a_SN15_SOL_Chromosome_05_1726019_1728398 60.4 -
SN15_SOL_Chromosome_05 2024851 2026176 0_2_2_ID4232a_SN15_SOL_Chromosome_05_2024851_2026176 61.1 -
SN15_SOL_Chromosome_05 2027054 2028070 0_2_2_ID4230a_SN15_SOL_Chromosome_05_2027054_2028070 69.1 -
SN15_SOL_Chromosome_05 2027150 2031104 0_2_2_ID4229a_SN15_SOL_Chromosome_05_2027150_2031104 63.8 -
SN15_SOL_Chromosome_05 2031963 2033330 0_2_2_ID4226a_SN15_SOL_Chromosome_05_2031963_2033330 68.4 -
SN15_SOL_Chromosome_05 2046514 2046697 0_2_2_ID4254a_SN15_SOL_Chromosome_05_2046514_2046697 83.1 +
SN15_SOL_Chromosome_05 2046563 2046702 0_2_2_ID4223a_SN15_SOL_Chromosome_05_2046563_2046702 89.9 -
76 changes: 76 additions & 0 deletions temp/ribbon_testing/data/ribbons2.block
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
0_1_0_ID6208_CS10_Chromosome_08_22348_22759 0_1_1_ID6208_supercont1.4_360530_360950 .
0_1_0_ID6209_CS10_Chromosome_08_40607_41007 0_1_1_ID6209_supercont1.4_2779766_2780102 .
0_1_0_ID6210_CS10_Chromosome_08_43768_44288 0_1_1_ID6210_supercont1.4_596508_597029 .
0_1_0_ID6211_CS10_Chromosome_08_324005_324584 0_1_1_ID6211_supercont1.4_601527_602106 .
0_1_0_ID6212_CS10_Chromosome_08_326479_327065 0_1_1_ID6212_supercont1.4_602351_602937 .
0_1_0_ID6213_CS10_Chromosome_08_783487_783726 0_1_1_ID6213_supercont1.4_612361_612595 .
0_1_0_ID6214_CS10_Chromosome_08_1004621_1005899 0_1_1_ID6214_supercont1.4_628943_630217 .
0_1_0_ID6215_CS10_Chromosome_08_1006640_1007734 0_1_1_ID6215_supercont1.4_645941_647033 .
0_1_0_ID6216_CS10_Chromosome_08_1182944_1183400 0_1_1_ID6216_supercont1.4_2775716_2776169 .
0_1_0_ID6217_CS10_Chromosome_08_1184351_1184661 0_1_1_ID6217_supercont1.4_2681592_2681908 .
0_1_0_ID6218_CS10_Chromosome_08_1184351_1184661 0_1_1_ID6218_supercont1.4_2681982_2682304 .
0_1_0_ID6219_CS10_Chromosome_08_1348017_1348436 0_1_1_ID6219_supercont1.4_2561570_2562090 .
0_1_0_ID6220_CS10_Chromosome_08_1523868_1524139 0_1_1_ID6220_supercont1.4_657157_657414 .
0_1_0_ID6221_CS10_Chromosome_08_1745146_1746995 0_1_1_ID6221_supercont1.4_2541546_2543361 .
0_1_0_ID6222_CS10_Chromosome_08_1747416_1748240 0_1_1_ID6222_supercont1.4_776234_777067 .
0_1_0_ID6223_CS10_Chromosome_08_1748704_1748811 0_1_1_ID6223_supercont1.4_2454049_2454162 .
0_1_0_ID6224_CS10_Chromosome_08_1791154_1791771 0_1_1_ID6224_supercont1.4_946532_947159 .
0_1_0_ID6225_CS10_Chromosome_08_1791170_1793488 0_1_1_ID6225_supercont1.4_1752640_1754961 .
0_1_0_ID6226_CS10_Chromosome_08_1792229_1796114 0_1_1_ID6226_supercont1.4_955294_959102 .
0_1_0_ID6227_CS10_Chromosome_08_1810438_1810550 0_1_1_ID6227_supercont1.4_1456690_1456796 .
0_1_0_ID6228_CS10_Chromosome_08_1862617_1863337 0_1_1_ID6228_supercont1.4_1651811_1652732 .
0_1_0_ID6229_CS10_Chromosome_08_1875306_1878592 0_1_1_ID6229_supercont1.4_1764037_1767378 .
0_1_0_ID6230_CS10_Chromosome_08_1877194_1877329 0_1_1_ID6230_supercont1.4_1533310_1533445 .
0_1_0_ID6231_CS10_Chromosome_08_1877328_1878296 0_1_1_ID6231_supercont1.4_1527816_1528787 .
0_1_0_ID6232_CS10_Chromosome_08_1878585_1878847 0_1_1_ID6232_supercont1.4_1776117_1776379 .
0_1_0_ID6233_CS10_Chromosome_08_1898276_1899718 0_1_1_ID6233_supercont1.4_2454254_2455922 .
0_1_0_ID6234_CS10_Chromosome_08_1914850_1915695 0_1_1_ID6234_supercont1.4_1494063_1494965 .
0_1_0_ID6235_CS10_Chromosome_08_1921977_1923438 0_1_1_ID6235_supercont1.4_1490003_1491807 .
0_1_0_ID6236_CS10_Chromosome_08_1922101_1922387 0_1_1_ID6236_supercont1.4_1491550_1491819 .
0_1_0_ID6237_CS10_Chromosome_08_1924846_1925234 0_1_1_ID6237_supercont1.4_1486957_1487355 .
0_1_0_ID6238_CS10_Chromosome_08_1932161_1949596 0_1_1_ID6238_supercont1.4_1468827_1486499 .
0_1_0_ID6239_CS10_Chromosome_08_1949705_1955130 0_1_1_ID6239_supercont1.4_1462152_1467881 .
0_1_0_ID6240_CS10_Chromosome_08_1955471_1958786 0_1_1_ID6240_supercont1.4_1458547_1462210 .
0_1_0_ID6241_CS10_Chromosome_08_1974393_1975158 0_1_1_ID6241_supercont1.4_1457716_1458477 .
0_1_0_ID6242_CS10_Chromosome_08_2029857_2041232 0_1_1_ID6242_supercont1.4_1442202_1453529 .
0_1_0_ID6243_CS10_Chromosome_08_2041919_2043735 0_1_1_ID6243_supercont1.4_2541590_2543361 .
0_1_0_ID6244_CS10_Chromosome_08_2042059_2043938 0_1_1_ID6244_supercont1.4_1433314_1435189 .
0_1_0_ID6245_CS10_Chromosome_08_2050659_2051154 0_1_1_ID6245_supercont1.4_1402473_1402989 .
0_1_0_ID6246_CS10_Chromosome_08_2063015_2063616 0_1_1_ID6246_supercont1.4_2654831_2655413 .
0_1_0_ID6247_CS10_Chromosome_08_2086833_2088719 0_1_1_ID6247_supercont1.4_628912_630801 .
0_1_0_ID6248_CS10_Chromosome_08_2088103_2088677 0_1_1_ID6248_supercont1.4_2660829_2661403 .
0_1_0_ID6249_CS10_Chromosome_08_2099021_2099394 0_1_1_ID6249_supercont1.4_2673180_2673516 .
0_1_0_ID6250_CS10_Chromosome_08_2103905_2104316 0_1_1_ID6250_supercont1.4_360530_360950 .
0_2_0_ID4222a_CS10_Chromosome_08_4_175 . 0_2_2_ID4222a_SN15_SOL_Chromosome_05_10_178
0_2_0_ID4223a_CS10_Chromosome_08_78_216 . 0_2_2_ID4223a_SN15_SOL_Chromosome_05_2046563_2046702
0_2_0_ID4224a_CS10_Chromosome_08_314883_315802 . 0_2_2_ID4224a_SN15_SOL_Chromosome_05_308363_309256
0_2_0_ID4225a_CS10_Chromosome_08_315028_316422 . 0_2_2_ID4225a_SN15_SOL_Chromosome_05_310796_312167
0_2_0_ID4226a_CS10_Chromosome_08_315520_316870 . 0_2_2_ID4226a_SN15_SOL_Chromosome_05_2031963_2033330
0_2_0_ID4227a_CS10_Chromosome_08_318835_323064 . 0_2_2_ID4227a_SN15_SOL_Chromosome_05_314991_319528
0_2_0_ID4228a_CS10_Chromosome_08_324005_324581 . 0_2_2_ID4228a_SN15_SOL_Chromosome_05_341804_342379
0_2_0_ID4229a_CS10_Chromosome_08_324584_328373 . 0_2_2_ID4229a_SN15_SOL_Chromosome_05_2027150_2031104
0_2_0_ID4230a_CS10_Chromosome_08_325677_326646 . 0_2_2_ID4230a_SN15_SOL_Chromosome_05_2027054_2028070
0_2_0_ID4231a_CS10_Chromosome_08_326325_327775 . 0_2_2_ID4231a_SN15_SOL_Chromosome_05_342311_343709
0_2_0_ID4232a_CS10_Chromosome_08_326416_327723 . 0_2_2_ID4232a_SN15_SOL_Chromosome_05_2024851_2026176
0_2_0_ID4233a_CS10_Chromosome_08_587298_589416 . 0_2_2_ID4233a_SN15_SOL_Chromosome_05_1726019_1728398
0_2_0_ID4234a_CS10_Chromosome_08_1808109_1808239 . 0_2_2_ID4234a_SN15_SOL_Chromosome_05_706257_706384
0_2_0_ID4235a_CS10_Chromosome_08_1840322_1840444 . 0_2_2_ID4235a_SN15_SOL_Chromosome_05_706257_706375
0_2_0_ID4236a_CS10_Chromosome_08_1884317_1884428 . 0_2_2_ID4236a_SN15_SOL_Chromosome_05_654147_654258
0_2_0_ID4237a_CS10_Chromosome_08_1914870_1915690 . 0_2_2_ID4237a_SN15_SOL_Chromosome_05_343929_344805
0_2_0_ID4238a_CS10_Chromosome_08_1924862_1925234 . 0_2_2_ID4238a_SN15_SOL_Chromosome_05_513908_514280
0_2_0_ID4239a_CS10_Chromosome_08_1932156_1936381 . 0_2_2_ID4239a_SN15_SOL_Chromosome_05_514637_518978
0_2_0_ID4240a_CS10_Chromosome_08_1937162_1942101 . 0_2_2_ID4240a_SN15_SOL_Chromosome_05_545939_550861
0_2_0_ID4241a_CS10_Chromosome_08_1942866_1949596 . 0_2_2_ID4241a_SN15_SOL_Chromosome_05_560221_566933
0_2_0_ID4242a_CS10_Chromosome_08_1942866_1949596 . 0_2_2_ID4242a_SN15_SOL_Chromosome_05_438764_445476
0_2_0_ID4243a_CS10_Chromosome_08_1952577_1954491 . 0_2_2_ID4243a_SN15_SOL_Chromosome_05_573256_575155
0_2_0_ID4244a_CS10_Chromosome_08_1952577_1954491 . 0_2_2_ID4244a_SN15_SOL_Chromosome_05_420783_422682
0_2_0_ID4245a_CS10_Chromosome_08_1954488_1955022 . 0_2_2_ID4245a_SN15_SOL_Chromosome_05_648297_648828
0_2_0_ID4246a_CS10_Chromosome_08_1955612_1958786 . 0_2_2_ID4246a_SN15_SOL_Chromosome_05_648866_652400
0_2_0_ID4247a_CS10_Chromosome_08_1974386_1975158 . 0_2_2_ID4247a_SN15_SOL_Chromosome_05_652463_653231
0_2_0_ID4248a_CS10_Chromosome_08_1999394_2005380 . 0_2_2_ID4248a_SN15_SOL_Chromosome_05_657180_663150
0_2_0_ID4249a_CS10_Chromosome_08_2029857_2040457 . 0_2_2_ID4249a_SN15_SOL_Chromosome_05_698195_708549
0_2_0_ID4250a_CS10_Chromosome_08_2040460_2043938 . 0_2_2_ID4250a_SN15_SOL_Chromosome_05_720459_723807
0_2_0_ID4251a_CS10_Chromosome_08_2049263_2049400 . 0_2_2_ID4251a_SN15_SOL_Chromosome_05_1013605_1013742
0_2_0_ID4252a_CS10_Chromosome_08_2107873_2108044 . 0_2_2_ID4252a_SN15_SOL_Chromosome_05_10_178
0_2_0_ID4253a_CS10_Chromosome_08_2107879_2108050 . 0_2_2_ID4253a_SN15_SOL_Chromosome_05_10_178
0_2_0_ID4254a_CS10_Chromosome_08_2107920_2108098 . 0_2_2_ID4254a_SN15_SOL_Chromosome_05_2046514_2046697
7 changes: 7 additions & 0 deletions temp/ribbon_testing/data/ribbons2.layout
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# x, y, rotation, ha, va, color, ratio, label, ChrmName, rStart, rEnd, chrmMax
0.5, 0.6, 0, center, top, , 1.0, Bsor Chrm8, CS10_Chromosome_08, 1870000, 2050000, 2108098
0.3, 0.4, 0, center, bottom, , 0.7, Ptr sc1.4 (Rev), supercont1.4, 1420000, 1770000, 2787645
0.75, 0.4, 0, center, bottom, , 0.7, Pnod Chrm5, SN15_SOL_Chromosome_05, 300000, 750000, 2046703
# edges
e, 0, 1
e, 0, 2