Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • abrenon/outillage
1 result
Show changes
Commits on Source (3)
from GEODE.Classification import discursiveFunctions
from GEODE.Metadata import article, paragraph, fromKey, relativePath, toKey, uid
from GEODE.store import corpus, Directory, SelfContained, toTSV
from GEODE.store import corpus, Directory, fromTSV, SelfContained, toTSV
from GEODE.Visualisation import heatmap
......@@ -21,4 +21,4 @@ def resample(newSize, distribution):
for i in range(newSize):
yield oldSize/lcm*sum([distribution[j]*intersection(i, j)
for j in range(math.floor(i*ratio),
math.ceil((i+1)*ratio))])
round((i+1)*ratio))])
from GEODE.Metadata import fromKey, relativePath
from GEODE.store.TSV import toTSV
from GEODE.store.TSV import fromTSV, toTSV
import pandas
from os import makedirs
from os.path import dirname, isdir
......@@ -37,7 +37,7 @@ class TSVIndexed(Corpus):
def load(self):
if self.data is None:
self.data = pandas.read_csv(self.tsv_path, sep='\t')
self.data = fromTSV(self.tsv_path)
self.detect_keys()
self.data = self.data.set_index(self.keys, drop=False)
......
......@@ -22,3 +22,6 @@ def toTSV(filePath, data, sortBy='toStrKey'):
else:
sortedData = data.sort_index(key=forPanda(data, sortBy))
sortedData.to_csv(filePath, sep='\t', index=False)
def fromTSV(filePath):
return pandas.read_csv(filePath, sep='\t')
from GEODE.store.Corpus import corpus, Directory, SelfContained
from GEODE.store.TSV import toTSV
from GEODE.store.TSV import fromTSV, toTSV
import os
import os.path
......
#!/usr/bin/env -S PYTHONPATH=lib/python python3
from GEODE import fromTSV, toKey, toTSV
from GEODE.store import prepare
from GEODE.signal import gate, resample
import matplotlib.pyplot as plot
import seaborn
from sys import argv
def plotSingle(measure):
return gate(measure['position'], measure['totalSize'], offset=1)
histData = [0.3741792369121561, 0.7607808340727595, 0.8889086069210292,
0.7491570541259982, 1.2057675244010648, 1.0869565217391306,
1.096095829636202, 0.7124223602484473, 0.7251109139307897,
0.9335403726708075, 1.2277728482697428, 0.9582963620230699,
0.8540372670807452, 1.0281277728482696, 1.4221827861579415,
0.9218278615794143, 0.46814551907719604, 0.7717834960070986,
1.083762200532387, 0.65226264418811, 0.5771073646850046,
0.8025732031943212, 0.5266193433895296, 0.8911268855368234,
0.6836734693877551, 0.9039041703637977, 0.8720496894409939,
0.7113575865128662, 0.8984028393966283, 0.8993788819875776,
1.0016858917480034, 0.5857142857142857, 0.7364685004436559,
0.8047914818101152, 0.7055900621118011, 0.9018633540372669,
0.944010647737356, 0.9955634427684119, 1.0425909494232473,
0.9046140195208519, 0.8504880212954751, 1.1251109139307898,
0.44631765749778174, 0.49893522626441883, 0.6860692102928126,
0.7024844720496894, 0.4693877551020407, 1.5570541259982251,
0.8903283052351374, 0.6923691215616682, 0.8062999112688553,
1.0178349600709848, 0.5559006211180125, 0.7621118012422359,
0.848447204968944, 0.5782608695652174, 0.8464063886424137,
0.5537710736468501, 0.7160603371783496, 0.7982253771073646,
0.8371783496007098, 0.9143744454303461, 1.0799467613132205,
0.9581188997338067, 0.8597160603371785, 0.864685004436557,
1.2598935226264418, 1.3385093167701863, 0.45891748003549254,
0.9355811889973382, 0.6289263531499556, 0.7637089618456078,
0.7324755989352264, 0.754924578527063, 0.568589174800355,
0.49778172138420584, 0.7707187222715175, 1.0097604259094939,
0.8621118012422362, 0.8971606033717835, 1.1584738243123336,
1.1568766637089618, 0.7698314108251997, 0.9032830523513753,
0.5743566992014197, 0.8896184560780832, 0.7858917480035492,
0.9899733806566103, 1.617657497781721, 1.066725820763088,
0.6067435669920143, 1.1874001774622889, 1.0669920141969833,
1.1996450754214731, 1.4835847382431233, 1.6580301685891752,
2.2103815439219168, 2.4215616681455185, 2.7979591836734694,
5.278970718722271]
def plotProfile(profile, outputPath):
plot.figure(figsize=(16,13))
ax = seaborn.lineplot(profile)
ax.set_xlabel("Position")
ax.set_xlim(0, 100)
ax.set_ylim(0)
ax.xaxis.set_major_formatter('{x}%')
ax.set_ylabel("Density")
ax.yaxis.set_major_formatter('{x}%')
curve = ax.lines[0]
x, y = curve.get_xydata()[:,0], curve.get_xydata()[:,1]
ax.fill_between(x, y, alpha=0.3)
plot.savefig(prepare(outputPath), dpi=300, bbox_inches='tight')
def computeProfile(measures, resolution=100):
profile = [0]*resolution
for resampled in map(resample(resolution), map(plotSingle, measures)):
profile = list(map(sum, zip(profile, resampled)))
return [100*x/len(measures) for x in profile]
def drawProfile(measures, outputPath):
profile = computeProfile(measures)
toTSV(prepare(f"{outputPath}/profile.tsv"), profile, sortBy=None)
plotProfile(profile, f"{outputPath}/profile.png")
if __name__ == '__main__':
drawProfile([measure for _, measure in fromTSV(argv[1]).iterrows()], argv[2])
#plotProfile(histData, argv[2])