Order by Count
Verfasst: Mittwoch 27. Mai 2009, 09:49
Hallo!
Ich möchte in meiner Datenbank absteigend eines Zählwertes sortieren. Leider funktioniert das nicht richtig. Hier mal mein Code:
all_hits.txt hat folgenden Inhalt:
ALL Contig5535 TAAGCACAACATGGAGAACAG 485 506 466 486
EFF Contig5535 TAAGCACAACATGGAGAACAG 485 506 466 486
ALL Contig5534 TAAGCACAACATGGAGAACAG 485 506 751 771
EFF Contig5534 TAAGCACAACATGGAGAACAG 485 506 751 771
ALL Contig5534 ACCCGATGCCAAAATCCAAGA 560 581 826 846
ALL Contig5534 TGGTTCTGATGAACAAACTTC 8 29 274 294
ALL Contig5535 AGCTAAGCACAACATGGAGAA 482 503 463 483
ALL Contig5534 AGCTAAGCACAACATGGAGAA 482 503 748 768
ALL Contig5534 GAAAATGTAATCCTGCCAAGA 261 282 527 547
ALL Contig5534 CAGCCCTCCTTAATTTGTCAC 592 613 858 878
ALL Contig5534 GCGATCTGGTGCTGTAAAGCC 764 785 1030 1050
ALL Contig5534 TACTTTGTTCAGTCTCTCAAT 716 737 982 1002
ALL Contig5534 CAGCAGCTACTTTGTTCAGTC 709 730 975 995
ALL Contig5534 TTGCTGACCGTGGGCTTTCTA 220 241 486 506
ALL Contig5534 ATTTGGGAAGTGATTCCATAG 424 445 690 710
EFF Contig5534 ATTTGGGAAGTGATTCCATAG 424 445 690 710
ALL Contig5534 AAAGGGAAAATGTAATCCTGC 256 277 522 542
ALL Contig5535 TACGAGTTCCAGGTGATAGGA 169 190 150 170
ALL Contig5534 TACGAGTTCCAGGTGATAGGA 169 190 435 455
ALL Contig5535 GAAACAGGGAACCCTGAAGCT 678 699 659 679
ALL Contig5534 GAAACAGGGAACCCTGAAGCT 678 699 944 964
ALL Contig5534 ATAAACTTGCTGGTTGGCCTT 531 552 797 817
ALL Contig5534 GATTCCCGAGAATAATTTCGT 337 358 603 623
Was mache ich falsch?
Liebe Grüsse
Stefanie
Ich möchte in meiner Datenbank absteigend eines Zählwertes sortieren. Leider funktioniert das nicht richtig. Hier mal mein Code:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import os
import sys
import sqlite3
FILENAME = "hits.sdb3"
contig_file = open("all_hits.txt", 'r')
def parse_cseq(fh):
for line in fh:
line = line.replace('\n', '')
yield line.split('\t')
def create_db_structure(conn):
sql = """CREATE TABLE contigs
(ID INTEGER PRIMARY KEY AUTOINCREMENT,
code TEXT,
name TEXT,
seq TEXT,
start NUM,
end NUM,
sub_start NUM,
sub_end NUM)
"""
conn.execute(sql)
conn.commit()
conn.executemany("""INSERT INTO contigs
(code, name, seq, start, end, sub_start, sub_end)
VALUES (?, ?, ?, ? ,? , ?, ?)
""", parse_cseq(contig_file))
conn.commit()
def select_all_name(conn, sbj):
sql = """SELECT COUNT(c.code) AS counting, c.name
FROM contigs AS c
WHERE c.name = ?
AND c.code='ALL'
ORDER BY counting DESC
"""
cur = conn.cursor()
cur.execute(sql, (sbj,))
return cur
def main():
if os.path.isfile(FILENAME):
os.remove(FILENAME)
conn = sqlite3.connect(FILENAME)
create_db_structure(conn)
all = ['Contig5535', 'Contig5534']
for a in all:
a = a.replace('\n', '')
cursor_all = select_all_name(conn, a)
for line in cursor_all:
print line
conn.close()
if __name__ == "__main__":
main()
ALL Contig5535 TAAGCACAACATGGAGAACAG 485 506 466 486
EFF Contig5535 TAAGCACAACATGGAGAACAG 485 506 466 486
ALL Contig5534 TAAGCACAACATGGAGAACAG 485 506 751 771
EFF Contig5534 TAAGCACAACATGGAGAACAG 485 506 751 771
ALL Contig5534 ACCCGATGCCAAAATCCAAGA 560 581 826 846
ALL Contig5534 TGGTTCTGATGAACAAACTTC 8 29 274 294
ALL Contig5535 AGCTAAGCACAACATGGAGAA 482 503 463 483
ALL Contig5534 AGCTAAGCACAACATGGAGAA 482 503 748 768
ALL Contig5534 GAAAATGTAATCCTGCCAAGA 261 282 527 547
ALL Contig5534 CAGCCCTCCTTAATTTGTCAC 592 613 858 878
ALL Contig5534 GCGATCTGGTGCTGTAAAGCC 764 785 1030 1050
ALL Contig5534 TACTTTGTTCAGTCTCTCAAT 716 737 982 1002
ALL Contig5534 CAGCAGCTACTTTGTTCAGTC 709 730 975 995
ALL Contig5534 TTGCTGACCGTGGGCTTTCTA 220 241 486 506
ALL Contig5534 ATTTGGGAAGTGATTCCATAG 424 445 690 710
EFF Contig5534 ATTTGGGAAGTGATTCCATAG 424 445 690 710
ALL Contig5534 AAAGGGAAAATGTAATCCTGC 256 277 522 542
ALL Contig5535 TACGAGTTCCAGGTGATAGGA 169 190 150 170
ALL Contig5534 TACGAGTTCCAGGTGATAGGA 169 190 435 455
ALL Contig5535 GAAACAGGGAACCCTGAAGCT 678 699 659 679
ALL Contig5534 GAAACAGGGAACCCTGAAGCT 678 699 944 964
ALL Contig5534 ATAAACTTGCTGGTTGGCCTT 531 552 797 817
ALL Contig5534 GATTCCCGAGAATAATTTCGT 337 358 603 623
Was mache ich falsch?
Liebe Grüsse
Stefanie