Skip to content

Instantly share code, notes, and snippets.

@sverhoeven
Last active April 1, 2020 10:42
Show Gist options
  • Select an option

  • Save sverhoeven/0a46106ff0a1a55add96117bc1e2c1e4 to your computer and use it in GitHub Desktop.

Select an option

Save sverhoeven/0a46106ff0a1a55add96117bc1e2c1e4 to your computer and use it in GitHub Desktop.
def simfun1(factor=3.0):
# just some nonsense to demonstrate usage of a parameter
# when comparing 2 spectrums
def implementation(spectrum, reference_spectrum):
print(spectrum)
print(reference_spectrum)
print(factor)
return (max(spectrum) + max(reference_spectrum) ) * factor;
return implementation
class Scores:
def __init__(self, spectrum=None, reference_spectrums=None, similarity_functions=None):
self.similarity_functions = similarity_functions
self.reference_spectrums = reference_spectrums
self.spectrum = spectrum
self.score = None
def calculate(self):
f = self.similarity_functions[0]
self.score = f(self.spectrum, self.reference_spectrums[0])
spectrum = [1346.36, 4.7, 2.3536, 0.84, 54.5, 41.41, 6.8, 5.0, 4.6, 7.8]
reference_spectrums = [[6.4, 79.4, 81.289, 0.1304, 95.087, 62.0, 5.875]]
similarity_functions = [simfun1(2.5)]
scores = Scores(spectrum=spectrum,
reference_spectrums=reference_spectrums,
similarity_functions=similarity_functions)
scores.calculate()
print(scores.score)
class Simfun1():
# just some nonsense to demonstrate usage of a parameter
# when comparing 2 spectrums
def __init__(self, factor=0.3):
self.factor = factor
def __call__(self, spectrum, reference_spectrum):
print(spectrum)
print(reference_spectrum)
print(self.factor)
return (max(spectrum) + max(reference_spectrum) ) * self.factor
class Scores:
def __init__(self, spectrum=None, reference_spectrums=None, similarity_functions=None):
self.similarity_functions = similarity_functions
self.reference_spectrums = reference_spectrums
self.spectrum = spectrum
self.score = None
def calculate(self):
f = self.similarity_functions[0]
self.score = f(self.spectrum, self.reference_spectrums[0])
spectrum = [1346.36, 4.7, 2.3536, 0.84, 54.5, 41.41, 6.8, 5.0, 4.6, 7.8]
reference_spectrums = [[6.4, 79.4, 81.289, 0.1304, 95.087, 62.0, 5.875]]
similarity_functions = [Simfun1(2.5)]
scores = Scores(spectrum=spectrum,
reference_spectrums=reference_spectrums,
similarity_functions=similarity_functions)
scores.calculate()
print(scores.score)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment