Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expression profile in core #1814

Merged
merged 44 commits into from
Dec 8, 2022
Merged
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
8690093
temp
georgeDaskalakis Nov 24, 2022
055f003
fixing build
georgeDaskalakis Nov 24, 2022
06f6883
changing the namespace naming
georgeDaskalakis Nov 25, 2022
c2147c0
adding the serializer initial implementation
georgeDaskalakis Nov 25, 2022
cfac633
trying to update expression profile
georgeDaskalakis Nov 28, 2022
462e0b7
updating the serializer
georgeDaskalakis Nov 28, 2022
07e127f
temporarily hard coding the icon name
georgeDaskalakis Dec 1, 2022
90acbf2
expanding ExpressionParameter
georgeDaskalakis Dec 1, 2022
963a13c
ExpressionParameter serializer test
georgeDaskalakis Dec 2, 2022
95f6551
second try
georgeDaskalakis Dec 2, 2022
7ef3ecc
third try
georgeDaskalakis Dec 2, 2022
2f11ce9
fourth try
georgeDaskalakis Dec 2, 2022
5d1e03a
fifth try
georgeDaskalakis Dec 2, 2022
558beed
sixth try
georgeDaskalakis Dec 2, 2022
3c5e390
removing abstract identifier
georgeDaskalakis Dec 2, 2022
09b27b3
adding ExpressionParameter empty constructor
georgeDaskalakis Dec 2, 2022
fce0715
Merge branch 'develop' into ExpressionProfile-in-Core
georgeDaskalakis Dec 2, 2022
8060d22
skipping formulas with value only
georgeDaskalakis Dec 2, 2022
238d84a
Create OSMOSES branch
rwmcintosh Nov 28, 2022
f52eedc
remove older nupkg files for each deploy
rwmcintosh Nov 28, 2022
8ab5a1c
update build-scripts
rwmcintosh Nov 28, 2022
e15836a
automatically update applications with -m -p arguments
rwmcintosh Nov 29, 2022
296fc0d
add batch files for rake tasks
rwmcintosh Nov 29, 2022
c7fd51a
working import/export
rwmcintosh Dec 2, 2022
7bd37bd
resharper
georgeDaskalakis Dec 5, 2022
6ea0bb0
building
georgeDaskalakis Dec 5, 2022
dc0208f
building
georgeDaskalakis Dec 6, 2022
ff6c593
building
georgeDaskalakis Dec 6, 2022
aef63b0
adding tests for ExpressionProfileBuildingBlock
georgeDaskalakis Dec 6, 2022
6a5ab62
corecting appveyor.yml
georgeDaskalakis Dec 6, 2022
72f2648
adding serialization test
georgeDaskalakis Dec 6, 2022
af93895
adding tests for expressionParameter
georgeDaskalakis Dec 7, 2022
cdbe0f4
correcting appveyor
georgeDaskalakis Dec 7, 2022
b1360b2
Serialize expression type.
rwmcintosh Dec 7, 2022
cd01d61
moved constants to Core location
rwmcintosh Dec 7, 2022
b4b6efb
consolidating assets in Core
rwmcintosh Dec 7, 2022
4105df9
comparison of expression profile building block properties
rwmcintosh Dec 7, 2022
3097330
adding objectType
georgeDaskalakis Dec 8, 2022
2aeb2b4
Merge branch 'ExpressionProfile-in-Core' of https://github.com/Open-S…
georgeDaskalakis Dec 8, 2022
63d2f8d
code review changes
georgeDaskalakis Dec 8, 2022
be2dec7
adding name
georgeDaskalakis Dec 8, 2022
0f1c5cc
changing PKSimVersion type
georgeDaskalakis Dec 8, 2022
04a686e
correcting build
georgeDaskalakis Dec 8, 2022
3555b11
PR comments
rwmcintosh Dec 8, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions nuget_to_mobi.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@echo off
cls
rake create_local_nuget[-m]
pause
4 changes: 4 additions & 0 deletions nuget_to_pksim.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@echo off
cls
rake create_local_nuget[-p]
pause
102 changes: 79 additions & 23 deletions rakefile.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,32 +26,88 @@
Coverage.cover(filter, targetProjects)
end

