Code Monkey home page Code Monkey logo

Comments (8)

Zulko avatar Zulko commented on July 21, 2024 1

This can be done by setting the record's feature_level_height to 0, which can be done at record creation of afterwards. Here is a minimal example:

from dna_features_viewer import GraphicFeature, GraphicRecord
import numpy as np

record = GraphicRecord(sequence_length=1000, features=[
    GraphicFeature(
        start=50 * i + np.random.randint(-20, 20),
        end=50 * i + np.random.randint(30, 70),
        strand= [-1, 1][i % 2],
        color=["limegreen", "yellow", "cyan"][i % 3],
    )
    for i in range(20)
])
record.feature_level_height = 0  # <=====
ax, _ = record.plot(figure_width=10);

Selection_641
Selection_642

from dnafeaturesviewer.

FruityPerdix avatar FruityPerdix commented on July 21, 2024

Hey,
I was having the same issue. In the end I used illustrator to align the arrows to the line. This kind of defeats the point.
I'm posting this to emphasize that there is more interest for this option.

Other than that I enjoy the library!

from dnafeaturesviewer.

Zulko avatar Zulko commented on July 21, 2024

@ghutinet @FruityPerdix there may be a trick to do that I am not 100% sure I understand what the expected result is, do you have a screenshot/schema?

from dnafeaturesviewer.

FruityPerdix avatar FruityPerdix commented on July 21, 2024

This is what would be ideal:

overlapping_arrows

from dnafeaturesviewer.

ghutinet avatar ghutinet commented on July 21, 2024

Thanks, that works to align the arrows! However the annotation heights are not updated and stay at weird places:
phiST

from dnafeaturesviewer.

avery-r avatar avery-r commented on July 21, 2024

I'm curious to know if there was ever a fix for this issue. I had to mess around with the label font size and labels_spacing settings to find a combination of values that resulted in all labels being attached to lines.

from dnafeaturesviewer.

veghp avatar veghp commented on July 21, 2024

This problem is a bit complicated and may need refactoring, but redefining the below function before plotting at least connects the boxes until a proper solution is implemented:

def new_determine_annotation_height(levels):
    return 1
record.determine_annotation_height = new_determine_annotation_height

example

from dnafeaturesviewer.

ZongzhiWu avatar ZongzhiWu commented on July 21, 2024

How about circular genomes?

from dnafeaturesviewer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.