Skip to content

Commit

Permalink
integration testing with proteins
Browse files Browse the repository at this point in the history
  • Loading branch information
JensKrumsieck committed Sep 1, 2022
1 parent 8fda3d0 commit 7fb4715
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 67 deletions.
68 changes: 1 addition & 67 deletions Tests/ChemSharp.Molecules.Tests/ChemSharp.Molecules.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -31,73 +31,7 @@
</ItemGroup>

<ItemGroup>
<None Update="files\0001.pdb">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\1hv4.pdb">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\2spl.pdb">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\benzene.mol">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\benzene.mol2">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\benzene_3d.mol">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\benzene_arom.mol">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\cif.cif">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\cif_noTrim.cif">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\corrole.mol">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\mescho.xyz">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\myo.mol2">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\oriluy.pdb">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\ptcor.mol2">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\tep.mol">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\tep.mol2">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\cif.xyz">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\mmcif.cif">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\ligand.cif">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\147288.cif">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\4r21.cif">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\1484829.cif">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="files\VATTOC.mol2">
<None Update="files\**\*.*">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
Expand Down
31 changes: 31 additions & 0 deletions Tests/ChemSharp.Molecules.Tests/MoleculeIsomorphismTests.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using ChemSharp.Molecules.Extensions;
using FluentAssertions;
using Nodo.Search;
using Xunit;

namespace ChemSharp.Molecules.Tests;
Expand Down Expand Up @@ -93,8 +94,38 @@ public void MapAll_Returns_Correct_Mappings()
//strip metals, hydrogens and co
var subCorrole = new Molecule(corrole.Atoms.Where(a => a.IsNonMetal && a.Symbol != "H"));
var subTest = new Molecule(test.Atoms.Where(a => a.IsNonMetal && a.Symbol != "H"));

var mappings = subTest.MapAll(subCorrole);
mappings.Should().HaveCount(23);
mappings.Values.Should().AllSatisfy(item => item.Count.Should().Be(2));
}

[Theory]
[InlineData("files/1hv4.pdb", 8)]
[InlineData("files/2spl.pdb", 1)]
[InlineData("files/4r21.cif", 2)]
[InlineData("files/0001.pdb", 24)]
public void IntegrationTest_With_Proteins(string path, int numberOfHemes)
{
var porphyrin = Molecule.FromFile("files/porphyrin.xyz");
var subPorphyrin = new Molecule(porphyrin.Atoms.Where(a => a.IsNonMetal && a.Symbol != "H"));

var protein = Molecule.FromFile(path);
//in combination with ConnectedFigures() this may be faster!
var subProtein = new Molecule(protein.Atoms.Where(a =>
a.IsNonMetal && a.Symbol != "H" && !Constants.AminoAcids.ContainsKey(a.Residue)));

var mappings = new Dictionary<Atom, List<Atom>>();
foreach (var test in subProtein.ConnectedFigures().Where(f => f.Count >= 24).Select(f => new Molecule(f)))
{
Assert.NotNull(test);
var tmp = test.MapAll(subPorphyrin);
foreach (var key in tmp.Keys)
if (mappings.ContainsKey(key)) mappings[key].AddRange(tmp[key]);
else mappings[key] = tmp[key];
}

mappings.Should().HaveCount(24); //porphyrin has 24 atoms
mappings.Values.Should().AllSatisfy(item => item.Count.Should().Be(numberOfHemes));
}
}
39 changes: 39 additions & 0 deletions Tests/ChemSharp.Molecules.Tests/files/porphyrin.xyz
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
37
CuC20N4H12
C 4.235879000 -0.682674000 -0.328446000
C 4.235837000 0.682707000 -0.328099000
C 2.849849000 1.099742000 0.001294000
C 2.849935000 -1.099759000 0.001268000
N 2.030005000 -0.000042000 0.216275000
C 2.425982000 -2.425973000 -0.044934000
C 1.099757000 -2.849909000 0.001712000
N 0.000035000 -2.030028000 0.217154000
C -1.099753000 -2.849919000 0.001565000
C 0.682733000 -4.235834000 -0.327854000
C -0.682677000 -4.235838000 -0.327512000
C -2.425952000 -2.425995000 -0.045240000
C -2.849875000 -1.099714000 0.001461000
N -2.029953000 -0.000007000 0.217121000
C -4.235831000 0.682716000 -0.327132000
C -4.235830000 -0.682760000 -0.327499000
C -1.099739000 2.849966000 0.000544000
N 0.000006000 2.029945000 0.215968000
C 1.099713000 2.849859000 0.000968000
C 0.682784000 4.235887000 -0.328012000
C -0.682673000 4.235922000 -0.327677000
C 2.425997000 2.425949000 -0.045976000
C -2.425958000 2.425969000 -0.045581000
C -2.849915000 1.099753000 0.001039000
H 5.088087000 -1.360901000 -0.562173000
H 5.087982000 1.361086000 -0.561676000
H 3.198010000 -3.198000000 -0.248218000
H 1.360965000 -5.087968000 -0.561809000
H -1.360989000 -5.088000000 -0.561216000
H -3.197894000 -3.197919000 -0.249597000
H -5.087964000 1.361190000 -0.560234000
H -5.087999000 -1.361158000 -0.560812000
H 1.361307000 5.088065000 -0.560846000
H -1.361196000 5.088148000 -0.560287000
H 3.197845000 3.197792000 -0.251269000
H -3.198096000 3.198123000 -0.247692000
Cu -0.000065000 -0.000001000 0.424186000

0 comments on commit 7fb4715

Please sign in to comment.