diff options
Diffstat (limited to 'web/webqtl/qtlminer/GeneUtil.py')
-rwxr-xr-x | web/webqtl/qtlminer/GeneUtil.py | 658 |
1 files changed, 0 insertions, 658 deletions
diff --git a/web/webqtl/qtlminer/GeneUtil.py b/web/webqtl/qtlminer/GeneUtil.py deleted file mode 100755 index 3ae7f3c0..00000000 --- a/web/webqtl/qtlminer/GeneUtil.py +++ /dev/null @@ -1,658 +0,0 @@ -import string -import os - - -from base import webqtlConfig - - -#Just return a list of dictionaries -#each dictionary contains sub-dictionary -def loadGenes(cursor, chrName, diffCol, startMb, endMb, webqtlDb =None, species='mouse'): - #cursor.execute("desc GeneList") - #results = cursor.fetchall() - #fetchFields = map(lambda X:X[0], results) - fetchFields = ['SpeciesId', 'Id', 'GeneSymbol', 'GeneDescription', 'Chromosome', 'TxStart', 'TxEnd', - 'Strand', 'GeneID', 'NM_ID', 'kgID', 'GenBankID', 'UnigenID', 'ProteinID', 'AlignID', - 'exonCount', 'exonStarts', 'exonEnds', 'cdsStart', 'cdsEnd'] - - ##List All Species in the Gene Table - speciesDict = {} - cursor.execute("select Species.Name, GeneList.SpeciesId from Species, GeneList where \ - GeneList.SpeciesId = Species.Id group by GeneList.SpeciesId") - results = cursor.fetchall() - for item in results: - speciesDict[item[0]] = item[1] - - ##List current Species and other Species - speciesId = speciesDict[species] - otherSpecies = map(lambda X: [X, speciesDict[X]], speciesDict.keys()) - otherSpecies.remove([species, speciesId]) - - cursor.execute("""SELECT %s from GeneList - where - SpeciesId = %d AND Chromosome = '%s' AND - ((TxStart > %f and TxStart <= %f) OR (TxEnd > %f and TxEnd <= %f)) - order by txStart - """ - % (string.join(fetchFields, ", "), speciesId, chrName, startMb, endMb, startMb, endMb)) - results = cursor.fetchall() - GeneList = [] - - if results: - for result in results: - newdict = {} - for j, item in enumerate(fetchFields): - newdict[item] = result[j] - #count SNPs if possible - if diffCol and species=='mouse': - cursor.execute(""" - select - count(*) from BXDSnpPosition - where - Chr = '%s' AND Mb >= %2.6f AND Mb < %2.6f AND - StrainId1 = %d AND StrainId2 = %d - """ % (chrName, newdict["TxStart"], newdict["TxEnd"], diffCol[0], diffCol[1])) - newdict["snpCount"] = cursor.fetchone()[0] - newdict["snpDensity"] = newdict["snpCount"]/(newdict["TxEnd"]-newdict["TxStart"])/1000.0 - else: - newdict["snpDensity"] = newdict["snpCount"] = 0 - - try: - newdict['GeneLength'] = 1000.0*(newdict['TxEnd'] - newdict['TxStart']) - except: - pass - - #load gene from other Species by the same name - for item in otherSpecies: - othSpec, othSpecId = item - newdict2 = {} - - cursor.execute("SELECT %s from GeneList where SpeciesId = %d and geneSymbol= '%s' limit 1" % - (string.join(fetchFields, ", "), othSpecId, newdict["GeneSymbol"])) - resultsOther = cursor.fetchone() - if resultsOther: - for j, item in enumerate(fetchFields): - newdict2[item] = resultsOther[j] - - #count SNPs if possible, could be a separate function - if diffCol and othSpec == 'mouse': - cursor.execute(""" - select - count(*) from BXDSnpPosition - where - Chr = '%s' AND Mb >= %2.6f AND Mb < %2.6f AND - StrainId1 = %d AND StrainId2 = %d - """ % (chrName, newdict["TxStart"], newdict["TxEnd"], diffCol[0], diffCol[1])) - - - - newdict2["snpCount"] = cursor.fetchone()[0] - newdict2["snpDensity"] = newdict2["snpCount"]/(newdict2["TxEnd"]-newdict2["TxStart"])/1000.0 - else: - newdict2["snpDensity"] = newdict2["snpCount"] = 0 - - try: - newdict2['GeneLength'] = 1000.0*(newdict2['TxEnd'] - newdict2['TxStart']) - except: - pass - - newdict['%sGene' % othSpec] = newdict2 - - GeneList.append(newdict) - - return GeneList - - - - - - -def loadGenesForQTLminer(cursor, chrName, diffCol, startMb, endMb, webqtlDb =None, species='mouse', databaseA='HC_M2_0606_P', databaseB='HC_M2CB_1205_R', databaseC='Illum_LXS_Hipp_loess0807', str1='C57BL/6J', str2='DBA/2J'): - #cursor.execute("desc GeneList") - #results = cursor.fetchall() - #fetchFields = map(lambda X:X[0], results) - fetchFields = ['SpeciesId', 'Id', 'GeneSymbol', 'GeneDescription', 'Chromosome', 'TxStart', 'TxEnd', - 'Strand', 'GeneID', 'NM_ID', 'kgID', 'GenBankID', 'UnigenID', 'ProteinID', 'AlignID', - 'exonCount', 'exonStarts', 'exonEnds', 'cdsStart', 'cdsEnd'] - - ##List All Species in the Gene Table - speciesDict = {} - cursor.execute("select Species.Name, GeneList.SpeciesId from Species, GeneList where \ - GeneList.SpeciesId = Species.Id group by GeneList.SpeciesId") - results = cursor.fetchall() - for item in results: - speciesDict[item[0]] = item[1] - - -# fpText = open(os.path.join(webqtlConfig.TMPDIR, "strains") + str(j) + '.txt','wb') -# fpText.write("strain: '%d' \n" % thisone ) -# fpText.close() -# strainids.append(thisone) - - - - - ##List current Species and other Species - speciesId = speciesDict[species] - otherSpecies = map(lambda X: [X, speciesDict[X]], speciesDict.keys()) - otherSpecies.remove([species, speciesId]) - - cursor.execute("""SELECT %s from GeneList - where - SpeciesId = %d AND Chromosome = '%s' AND - ((TxStart > %f and TxStart <= %f) OR (TxEnd > %f and TxEnd <= %f)) - order by txStart - """ - % (string.join(fetchFields, ", "), speciesId, chrName, startMb, endMb, startMb, endMb)) - results = cursor.fetchall() - GeneList = [] - - if results: - for result in results: - newdict = {} - for j, item in enumerate(fetchFields): - newdict[item] = result[j] - -## get pathways - - cursor.execute(""" - select - pathway - FROM - kegg.mmuflat - where - gene = '%s' - """ % (newdict["GeneID"]) ) - - resAAA = cursor.fetchall() - if resAAA: - myFields = ['pathways'] - for j, item in enumerate(myFields): - temp = [] - for k in resAAA: - temp.append(k[j]) - newdict["pathways"] = temp - - cursor.execute(""" - select - name - FROM - kegg.mmuflat - where - gene = '%s' - """ % (newdict["GeneID"]) ) - - resAAA = cursor.fetchall() - if resAAA: - myFields = ['pathwaynames'] - for j, item in enumerate(myFields): - temp = [] - for k in resAAA: - temp.append(k[j]) - newdict["pathwaynames"] = temp - -## get GO terms - - cursor.execute(""" - SELECT - distinct go.term.name - FROM go.gene_product - INNER JOIN go.dbxref ON (go.gene_product.dbxref_id=go.dbxref.id) - INNER JOIN go.association ON (go.gene_product.id=go.association.gene_product_id) - INNER JOIN go.term ON (go.association.term_id=go.term.id) - WHERE - go.dbxref.xref_key = (select mgi from go.genemgi where gene='%s' limit 1) - AND - go.dbxref.xref_dbname = 'MGI' - AND - go.term.term_type='biological_process' - """ % (newdict["GeneID"]) ) - - resAAA = cursor.fetchall() - if resAAA: - myFields = ['goterms'] - for j, item in enumerate(myFields): - temp = [] - for k in resAAA: - temp.append(k[j]) - newdict["goterms"] = temp - - - - - - - newdict["snpDensity"] = newdict["snpCount"] = newdict["snpCountall"] = newdict["snpCountmis"] = newdict["snpCountBXD"] = newdict["snpCountmissel"] = 0 - - #count SNPs if possible - if diffCol and species=='mouse': - cursor.execute(""" - select - count(*) from BXDSnpPosition - where - Chr = '%s' AND Mb >= %2.6f AND Mb < %2.6f AND - StrainId1 = %d AND StrainId2 = %d - """ % (chrName, newdict["TxStart"], newdict["TxEnd"], diffCol[0], diffCol[1])) - newdict["snpCount"] = cursor.fetchone()[0] - newdict["snpDensity"] = newdict["snpCount"]/(newdict["TxEnd"]-newdict["TxStart"])/1000.0 - else: - newdict["snpDensity"] = newdict["snpCount"] = 0 - - try: - newdict['GeneLength'] = 1000.0*(newdict['TxEnd'] - newdict['TxStart']) - except: - pass - - - -#self.cursor.execute("SELECT geneSymbol, chromosome, txStart, txEnd from GeneList where SpeciesId= 1 and geneSymbol = %s", opt.geneName) - - - - - ## search with gene name... doesnt matter. it changed to start and end position anyway - ##self.cursor.execute("SELECT geneSymbol, chromosome, txStart, txEnd from GeneList where SpeciesId= 1 and geneSymbol = %s", newdict["GeneSymbol"]) - - - #count SNPs for all strains - cursor.execute(""" - SELECT - distinct SnpAll.Id - from - SnpAll - where - SpeciesId = '1' and SnpAll.Chromosome = '%s' AND - SnpAll.Position >= %2.6f and SnpAll.Position < %2.6f AND - SnpAll.Exon='Y' - """ % (newdict["Chromosome"], newdict["TxStart"], newdict["TxEnd"])) - snpfetch = cursor.fetchall() - newdict["snpCountmis"] = len(snpfetch) - -## # count SNPs for selected strains - - sql = """SELECT - distinct SnpAll.Id, `%s`, `%s` - from - SnpAll, SnpPattern - where - SpeciesId = '1' and SnpAll.Chromosome = '%s' AND - SnpAll.Position >= %2.6f and SnpAll.Position < %2.6f and SnpAll.Id = SnpPattern.SnpId AND - SnpPattern.`%s` != SnpPattern.`%s` AND - SnpAll.Exon='Y' - """ % (str1, str2, newdict["Chromosome"], newdict["TxStart"], newdict["TxEnd"], str1, str2) - cursor.execute(sql) - ressnp = cursor.fetchall() - newdict["snpCountmissel"] = len(ressnp) - newdict["hassnp"] = 'n' - if len(ressnp)>0 : - newdict["hassnp"]= 'y' -## ####################################### NEW NEW NEW - - - - - - - - # count Indels for BXD mice - cursor.execute(""" - SELECT - distinct IndelAll.Name, IndelAll.Chromosome, IndelAll.SourceId, IndelAll.Mb_start, - IndelAll.Mb_end, IndelAll.Strand, IndelAll.Type, IndelAll.Size, IndelAll.InDelSequence, - SnpSource.Name - from - SnpSource, IndelAll - where - IndelAll.SpeciesId = '1' and IndelAll.Chromosome = '%s' AND - IndelAll.Mb_start >= %2.6f and IndelAll.Mb_start < (%2.6f+.0010) AND - SnpSource.Id = IndelAll.SourceId - order by IndelAll.Mb_start - """ % (newdict["Chromosome"], newdict["TxStart"], newdict["TxEnd"])) - - ressnp = cursor.fetchall() - newdict["indelCountBXD"] = len(ressnp) - newdict["hasindel"] = 'n' - newdict["hasexpr"] = 'n' - newdict["hascis"] = 'n' - newdict["score"] = 0 - if len(ressnp)>0 : - newdict["hasindel"]= 'y' - -## # cursor.execute(""" -## # select -## # Name from ProbeSet -## # where -## # GeneId = '%s' AND ChipId=4 limit 1 -## # """ % (newdict["GeneID"])) -## # if species=='mouse': -## # cursor.execute(""" -## # select -## # Name from ProbeSet -## # where -## # GeneId = '%s' AND ChipId=4 -## # """ % (newdict["GeneID"])) -## # results = cursor.fetchall() -## # psets = [] -## # for item in results: -## # psets.append(item) -## # newdict["probeset"] = psets -## # -## # else: -## # newdict["probeset"] = "empty" - - - - - if species=='mouse': - cursor.execute(""" - select - distinct 0, - ProbeSet.Name as TNAME, - round(ProbeSetXRef.Mean,1) as TMEAN, - round(ProbeSetXRef.LRS,1) as TLRS, - ProbeSet.Chr_num as TCHR_NUM, - ProbeSet.Mb as TMB, - ProbeSet.Symbol as TSYMBOL, - ProbeSet.name_num as TNAME_NUM - FROM ProbeSetXRef, ProbeSetFreeze, ProbeSet - where - ( MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol, - alias,GenbankId,UniGeneId, Probe_Target_Description) - AGAINST ('%s' IN BOOLEAN MODE) ) - and ProbeSet.symbol = '%s' - and ProbeSet.Id = ProbeSetXRef.ProbeSetId - and ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id - and ProbeSetFreeze.Id = (select Id from ProbeSetFreeze where Name='%s' limit 1) - """ % (newdict["GeneSymbol"],newdict["GeneSymbol"],databaseA)) - resA = cursor.fetchall() - - if resA: - myFields = ['dummyA','probesetA','meanA','newlrsA','probesetchrA','probesetmbA','probesetsymbolA','probesetnamenumA'] - -# fpText = open(os.path.join(webqtlConfig.TMPDIR, "res") + '.txt','wb') - #fpText.write("newdictgeneid '%s' \n" % newdict["GeneId"]) - for j, item in enumerate(myFields): - temp = [] - for k in resA: - # fpText.write("j: result: '%s' \n" % k[j]) - temp.append(k[j]) - newdict[item] = temp - # fpText.close() - - - # put probesetcisA here - - cursor.execute(""" - select - distinct 0, - if( (ProbeSet.Chr = Geno.Chr AND ProbeSetXRef.LRS > 10.0000000 and ABS(ProbeSet.Mb-Geno.Mb) < 10.0000000 ) , concat('yes(',round(ProbeSetXRef.LRS,1),')') , 'no') as cis - FROM Geno, ProbeSetXRef, ProbeSetFreeze, ProbeSet - where - ( MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol, - alias,GenbankId,UniGeneId, Probe_Target_Description) - AGAINST ('%s' IN BOOLEAN MODE) ) - and ProbeSet.symbol = '%s' - and ProbeSet.Id = ProbeSetXRef.ProbeSetId - and Geno.SpeciesId=1 #XZ: I add this line to speed up query - and ProbeSetXRef.Locus = Geno.name - and ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id - and ProbeSetFreeze.Id = (select Id from ProbeSetFreeze where Name='%s' limit 1) - """ % (newdict["GeneSymbol"],newdict["GeneSymbol"],databaseA)) - - resA2 = cursor.fetchall() - if resA2: - myFields = ['dummyA2','probesetcisA'] - for j, item in enumerate(myFields): - temp = [] - for k in resA2: - # fpText.write("j: result: '%s' \n" % k[j]) - temp.append(k[j]) - newdict[item] = temp - else: - newdict['probesetcisA'] = '' - - - - # specially for this dataset only - newdict["hasexpr"] = 'n' - if len(newdict["meanA"])>0: - for mym in newdict["meanA"]: - if mym>8: - newdict["hasexpr"] = 'y' - - # specially for this dataset only - newdict["hascis"] = 'n' - if len(newdict["probesetcisA"])>0: - for mym in newdict["probesetcisA"]: - if mym != 'no': - newdict["hascis"] = 'y' - - else: - myFields = ['dummyA','probesetA,''meanA','newlrsA','probesetchrA','probesetmbA','probesetsymbolA','probesetnamenumA', 'probesetcisA'] - for j, item in enumerate(myFields): - newdict[item] = "--" - - # specially for this dataset only - newdict["hasexpr"] = 'n' - newdict["hascis"] = 'n' - newdict["score"] = 0 - -########################## FOR B - - newdict["score"] = 0 - if newdict["hassnp"] == 'y': - newdict["score"] = newdict["score"] + 1 - if newdict["hasexpr"] == 'y': - newdict["score"] = newdict["score"] + 1 - if newdict["hasindel"] == 'y': - newdict["score"] = newdict["score"] + 1 - if newdict["hascis"] == 'y': - newdict["score"] = newdict["score"] + 1 - - - - if species=='mouse': - cursor.execute(""" - select - distinct 0, - ProbeSet.Name as TNAME, - round(ProbeSetXRef.Mean,1) as TMEAN, - round(ProbeSetXRef.LRS,1) as TLRS, - ProbeSet.Chr_num as TCHR_NUM, - ProbeSet.Mb as TMB, - ProbeSet.Symbol as TSYMBOL, - ProbeSet.name_num as TNAME_NUM - FROM ProbeSetXRef, ProbeSetFreeze, ProbeSet - where - ( MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol, - alias,GenbankId,UniGeneId, Probe_Target_Description) - AGAINST ('%s' IN BOOLEAN MODE) ) - and ProbeSet.symbol = '%s' - and ProbeSet.Id = ProbeSetXRef.ProbeSetId - and ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id - and ProbeSetFreeze.Id = (select Id from ProbeSetFreeze where Name='%s' limit 1) - """ % (newdict["GeneSymbol"],newdict["GeneSymbol"],databaseB)) - - resB = cursor.fetchall() - if resB: - myFields = ['dummyB','probesetB','meanB','newlrsB','probesetchrB','probesetmbB','probesetsymbolB','probesetnamenumB'] - -# fpText = open(os.path.join(webqtlConfig.TMPDIR, "res") + '.txt','wb') - #fpText.write("newdictgeneid '%s' \n" % newdict["GeneId"]) - for j, item in enumerate(myFields): - temp = [] - for k in resB: - # fpText.write("j: result: '%s' \n" % k[j]) - temp.append(k[j]) - newdict[item] = temp - # fpText.close() - - - # put probesetcisB here - cursor.execute(""" - select - distinct 0, - if( (ProbeSet.Chr = Geno.Chr AND ProbeSetXRef.LRS > 10.0000000 and ABS(ProbeSet.Mb-Geno.Mb) < 10.0000000 ) , concat('yes(',round(ProbeSetXRef.LRS,1),')') , 'no') as cis - FROM Geno, ProbeSetXRef, ProbeSetFreeze, ProbeSet - where - ( MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol, - alias,GenbankId,UniGeneId, Probe_Target_Description) - AGAINST ('%s' IN BOOLEAN MODE) ) - and ProbeSet.symbol = '%s' - and ProbeSet.Id = ProbeSetXRef.ProbeSetId - and Geno.SpeciesId=1 #XZ: I add this line to speed up query - and ProbeSetXRef.Locus = Geno.name - and ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id - and ProbeSetFreeze.Id = (select Id from ProbeSetFreeze where Name='%s' limit 1) - """ % (newdict["GeneSymbol"],newdict["GeneSymbol"],databaseB)) - - resB2 = cursor.fetchall() - if resB2: - myFields = ['dummyB2','probesetcisB'] - for j, item in enumerate(myFields): - temp = [] - for k in resB2: - # fpText.write("j: result: '%s' \n" % k[j]) - temp.append(k[j]) - newdict[item] = temp - else: - newdict['probesetcisB'] = '' - - - else: - myFields = ['dummyB','probesetB,''meanB','newlrsB','probesetchrB','probesetmbB','probesetsymbolB','probesetnamenumB', 'probesetcisB'] - for j, item in enumerate(myFields): - newdict[item] = "--" - - - -########################## - - -########################## FOR C - - - if species=='mouse': - cursor.execute(""" - select - distinct 0, - ProbeSet.Name as TNAME, - round(ProbeSetXRef.Mean,1) as TMEAN, - round(ProbeSetXRef.LRS,1) as TLRS, - ProbeSet.Chr_num as TCHR_NUM, - ProbeSet.Mb as TMB, - ProbeSet.Symbol as TSYMBOL, - ProbeSet.name_num as TNAME_NUM - FROM ProbeSetXRef, ProbeSetFreeze, ProbeSet - where - ( MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol, - alias,GenbankId,UniGeneId, Probe_Target_Description) - AGAINST ('%s' IN BOOLEAN MODE) ) - and ProbeSet.symbol = '%s' - and ProbeSet.Id = ProbeSetXRef.ProbeSetId - and ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id - and ProbeSetFreeze.Id = (select Id from ProbeSetFreeze where Name='%s' limit 1) - """ % (newdict["GeneSymbol"],newdict["GeneSymbol"],databaseC)) - - resC = cursor.fetchall() - if resC: - myFields = ['dummyC','probesetC','meanC','newlrsC','probesetchrC','probesetmbC','probesetsymbolC','probesetnamenumC'] - -# fpText = open(os.path.join(webqtlConfig.TMPDIR, "res") + '.txt','wb') - #fpText.write("newdictgeneid '%s' \n" % newdict["GeneId"]) - for j, item in enumerate(myFields): - temp = [] - for k in resC: - # fpText.write("j: result: '%s' \n" % k[j]) - temp.append(k[j]) - newdict[item] = temp - # fpText.close() - - - # put probesetcisC here - cursor.execute(""" - select - distinct 0, - if( (ProbeSet.Chr = Geno.Chr AND ProbeSetXRef.LRS > 10.0000000 and ABS(ProbeSet.Mb-Geno.Mb) < 10.0000000 ) , concat('yes(',round(ProbeSetXRef.LRS,1),')') , 'no') as cis - FROM Geno, ProbeSetXRef, ProbeSetFreeze, ProbeSet - where - ( MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol, - alias,GenbankId,UniGeneId, Probe_Target_Description) - AGAINST ('%s' IN BOOLEAN MODE) ) - and ProbeSet.symbol = '%s' - and ProbeSet.Id = ProbeSetXRef.ProbeSetId - and Geno.SpeciesId=1 #XZ: I add this line to speed up query - and ProbeSetXRef.Locus = Geno.name - and ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id - and ProbeSetFreeze.Id = (select Id from ProbeSetFreeze where Name='%s' limit 1) - """ % (newdict["GeneSymbol"],newdict["GeneSymbol"],databaseC)) - - resC2 = cursor.fetchall() - if resC2: - myFields = ['dummyC2','probesetcisC'] - for j, item in enumerate(myFields): - temp = [] - for k in resC2: - # fpText.write("j: result: '%s' \n" % k[j]) - temp.append(k[j]) - newdict[item] = temp - else: - newdict['probesetcisC'] = '' - - else: - myFields = ['dummyC','probesetC,''meanC','newlrsC','probesetchrC','probesetmbC','probesetsymbolC','probesetnamenumC', 'probesetcisC'] - for j, item in enumerate(myFields): - newdict[item] = "--" - - - - - - - - - #load gene from other Species by the same name - - - for item in otherSpecies: - othSpec, othSpecId = item - newdict2 = {} - - cursor.execute("SELECT %s from GeneList where SpeciesId = %d and geneSymbol= '%s' limit 1" % - (string.join(fetchFields, ", "), othSpecId, newdict["GeneSymbol"])) - resultsOther = cursor.fetchone() - if resultsOther: - for j, item in enumerate(fetchFields): - newdict2[item] = resultsOther[j] - - #count SNPs if possible, could be a separate function - if diffCol and othSpec == 'mouse': - cursor.execute(""" - select - count(*) from BXDSnpPosition - where - Chr = '%s' AND Mb >= %2.6f AND Mb < %2.6f AND - StrainId1 = %d AND StrainId2 = %d - """ % (chrName, newdict["TxStart"], newdict["TxEnd"], diffCol[0], diffCol[1])) - - - newdict2["snpCount"] = cursor.fetchone()[0] - newdict2["snpDensity"] = newdict2["snpCount"]/(newdict2["TxEnd"]-newdict2["TxStart"])/1000.0 - else: - newdict2["snpDensity"] = newdict2["snpCount"] = 0 - - try: - newdict2['GeneLength'] = 1000.0*(newdict2['TxEnd'] - newdict2['TxStart']) - except: - pass - - newdict['%sGene' % othSpec] = newdict2 - - #newdict['RUDI']='hallo allemaal' - - GeneList.append(newdict) - - - return GeneList - - |