task :copy_to_pksim do
copy_to_app '../PK-Sim/src/PKSim/bin/Debug/net472'
task :copy_to_pksim do
copy_to_app '../PK-Sim/src/PKSim/bin/Debug/net472'
end

task :copy_to_mobi do
copy_to_app '../MoBi/src/MoBi/bin/Debug/net472'
end

task :create_local_nuget, [:arg1, :arg2] do |t, args|
FileUtils.rm_f Dir.glob("./nuget_repo/*.nupkg")
versionId = "12.0.0-" + generate_code(5)
puts("Your version is " + versionId.red)
system("dotnet", "pack", "-p:PackageVersion="+ versionId, "--configuration", "Debug", "--output", "nuget_repo", "--no-build")

if args.to_hash.values.include? "-m"
update_mobi(versionId)
end

task :copy_to_mobi do
copy_to_app '../MoBi/src/MoBi/bin/Debug/net472'
if args.to_hash.values.include? "-p"
update_pksim(versionId)
end

private

def copy_to_app(app_target_relative_path)
app_target_path = File.join(solution_dir, app_target_relative_path)
source_dir = File.join(tests_dir, 'OSPSuite.Starter', 'bin', 'Debug', "net472")

copy_dependencies source_dir, app_target_path do
copy_file 'OSPSuite.*.dll'
copy_file 'OSPSuite.*.pdb'
end


end

private
def find_token(file, regex)
file_content = str = IO.read(file)
matches = file_content.match(regex)

if(matches.nil?)
return nil
end

def solution_dir
File.dirname(__FILE__)
return matches[1]
end

def update_mobi(versionId)
puts("updating MoBi")
token = find_token("../MoBi/src/MoBi/MoBi.csproj", /<PackageReference Include="OSPSuite.Core" Version="(.*)"/)
if(token.nil?)
return
end

def tests_dir
File.join(solution_dir, 'tests')

glob = Dir.glob('../MoBi/**/*.csproj')
glob.each do |file|
Utils.replace_tokens({token => versionId}, file)
end

end

def update_pksim(versionId)
puts("updating PKSim")
token = find_token("../PK-Sim/src/PKSim/PKSim.csproj", /<PackageReference Include="OSPSuite.Core" Version="(.*)"/)
if(token.nil?)
return
end

glob = Dir.glob('../PK-Sim/**/*.csproj')
glob.each do |file|
Utils.replace_tokens({token => versionId}, file)
end
end

def generate_code(number)
charset = Array('A'..'Z') + Array('a'..'z')
Array.new(number) { charset.sample }.join
end

def copy_to_app(app_target_relative_path)
app_target_path = File.join(solution_dir, app_target_relative_path)
source_dir = File.join(tests_dir, 'OSPSuite.Starter', 'bin', 'Debug', "net472")

copy_dependencies source_dir, app_target_path do
copy_file 'OSPSuite.*.dll'
copy_file 'OSPSuite.*.pdb'
end

end

def solution_dir
File.dirname(__FILE__)
end

def tests_dir
File.join(solution_dir, 'tests')
end

2 changes: 2 additions & 0 deletions src/OSPSuite.Assets/UIConstants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ public static class SizeAndLocation

