Skip to content

Instantly share code, notes, and snippets.

@daler
Forked from rmzelle/genome-minimal-fail.gff
Created January 22, 2015 15:45
Show Gist options
  • Save daler/72e4a823d41663456f0c to your computer and use it in GitHub Desktop.
Save daler/72e4a823d41663456f0c to your computer and use it in GitHub Desktop.
##gff-version 3
scaffold_28 prediction gene 1 402 0 + . ID=545184;Name=545184
scaffold_28 prediction gene 805 981 0 - . ID=93782;Name=93782
scaffold_28 prediction gene 2030 2721 0 + . ID=545205;Name=545205
scaffold_28 prediction gene 3273 3545 0 - . Name=YOL159C-A;Synteny=no_synteny;SystematicGeneName=YOL159C-A;ID=38792
scaffold_28 prediction gene 5318 5833 0 - . Name=YOL159C;Synteny=no_synteny;SystematicGeneName=YOL159C;ID=38793
scaffold_28 prediction gene 6780 8600 0 - . Name=ENB1;Synteny=no_synteny;SystematicGeneName=YOL158C;StandardGeneName=ENB1;ID=38794
scaffold_28 prediction gene 9698 11467 0 - . Name=IMA4;Synteny=no_synteny;SystematicGeneName=YJL221C;StandardGeneName=IMA4;ID=38795
import gffutils
import os
def updateGenome():
genomeGFF="genome-minimal-fail.gff"
genomeGFFdb = genomeGFF.replace(".gff", ".db")
#create database for genome
if os.path.isfile(genomeGFFdb):
db = gffutils.FeatureDB(genomeGFFdb)
else:
db = gffutils.create_db(genomeGFF, dbfn=genomeGFFdb, force=True, merge_strategy="merge")
#shift coordinates of features that follow the original integration site by deletion size
downstreamGenomeFeatures = db.region('scaffold_28:6001-11467', completely_within=True)
def gen():
for feature in downstreamGenomeFeatures:
print(feature["Name"][0])
feature.start += 10000
feature.end += 10000
print(feature.end)
yield feature
db.update(gen(), merge_strategy="replace")
return
updateGenome()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment