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

How can I put italics to my genes? #38

Open
BenjaDuran opened this issue Jul 23, 2020 · 4 comments
Open

How can I put italics to my genes? #38

BenjaDuran opened this issue Jul 23, 2020 · 4 comments

Comments

@BenjaDuran
Copy link

I have tried a lot of stuff, the code keeps crashing

@veghp
Copy link
Member

veghp commented Jul 23, 2020

There is no such functionality, but you can install DNA Features Viewer in editable form. After downloading, go to the folder and install with:
pip install -e .

then you can edit the plotting function locally: add a parameter in the text definition after line 256 in MatplotlibPlottableMixin.py.
The section now looks like this:

        text = ax.text(
            x,
            y,
            label,
            horizontalalignment="center",
            verticalalignment="center",
            bbox=bbox,
            fontdict=fontdict,
            zorder=2,
            style='italic',  # added line
        )

index

@veghp
Copy link
Member

veghp commented Jul 23, 2020

Alternatively, you can set or change plotting parameters:

import matplotlib.pyplot as plt
plt.rcParams["font.style"] = "italic"

@veghp
Copy link
Member

veghp commented Jul 23, 2020

Finally, you can also save the plot in a vector graphics format (svg) and use an image editor (Inkscape) to change the text.

@Zulko
Copy link
Member

Zulko commented Jul 23, 2020

The font.style='italic' is part of the fontdict, which you can customize separately for each feature in DNA Features Viewer. I don't know the use case here but something like this should work:

from dna_features_viewer import BiopythonTranslator

class MyCustomTranslator(BiopythonTranslator):
    def compute_feature_fontdict(self, feature):
        return {'style': 'italic'} if (feature.type == "CDS") else {}

graphic_record = MyCustomTranslator().translate_record("example_sequence.gb")
ax, _ = graphic_record.plot(figure_width=10)

If you want only part of your label to be italic, then it may be more complicated but you could try Matplotlib's Latex rendering feature

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants