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

GFF plot doesnt work #34

Open
ZarulHanifah opened this issue Apr 22, 2020 · 4 comments
Open

GFF plot doesnt work #34

ZarulHanifah opened this issue Apr 22, 2020 · 4 comments

Comments

@ZarulHanifah
Copy link

Hello DnaFeaturesViewer developers,

I can't plot my gff (attached, had to change extension to txt ATCC_13124.gff.txt). There is supposed to be 2997 features, but only 1 record was produced from GFF.parse().

@veghp
Copy link
Member

veghp commented Apr 22, 2020

Thank you for your interest in DnaFeaturesViewer. I had a look at your GFF file and it indeed contains only one record (which is 3.2M bp long) with 2997 features.

What is your expected outcome? I made a smaller version of the file (containing the first 5 features) and it plots fine:

test

@ZarulHanifah
Copy link
Author

Amazing! What is the code to plot that? It is much simpler with genbank files, but from the tutorial, it wasn't clear how to start from GFF.parse() to get to the plot.

Please show me the code, pleaseee.

Thank you.

@veghp
Copy link
Member

veghp commented Apr 23, 2020

If you have a small GFF file, you can run:

from dna_features_viewer import BiopythonTranslator
graphic_record = BiopythonTranslator().translate_record("yourfile.gff")
ax, _ = graphic_record.plot(figure_width=10, strand_in_label_threshold=7)

If you want to plot only a section of the record (from start to end):

from dna_features_viewer import BiopythonTranslator
from BCBio import GFF
in_file = "ATCC_13124.gff"

in_handle = open(in_file)
gff_records = []
for rec in GFF.parse(in_handle):
    print(rec)
    gff_records.append(rec)
in_handle.close()

start = 0
end = 5000
record = BiopythonTranslator().translate_record(gff_records[0][start:end])
ax, _ = record.plot(figure_width=10, strand_in_label_threshold=7)

Note that GFF.parse() is part of the BCBio package, not Dna Features Viewer.

@ZarulHanifah
Copy link
Author

fig, ax = plt.subplots()

gff_path = "results/ALL_PROKKA/ATCC_13124/ATCC_13124.gff"

gff_records = []

with open(gff_path) as in_handle:
    for rec in GFF.parse(in_handle):
        gff_records.append(rec)
        
start, end = 0, 5000
record = BiopythonTranslator().translate_record(gff_records[0][start:end])
record.plot(ax= ax)

image

Beautiful! Thank you!!

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

2 participants