public static class Captions
{
public static readonly string Species = "Species";
public static readonly string Category = "Category";
public static readonly string ConfirmationDialog = "Confirmation";
public static readonly string Excel = "Excel®";
public static readonly string EmptyColumn = " ";
Expand Down
19 changes: 19 additions & 0 deletions src/OSPSuite.Core/Comparison/ExpressionProfileDiffBuilder.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using OSPSuite.Core.Domain.Builder;

namespace OSPSuite.Core.Comparison
{
public class ExpressionProfileBuildingBlockDiffBuilder : StartValueBuildingBlockDiffBuilder<ExpressionParameter>
{
public ExpressionProfileBuildingBlockDiffBuilder(ObjectBaseDiffBuilder objectBaseDiffBuilder, EnumerableComparer enumerableComparer) : base(objectBaseDiffBuilder, enumerableComparer)
{
}
}

internal class ExpressionParameterDiffBuilder : StartValueDiffBuilder<ExpressionParameter>
{

public ExpressionParameterDiffBuilder(IObjectComparer objectComparer, EntityDiffBuilder entityDiffBuilder, WithValueOriginComparison<ExpressionParameter> valueOriginComparison) : base(objectComparer, entityDiffBuilder, valueOriginComparison)
{
}
}
}
22 changes: 22 additions & 0 deletions src/OSPSuite.Core/Domain/Builder/ExpressionParameter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
using OSPSuite.Core.Domain.Services;

namespace OSPSuite.Core.Domain.Builder
{
public class ExpressionParameter : PathAndValueEntity, IStartValue
{
/// <summary>
/// Do not use! When refactoring on promotion to core, this should be removed
/// </summary>
public double? StartValue { get; set; }

public override void UpdatePropertiesFrom(IUpdatable source, ICloneManager cloneManager)
{
base.UpdatePropertiesFrom(source, cloneManager);

if (!(source is ExpressionParameter sourceExpressionParameter))
return;

StartValue = sourceExpressionParameter.StartValue;
}
}
}
50 changes: 50 additions & 0 deletions src/OSPSuite.Core/Domain/Builder/ExpressionProfileBuildingBlock.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
using OSPSuite.Core.Domain.Services;

namespace OSPSuite.Core.Domain.Builder
{
public class ExpressionProfileBuildingBlock : StartValueBuildingBlock<ExpressionParameter>
{
public override string Icon => Type.IconName;

public virtual string MoleculeName { get; private set; }

public string Species { get; private set; }

public ExpressionType Type { set; get; }

public int PKSimVersion { set; get; }

public virtual string Category { get; private set; }

public override string Name
{
get => PKSimCoreConstants.ContainerName.ExpressionProfileName(MoleculeName, Species, Category);
set
{
if (string.Equals(Name, value))
{
return;
}

var (moleculeName, species, category) = PKSimCoreConstants.ContainerName.NamesFromExpressionProfileName(value);
if (string.IsNullOrEmpty(moleculeName))
return;

Species = species;
Category = category;
MoleculeName = moleculeName;
}
}

public override void UpdatePropertiesFrom(IUpdatable source, ICloneManager cloneManager)
{
base.UpdatePropertiesFrom(source, cloneManager);
var sourceExpressionProfile = source as ExpressionProfileBuildingBlock;
if (sourceExpressionProfile == null) return;

Type = sourceExpressionProfile.Type;
PKSimVersion = sourceExpressionProfile.PKSimVersion;
Name = sourceExpressionProfile.Name;
}
}
}
65 changes: 65 additions & 0 deletions src/OSPSuite.Core/Domain/Builder/ExpressionTypes.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
using System.Collections.Generic;
using System.Linq;

namespace OSPSuite.Core.Domain.Builder
{

public enum ExpressionTypesId
{
Transport,
Enzyme,
BindingPartner
}

public static class TempAssets
{
public static class Captions
{
public static readonly string Species = "Species";
public static readonly string Category = "Category";

public static string Transporter = "Transporter";
public static string Protein = "Protein";
public static string Enzyme = "Enzyme";
}

public static class IconNames
{
public static string Transporter = "Transporter";
public static string Protein = "Protein";
public static string Enzyme = "Enzyme";
}
}

public static class ExpressionTypes
{
public static ExpressionType TransportProtein = new ExpressionType(TempAssets.IconNames.Transporter, TempAssets.Captions.Transporter, ExpressionTypesId.Transport);
public static ExpressionType MetabolizingEnzyme = new ExpressionType(TempAssets.IconNames.Enzyme, TempAssets.Captions.Enzyme, ExpressionTypesId.Enzyme);
public static ExpressionType ProteinBindingPartner = new ExpressionType(TempAssets.IconNames.Protein, TempAssets.Captions.Protein, ExpressionTypesId.BindingPartner);

private static List<ExpressionType> _types = new List<ExpressionType>
{
TransportProtein,
MetabolizingEnzyme,
ProteinBindingPartner
};

public static ExpressionType ById(ExpressionTypesId expressionTypeId)
{
return _types.First(x => Equals(x.Id, expressionTypeId));
}
}

public class ExpressionType
{
public ExpressionTypesId Id { get; }
public string IconName { get; }
public string DisplayName { get; }
public ExpressionType(string iconName, string displayName, ExpressionTypesId expressionTypesId)
{
Id = expressionTypesId;
IconName = iconName;
DisplayName = displayName;
}
}
}
Loading