tabtk 1.0.2__tar.gz → 1.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tabtk-1.0.2 → tabtk-1.0.4}/PKG-INFO +1 -1
- {tabtk-1.0.2 → tabtk-1.0.4}/tabtk/__init__.py +1 -1
- {tabtk-1.0.2 → tabtk-1.0.4}/tabtk/tabtk.py +24 -12
- {tabtk-1.0.2 → tabtk-1.0.4}/tabtk.egg-info/PKG-INFO +1 -1
- {tabtk-1.0.2 → tabtk-1.0.4}/LICENSE +0 -0
- {tabtk-1.0.2 → tabtk-1.0.4}/README.md +0 -0
- {tabtk-1.0.2 → tabtk-1.0.4}/pyproject.toml +0 -0
- {tabtk-1.0.2 → tabtk-1.0.4}/setup.cfg +0 -0
- {tabtk-1.0.2 → tabtk-1.0.4}/tabtk/__main__.py +0 -0
- {tabtk-1.0.2 → tabtk-1.0.4}/tabtk.egg-info/SOURCES.txt +0 -0
- {tabtk-1.0.2 → tabtk-1.0.4}/tabtk.egg-info/dependency_links.txt +0 -0
- {tabtk-1.0.2 → tabtk-1.0.4}/tabtk.egg-info/entry_points.txt +0 -0
- {tabtk-1.0.2 → tabtk-1.0.4}/tabtk.egg-info/requires.txt +0 -0
- {tabtk-1.0.2 → tabtk-1.0.4}/tabtk.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tabtk
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.4
|
|
4
4
|
Summary: tabtk: A toolkit for sequence similarity analysis based on tabular data
|
|
5
5
|
Author-email: Chrispin Chaguza <chrispin.chaguza@gmail.com>
|
|
6
6
|
Maintainer-email: Chrispin Chaguza <chrispin.chaguza@gmail.com>
|
|
@@ -181,17 +181,19 @@ def blastSimilarity(cmdValues):
|
|
|
181
181
|
blastData = pd.read_csv(tmpOut2,delimiter="\t",dtype={'pident': float,'qcovs': float})
|
|
182
182
|
blastData["tmp"] = blastData.apply(lambda x: (x["qcovs"] * x["pident"])/100,axis=1)
|
|
183
183
|
|
|
184
|
+
blastDataR = blastData[["qseqid","sseqid","tmp"]].groupby(['qseqid','sseqid']).agg({'tmp':'mean'})
|
|
185
|
+
blastDataR = blastDataR.reset_index()
|
|
186
|
+
|
|
184
187
|
blastData["qseqidR"] = blastData.apply(lambda x: x["qseqid"] if x["qseqid"] > x["sseqid"] else x["sseqid"],axis=1)
|
|
185
|
-
blastData["sseqidR"] = blastData.apply(lambda x: x["
|
|
188
|
+
blastData["sseqidR"] = blastData.apply(lambda x: x["sseqid"] if x["qseqid"] > x["sseqid"] else x["qseqid"],axis=1)
|
|
186
189
|
|
|
187
190
|
blastData["qseqid"] = blastData["qseqidR"]
|
|
188
191
|
blastData["sseqid"] = blastData["sseqidR"]
|
|
189
192
|
|
|
190
|
-
|
|
191
|
-
blastDataR =
|
|
193
|
+
blastDataR = blastData[["qseqid","sseqid","tmp"]].groupby(['qseqid','sseqid']).agg({'tmp':'min'})
|
|
194
|
+
blastDataR = blastDataR.reset_index()
|
|
192
195
|
|
|
193
|
-
|
|
194
|
-
blastDataFinal = blastData[["sseqid","qseqid","cov"]].rename(columns={"sseqid":"seq1","qseqid":"seq2","cov":"pid"}).values.tolist()
|
|
196
|
+
blastDataFinal = blastDataR[["sseqid","qseqid","tmp"]].rename(columns={"sseqid":"seq1","qseqid":"seq2","tmp":"pid"}).values.tolist()
|
|
195
197
|
|
|
196
198
|
bar = ChargingBar("Cleaning temporary files", max=len(fileNames))
|
|
197
199
|
for fileName in tmpFileNames:
|
|
@@ -237,18 +239,28 @@ def fastaniSimilarity(cmdValues):
|
|
|
237
239
|
|
|
238
240
|
tmpOut = f"mash.{str(datetime.datetime.now()).replace(" ","").replace("-",".").replace(":",".")}"
|
|
239
241
|
|
|
240
|
-
fastaniCmd = f"fastANI --rl {cmdValues["data"]} --ql {cmdValues["data"]}
|
|
242
|
+
fastaniCmd = f"fastANI --rl {cmdValues["data"]} --ql {cmdValues["data"]} --kmer {cmdValues["length"]} --matrix --fragLen {cmdValues["fragment"]} --minFraction {cmdValues["fraction"]} --output {tmpOut} --threads {cmdValues["threads"]}"
|
|
241
243
|
|
|
242
244
|
print("Calculating percent similarity... may take longer... be patient...")
|
|
243
245
|
|
|
244
246
|
subprocess.call(fastaniCmd,shell=True,stdout=subprocess.DEVNULL,stderr=subprocess.STDOUT)
|
|
245
247
|
|
|
246
248
|
fastaniResults = []
|
|
247
|
-
|
|
249
|
+
|
|
248
250
|
with open(tmpOut,"r") as fastaniFile:
|
|
249
251
|
for itemPos,fastaniOutput in enumerate(fastaniFile):
|
|
250
252
|
item = fastaniOutput.strip().split("\t")
|
|
251
|
-
fastaniResults.append(
|
|
253
|
+
fastaniResults.append([Path(item[0]).stem,Path(item[1]).stem,float(item[2])])
|
|
254
|
+
|
|
255
|
+
fastaniData = pd.DataFrame(fastaniResults, columns=["seq1R","seq2R","pidR"])
|
|
256
|
+
fastaniData['pidR'] = fastaniData['pidR'].astype(float)
|
|
257
|
+
|
|
258
|
+
fastaniData["seq1RR"] = fastaniData.apply(lambda x: x["seq1R"] if x["seq1R"] > x["seq2R"] else x["seq2R"],axis=1)
|
|
259
|
+
fastaniData["seq2RR"] = fastaniData.apply(lambda x: x["seq2R"] if x["seq1R"] > x["seq2R"] else x["seq1R"],axis=1)
|
|
260
|
+
|
|
261
|
+
fastaniData = fastaniData[["seq1RR","seq2RR","pidR"]].groupby(['seq1RR','seq2RR']).agg({'pidR':min})
|
|
262
|
+
fastaniDataR = fastaniData.reset_index()
|
|
263
|
+
fastaniDataFinal = fastaniDataR[["seq1RR","seq2RR","pidR"]].rename(columns={"seq1RR":"seq1","seq2RR":"seq2","pid":"pidR"}).values.tolist()
|
|
252
264
|
|
|
253
265
|
if os.path.exists(tmpOut):
|
|
254
266
|
os.remove(tmpOut)
|
|
@@ -260,7 +272,7 @@ def fastaniSimilarity(cmdValues):
|
|
|
260
272
|
else:
|
|
261
273
|
pass
|
|
262
274
|
|
|
263
|
-
return(
|
|
275
|
+
return(fastaniDataFinal)
|
|
264
276
|
|
|
265
277
|
|
|
266
278
|
def similarity(cmdValues):
|
|
@@ -314,7 +326,7 @@ def similarity(cmdValues):
|
|
|
314
326
|
|
|
315
327
|
bar = ChargingBar('Writing similarity values', max=len(similarityResults))
|
|
316
328
|
for itemPair in similarityResults:
|
|
317
|
-
simData.write(f"{itemPair}\n")
|
|
329
|
+
simData.write(f"{"\t".join([str(r) for r in itemPair])}\n")
|
|
318
330
|
|
|
319
331
|
bar.next()
|
|
320
332
|
bar.finish()
|
|
@@ -1564,8 +1576,8 @@ def tabtkMain():
|
|
|
1564
1576
|
'output': options.output[0:][0] if isinstance(options.output,list) else options.output,
|
|
1565
1577
|
'length': int(options.length[0:][0]) if isinstance(options.length,list) else int(options.length),
|
|
1566
1578
|
'fragment': int(options.fragment[0:][0]) if isinstance(options.fragment,list) else int(options.fragment),
|
|
1567
|
-
'fraction':
|
|
1568
|
-
'size':
|
|
1579
|
+
'fraction': float(options.fraction[0:][0]) if isinstance(options.fraction,list) else float(options.fraction),
|
|
1580
|
+
'size': float(options.size[0:][0]) if isinstance(options.size,list) else float(options.size),
|
|
1569
1581
|
'mash': options.mash,
|
|
1570
1582
|
'fastani': options.fastani,
|
|
1571
1583
|
'blast': options.blast,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tabtk
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.4
|
|
4
4
|
Summary: tabtk: A toolkit for sequence similarity analysis based on tabular data
|
|
5
5
|
Author-email: Chrispin Chaguza <chrispin.chaguza@gmail.com>
|
|
6
6
|
Maintainer-email: Chrispin Chaguza <chrispin.chaguza@gmail.com>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|