本文整理汇总了Python中edge.models.Genome类的典型用法代码示例。如果您正苦于以下问题:Python Genome类的具体用法?Python Genome怎么用?Python Genome使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Genome类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_blast_aligns_sequence_to_antisense_strand
def test_blast_aligns_sequence_to_antisense_strand(self):
s1 = 'atcggtatcttctatgcgtatgcgtcatgattatatatattagcggcatg'
g1 = Genome(name='Foo')
g1.save()
f1 = Fragment.create_with_sequence('Bar', s1)
Genome_Fragment(genome=g1, fragment=f1, inherited=False).save()
try:
os.unlink(fragment_fasta_fn(f1))
except:
pass
build_all_genome_dbs(refresh=True)
query = str(Seq(s1[6:20]).reverse_complement())+'tttttttttt'
res = self.client.post('/edge/genomes/%s/blast/' % g1.id,
data=json.dumps(dict(program='blastn', query=query)),
content_type='application/json')
self.assertEquals(res.status_code, 200)
d = json.loads(res.content)
# only returns hit from genome
self.assertEquals(len(d), 1)
self.assertEquals(d[0]['fragment_id'], f1.id)
self.assertEquals(d[0]['query_start'], 1)
self.assertEquals(d[0]['query_end'], 14)
self.assertEquals(d[0]['subject_start'], 20)
self.assertEquals(d[0]['subject_end'], 7)
示例2: test_finds_genomes_with_name
def test_finds_genomes_with_name(self):
from edge.models import Genome
a = Genome(name='Foo')
a.save()
Genome(name='Bar %s' % a.id).save()
# no filter, return both genomes
res = self.client.get('/edge/genomes/')
self.assertEquals(res.status_code, 200)
d = json.loads(res.content)
self.assertItemsEqual([g['name'] for g in d], ['Foo', 'Bar %s' % a.id])
# finds genome by ID and query
res = self.client.get('/edge/genomes/?q=%s' % a.id)
self.assertEquals(res.status_code, 200)
d = json.loads(res.content)
self.assertItemsEqual([g['name'] for g in d], ['Foo', 'Bar %s' % a.id])
# finds one
res = self.client.get('/edge/genomes/?q=oo')
self.assertEquals(res.status_code, 200)
d = json.loads(res.content)
self.assertItemsEqual([g['name'] for g in d], ['Foo'])
# finds none
res = self.client.get('/edge/genomes/?q=ooo')
self.assertEquals(res.status_code, 200)
d = json.loads(res.content)
self.assertItemsEqual([g['name'] for g in d], [])
示例3: build_genome
def build_genome(self, circular, *templates):
g = Genome(name='Foo')
g.save()
for seq in templates:
f = Fragment.create_with_sequence('Bar', seq, circular=circular)
Genome_Fragment(genome=g, fragment=f, inherited=False).save()
try:
os.unlink(fragment_fasta_fn(f))
except:
pass
build_all_genome_dbs(refresh=True)
return Genome.objects.get(pk=g.id)
示例4: test_does_not_return_genomic_fragments
def test_does_not_return_genomic_fragments(self):
from edge.models import Genome, Genome_Fragment
res = self.client.get('/edge/fragments/')
self.assertEquals(res.status_code, 200)
self.assertEquals(len(json.loads(res.content)), 1)
g = Genome(name='Foo')
g.save()
Genome_Fragment(genome=g, fragment_id=self.fragment_id, inherited=False).save()
res = self.client.get('/edge/fragments/')
self.assertEquals(res.status_code, 200)
self.assertEquals(len(json.loads(res.content)), 0)
示例5: test_import_feature_ending_at_last_base
def test_import_feature_ending_at_last_base(self):
data = """##gff-version 3
chrI\tTest\tchromosome\t1\t160\t.\t.\t.\tID=i1;Name=f1
chrI\tTest\tcds\t20\t28\t.\t-\t.\tID=i2;Name=f2
chrI\tTest\trbs\t20\t160\t.\t+\t.\tID=i3
###
##FASTA
>chrI
CCACACCACACCCACACACCCACACACCACACCACACACCACACCACACCCACACACACACATCCTAACACTACCCTAAC
ACAGCCCTAATCTAACCCTGGCCAACCTGTCTCTCAACTTACCCTCCATTACCCTGCCTCCACTCGTTACCCTGTCCCAT
"""
with tempfile.NamedTemporaryFile(mode='w+', delete=False) as f:
f.write(data)
f.close()
genome = Genome.import_gff('Foo', f.name)
os.unlink(f.name)
# verify chrI fragment
chrI = [fr.indexed_fragment() for fr in genome.fragments.all() if fr.name == 'chrI'][0]
self.assertEquals(len(chrI.sequence), 160)
# verify skips annotation on entire sequence
self.assertEquals(len(chrI.annotations()), 2)
self.assertEquals(chrI.annotations()[1].base_first, 20)
self.assertEquals(chrI.annotations()[1].base_last, 160)
self.assertEquals(chrI.annotations()[1].feature.name, 'i3') # no name, loaded ID
self.assertEquals(chrI.annotations()[1].feature.strand, 1)
self.assertEquals(chrI.annotations()[0].base_first, 20)
self.assertEquals(chrI.annotations()[0].base_last, 28)
self.assertEquals(chrI.annotations()[0].feature.name, 'f2')
self.assertEquals(chrI.annotations()[0].feature.strand, -1)
示例6: test_can_insert_then_insert_and_get_second_insert_only_as_changes
def test_can_insert_then_insert_and_get_second_insert_only_as_changes(self):
genome = Genome.create('Foo')
self.assertEquals(len(genome.fragments.all()), 0)
# add initial sequence
s = 'atggcatattcgcagct'
genome.add_fragment('chrI', s)
g1 = genome
# insert
g_u = g1.update()
with g_u.update_fragment_by_name('chrI') as f:
f.insert_bases(3, 'gataca')
g2 = g_u
# insert again
g_u = g2.update()
with g_u.update_fragment_by_name('chrI') as f:
f.insert_bases(9, 'gataca')
g3 = g_u
changes = g2.indexed_genome().changes()
self.assertEquals(len(changes), 3)
self.assertItemsEqual([c.location for c in changes], [(1, 2), (3, 8), (9, len(s) + 6)])
changes = g3.indexed_genome().changes()
self.assertEquals(len(changes), 3)
self.assertItemsEqual([c.location for c in changes], [
(3, 8), (9, 14), (15, len(s) + 6 + 6)])
示例7: test_find_annotation_by_name
def test_find_annotation_by_name(self):
genome = Genome.create('Foo')
s = 'atggcatattcgcagct'
f = genome.add_fragment('chrI', s)
f.annotate(3, 8, 'Foo gene', 'gene', 1)
annotations = genome.indexed_genome().find_annotation_by_name('Foo gene')
self.assertEquals(len(annotations), 1)
self.assertEquals(f.id in annotations, True)
self.assertEquals(len(annotations[f.id]), 1)
self.assertEquals(annotations[f.id][0].base_first, 3)
self.assertEquals(annotations[f.id][0].base_last, 8)
self.assertEquals(annotations[f.id][0].feature.name, 'Foo gene')
# case insensitive
annotations = genome.indexed_genome().find_annotation_by_name('foo gene')
self.assertEquals(len(annotations), 1)
self.assertEquals(f.id in annotations, True)
self.assertEquals(len(annotations[f.id]), 1)
self.assertEquals(annotations[f.id][0].base_first, 3)
self.assertEquals(annotations[f.id][0].base_last, 8)
self.assertEquals(annotations[f.id][0].feature.name, 'Foo gene')
annotations = genome.indexed_genome().find_annotation_by_name('Foo bar')
self.assertEquals(len(annotations), 0)
示例8: test_does_not_return_duplicate_hits_for_circular_fragments
def test_does_not_return_duplicate_hits_for_circular_fragments(self):
s1 = 'atcggtatcttctatgcgtatgcgtcatgattatatatattagcggcatg'
g1 = Genome(name='Foo')
g1.save()
f1 = Fragment.create_with_sequence('Bar', s1, circular=True)
Genome_Fragment(genome=g1, fragment=f1, inherited=False).save()
try:
os.unlink(fragment_fasta_fn(f1))
except:
pass
build_all_genome_dbs(refresh=True)
g1 = Genome.objects.get(pk=g1.id)
query = s1[5:20] + 'tttttttttt'
r = blast_genome(g1, 'blastn', query)
self.assertEquals(len(r), 1)
示例9: test_add_fragments_to_genome_in_place
def test_add_fragments_to_genome_in_place(self):
genome = Genome.create('Foo')
self.assertEquals(len(genome.fragments.all()), 0)
s = 'atggcatattcgcagct'
genome.add_fragment('chrI', s)
self.assertEquals(len(genome.fragments.all()), 1)
self.assertEquals(genome.fragments.all()[0].name, 'chrI')
self.assertEquals(genome.fragments.all()[0].indexed_fragment().sequence, s)
示例10: on_post
def on_post(self, request):
genome_parser = RequestParser()
genome_parser.add_argument('name', field_type=str, required=True, location='json')
genome_parser.add_argument('notes', field_type=str, location='json')
args = genome_parser.parse_args(request)
genome = Genome.create(name=args['name'], notes=args['notes'])
return GenomeView.to_dict(genome), 201
示例11: test_user_defined_fragments_does_not_include_genomic_fragment
def test_user_defined_fragments_does_not_include_genomic_fragment(self):
genome = Genome.create('Foo')
s = 'atggcatattcgcagct'
genome.add_fragment('chrI', s)
f = Fragment.create_with_sequence('Bar', 'aacctaaaattataa')
self.assertEquals(len(Fragment.user_defined_fragments()), 1)
self.assertEquals(Fragment.user_defined_fragments()[0].name, 'Bar')
self.assertEquals(Fragment.user_defined_fragments()[0].id, f.id)
示例12: test_import_gff_creates_fragments_and_annotate_features
def test_import_gff_creates_fragments_and_annotate_features(self):
data = """##gff-version 3
chrI\tTest\tchromosome\t1\t160\t.\t.\t.\tID=i1;Name=f1
chrI\tTest\tcds\t30\t80\t.\t-\t.\tID=i2;Name=f2
chrI\tTest\trbs\t20\t28\t.\t+\t.\tID=i3
chrII\tTest\tgene\t40\t60\t.\t-\t.\tID=f4;gene=g4
chrII\tTest\tgene\t20\t80\t.\t+\t.\tID=i5;Name=f5
###
##FASTA
>chrI
CCACACCACACCCACACACCCACACACCACACCACACACCACACCACACCCACACACACACATCCTAACACTACCCTAAC
ACAGCCCTAATCTAACCCTGGCCAACCTGTCTCTCAACTTACCCTCCATTACCCTGCCTCCACTCGTTACCCTGTCCCAT
>chrII
CCACACCACACCCACACACCCACACACCACACCACACACCACACCACACCCACACACACACATCCTAACACTACCCTAAC
ACAGCCCTAATCTAACCCTGGCCAACCTGTCTCTCAACTTACCCTCCATTACCCTGCCTCCACTCGTTACCCTGTCCCAT
"""
with tempfile.NamedTemporaryFile(mode='w+', delete=False) as f:
f.write(data)
f.close()
genome = Genome.import_gff('Foo', f.name)
os.unlink(f.name)
# created one fragment for each sequence in GFF file
self.assertItemsEqual([fr.name for fr in genome.fragments.all()], ['chrI', 'chrII'])
# verify chrI fragment
chrI = [fr.indexed_fragment() for fr in genome.fragments.all() if fr.name == 'chrI'][0]
self.assertEquals(len(chrI.sequence), 160)
# verify skips annotation on entire sequence
self.assertEquals(len(chrI.annotations()), 2)
self.assertEquals(chrI.annotations()[0].base_first, 20)
self.assertEquals(chrI.annotations()[0].base_last, 28)
self.assertEquals(chrI.annotations()[0].feature.name, 'i3') # no name, loaded ID
self.assertEquals(chrI.annotations()[0].feature.strand, 1)
self.assertEquals(chrI.annotations()[1].base_first, 30)
self.assertEquals(chrI.annotations()[1].base_last, 80)
self.assertEquals(chrI.annotations()[1].feature.name, 'f2')
self.assertEquals(chrI.annotations()[1].feature.strand, -1)
# verify chrII fragment
chrII = [fr.indexed_fragment() for fr in genome.fragments.all() if fr.name == 'chrII'][0]
self.assertEquals(len(chrII.sequence), 160)
# consecutive annotations merged even though they span multiple chunks
self.assertEquals(len(chrII.annotations()), 2)
self.assertEquals(chrII.annotations()[0].base_first, 20)
self.assertEquals(chrII.annotations()[0].base_last, 80)
self.assertEquals(chrII.annotations()[0].feature.name, 'f5')
self.assertEquals(chrII.annotations()[0].feature.strand, 1)
self.assertEquals(chrII.annotations()[1].base_first, 40)
self.assertEquals(chrII.annotations()[1].base_last, 60)
self.assertEquals(chrII.annotations()[1].feature.name, 'g4') # has gene, use gene name
self.assertEquals(chrII.annotations()[1].feature.strand, -1)
示例13: test_can_update_fragment_by_id_and_assign_new_name
def test_can_update_fragment_by_id_and_assign_new_name(self):
genome = Genome.create('Foo')
f0 = genome.add_fragment('chrI', 'atggcatattcgcagct')
self.assertItemsEqual([f.name for f in genome.fragments.all()], ['chrI'])
# insert
g = genome.update()
with g.update_fragment_by_fragment_id(f0.id, 'foobar') as f:
f.insert_bases(3, 'gataca')
self.assertItemsEqual([fr.name for fr in g.fragments.all()], ['foobar'])
示例14: test_does_not_align_sequence_across_boundry_for_non_circular_fragment
def test_does_not_align_sequence_across_boundry_for_non_circular_fragment(self):
s1 = 'atcggtatcttctatgcgtatgcgtcatgattatatatattagcggcatg'
g1 = Genome(name='Foo')
g1.save()
f1 = Fragment.create_with_sequence('Bar', s1, circular=False)
Genome_Fragment(genome=g1, fragment=f1, inherited=False).save()
try:
os.unlink(fragment_fasta_fn(f1))
except:
pass
build_all_genome_dbs(refresh=True)
g1 = Genome.objects.get(pk=g1.id)
query = (s1[-10:] + s1[0:10]) + 'tttttttttt'
res = blast_genome(g1, 'blastn', query)
for r in res:
self.assertEquals(r.subject_start > 0 and r.subject_start <= len(s1), True)
self.assertEquals(r.subject_end > 0 and r.subject_end <= len(s1), True)
示例15: test_update_fragment_by_id
def test_update_fragment_by_id(self):
genome = Genome.create('Foo')
s = 'atggcatattcgcagct'
f1 = genome.add_fragment('chrI', s)
g2 = genome.update()
with g2.update_fragment_by_fragment_id(f1.id) as f2:
f2.insert_bases(3, 'gataca')
self.assertEquals(g2.fragments.all()[0].indexed_fragment(
).sequence, s[0:2] + 'gataca' + s[2:])
self.assertEquals(genome.fragments.all()[0].indexed_fragment().sequence, s)