1. Introduction {#sec1-ijms-20-05152}
===============

Microcin J25 (MccJ25) is a 21-residue lasso peptide with an 8-residue macrolactam ring, formed between the *N*-terminal Gly1 and the Glu8 side-chain, and a 13-residue *C*-terminal tail, which is threaded through the ring ([Figure 1](#ijms-20-05152-f001){ref-type="fig"}). It is a class II lasso peptide in which the residues Phe19 and Tyr20 are the steric locks. The threaded lasso structure is stabilized by two short double-stranded antiparallel β-sheets. The first comprises residues 6--7 and 19--20, and it is formed between part of the ring and the threaded *C*-terminal tail. The second sheet, which involves residues 10--11 and 15--16, is associated with a β-turn involving residues 11--14, and it forms a hairpin-like structure \[[@B1-ijms-20-05152],[@B2-ijms-20-05152],[@B3-ijms-20-05152]\]. MccJ25 shows antimicrobial activity against a relatively wide range of Gram-negative bacteria. In particular, it exhibits remarkable antibiotic activity towards *Salmonella newport* and several strains of *E. coli*, with minimum inhibitory concentrations typically in the submicromolar range \[[@B4-ijms-20-05152]\].

MccJ25 shows high thermal and proteolytic stability against several proteases, including chymotrypsin, trypsin and pepsin \[[@B5-ijms-20-05152]\]. Moreover, it is stable to highly denaturing conditions, such as 8 M urea and temperatures above 100 °C \[[@B6-ijms-20-05152]\].

Most antimicrobial peptides (AMPs) are characterized by a large number of hydrophobic positive charges and are generally considered to interact with bacterial membrane structures, like indolicidin \[[@B7-ijms-20-05152]\] or LL-37, the active form of human cathelicidin \[[@B8-ijms-20-05152]\]. Once they have crossed the bacterial membrane, they can interfere with internal targets, such as DNA \[[@B9-ijms-20-05152],[@B10-ijms-20-05152]\]. However, MccJ25 has only one positive charge and it inhibits bacterial transcription by interacting with the β′ subunit of the *E. coli* RNA polymerase (RNAP), which is the target of its antibiotic action \[[@B6-ijms-20-05152]\]. MccJ25 also disrupts the inner membrane of *S. newport* by inhibiting several essential processes for cell viability, such as oxygen consumption \[[@B11-ijms-20-05152]\]. In contrast, the peptide inhibits the RNA transcription in many *E. coli* strains \[[@B6-ijms-20-05152]\], without affecting oxygen consumption \[[@B12-ijms-20-05152],[@B13-ijms-20-05152]\]. This peptide has also been reported to exhibit a second mode of action. In this regard, MccJ25 interacts with the membrane, thus depolarizing it and decreasing oxygen consumption. However, the underlying mechanism behind these effects is not yet understood \[[@B14-ijms-20-05152]\]. The uptake of MccJ25 by *E. coli* is dependent on the outer membrane receptor FhuA \[[@B15-ijms-20-05152],[@B16-ijms-20-05152],[@B17-ijms-20-05152]\]. For example, treatment of MccJ25 with thermolysin abolishes its binding to FhuA and results in the suppression of its antibacterial activity, although it is still able to inhibit *E. coli* RNAP activity and *S. newport* respiration *in vitro* \[[@B18-ijms-20-05152]\]. Additional supporting evidence that the Val11 to Pro16 residues are relevant for MccJ25 uptake emerged from an extensive mutational scanning analysis \[[@B19-ijms-20-05152]\].

To gain further insight into the stability and mode of action of the lasso peptide MccJ25, we performed a chemical modification by treatment with basic conditions (0.5 M NaOH), which produced an alteration in the topology of the peptide and the consequent modification of biological activity. We examined how the alteration in the structure affected the mechanism of action through its comparison with the natural lasso peptide.

2. Results {#sec2-ijms-20-05152}
==========

2.1. Chemical Treatment {#sec2dot1-ijms-20-05152}
-----------------------

The RP-HPLC analysis denotes that the structure of the native lasso peptide was affected by the harsh extended treatment with a base ([Figure S1](#app1-ijms-20-05152){ref-type="app"}). In this way, a new peak was detected ([Figure S2A,B](#app1-ijms-20-05152){ref-type="app"}). After being left overnight, the ratio between the starting material and the new product was 1:1 and even with the addition of more NaOH or an increase in reaction time, no reaction progress was observed. The new product, which is shown in [Figure S2A](#app1-ijms-20-05152){ref-type="app"}, was purified and isolated. RP-HPLC revealed that the new compound and the native peptide did not co-elute, and distinct chemical equivalence was confirmed by different retention times (t~R~), even though these two compounds had the same molecular mass (2107.8 Da) ([Figure S2C](#app1-ijms-20-05152){ref-type="app"}). Furthermore, the new compound was subjected to the same treatment with basic conditions, and no differences were observed after overnight. This result suggested that the modification was not reversible.

2.2. Minimum Inhibitory Concentration (MIC) {#sec2dot2-ijms-20-05152}
-------------------------------------------

The antimicrobial activity was then evaluated against eight Gram-negative strains, among them four were Multidrug-Resistant bacteria (MDR). As expected, the native MccJ25 displayed activity against four of them: two *E. coli* and two *S. enterica* strains ([Table 1](#ijms-20-05152-t001){ref-type="table"}). On the contrary, the new compound showed the lowest activity against the eight strains tested. Its MIC values were in all cases higher than 128 μg/mL. Thus, we addressed whether the loss of activity was due to the inability of the new compound to penetrate the target bacteria, whether it was caused by changes in its antibacterial properties exerted inside the bacterial cell, or if it was a combination of both factors.

2.3. Synergy Study {#sec2dot3-ijms-20-05152}
------------------

Colistin, a cationic antimicrobial peptide, even at low concentrations severely disrupts the outer membrane, allowing chemicals to penetrate Gram-negative bacteria. The inability to penetrate bacteria is a major cause of resistance. Although the medical use of colistin was abandoned 30 years ago as a result of its very high toxicity, it was rescued when superbugs (extreme pan-resistant strains) emerged. The recovery of colistin has spurred research into various strategies that allow the preservation of its antimicrobial action and a reduction of its negative side effects. One such strategy involves its combination with drugs with low toxicity to achieve synergistic activity. Colistin may serve as a "door opener" even at concentrations at which the negative side effects are negligible. A checkerboard assay using a combination of the new compound and colistin was performed against the *E. coli* MDR 39255 strain and the *S. enterica* ATCC 13076 (American Type Culture Collection) strain, which are susceptible to native MccJ25 but not to the new compound, as shown in the MIC assay ([Table 1](#ijms-20-05152-t001){ref-type="table"}). Moreover, two strains resistant to native MccJ25 (*E. coli* MDR 208691 and 239910) were also tested in order to compare results in both types of bacteria.

The fractional inhibitory concentration (FICi) values for the bacterial strains tested with combinations of the new compound and colistin are shown in [Table S1](#app1-ijms-20-05152){ref-type="app"}. According to the international standard, FICi values below 0.5 should be interpreted as synergistic (see "Methods" section for more details) \[[@B21-ijms-20-05152]\]. Thus, these experiments indicated a synergistic effect between colistin and the new compound.

These results show that the new compound retained the ability to inhibit the growth of these two strains (*E. coli* MDR 39255 and *S. enterica* ATCC 13076), although it was unlikely to have the capacity to enter the bacteria through the outer membrane, the reasons for that have to be investigated and may probably involve its ability to bind the receptor FhuA. In contrast, when the new compound was combined with colistin, it penetrated the outer membrane, thereby demonstrating that the antibacterial mechanisms of action were conserved after the chemical treatment. On the other hand, when the combination of colistin and the new compound was tested in bacteria resistant to native Mcc25, namely *E. coli* MDR 208691 and *E. coli* MDR 239910, a weak synergistic effect was observed. These results could be explained by the change in the peptide topology observed by RP-HPLC.

2.4. Minimal Biofilm Eradication Concentration (MBEC) {#sec2dot4-ijms-20-05152}
-----------------------------------------------------

The MBEC values were, in all cases, greater than 128 μg/mL. Such value is thousands of times greater than the inhibitory values against planktonic bacteria. Therefore, it should be assumed that neither MccJ25 nor the new compound can be considered antibiofilm agents.

2.5. Stability Assays {#sec2dot5-ijms-20-05152}
---------------------

In order to understand the loss in biological activity of the new compound, the stability and structure of the peptide was analyzed. Initially, the chemical treatment was believed to have converted the lasso peptide into a branched cyclic peptide. However, the carboxypeptidase assay rendered the same cleavage pattern for the native peptide and the new product, corresponding to the loss of 81 Da ([Figure S3](#app1-ijms-20-05152){ref-type="app"}). This loss was attributed to the double cleavage in the loop between the amide bond of Phe10-Val11 and Val11-Gly12, resulting in the loss of Val11 and maintenance of the threaded structure. We obtained a total conversion carboxypeptidase Y treatment, in contrast to previous studies in which only minor traces of the (MccJ25--18) Da were detected \[[@B22-ijms-20-05152]\]. Although the two peptides showed the same cleavage pattern, their t~R~ differed, as shown in the co-injection in [Figure S3C](#app1-ijms-20-05152){ref-type="app"}. Both peptides were also thermally stable for 4 h at 95 °C ([Figure S4](#app1-ijms-20-05152){ref-type="app"}). Carboxypeptidase Y treatment was also performed on the resulting peptides after heating for 4 h at 95 °C. In this regard, the same cleavage pattern as in [Figure S3](#app1-ijms-20-05152){ref-type="app"} was observed.

To further characterize the new compound, both this peptide and the native MccJ25 were subjected to proteolytic hydrolysis with stronger proteases, such as pepsin and thermolysin. As expected from the pepsin treatment, no hydrolysis was observed, even after several hours at pH 2 at 37 °C \[[@B5-ijms-20-05152]\]. Given this result, the temperature was increased to 50 °C, as pepsin is stable at this temperature. However, no cleavage was detected after 19 h, thereby indicating that both the native peptide and new compound were stable ([Figure S5](#app1-ijms-20-05152){ref-type="app"}). These results ruled out the formation of the unthreaded structure. On the other hand, thermolysin treatment produced the same cleavage pattern for the two peptides, corresponding to the loss of 137 Da (m/z 1969.9) ([Figure S6A,B](#app1-ijms-20-05152){ref-type="app"}) \[[@B23-ijms-20-05152],[@B24-ijms-20-05152],[@B25-ijms-20-05152]\]. This loss could be attributed to the double cleavage between Phe10-Val11 and Gly12-Ile13, with the loss of Val11-Gly12 and the subsequent gain of 18 Da. This cleavage led to a structure with two fragments stabilized by the steric hindrance of Phe19 and Tyr20 and the presence of non-covalent interactions ([Figure 2](#ijms-20-05152-f002){ref-type="fig"}) \[[@B24-ijms-20-05152]\]. Of note, after the treatment with thermolysin, the two peptides showed the same t~R~ value ([Figure S6C](#app1-ijms-20-05152){ref-type="app"}). This result indicated that the cleavage led to the same structure, thereby suggesting that the variable part of the compound was removed during hydrolysis (Val11-Gly12). In this regard, this result can be explained only by the inversion of the chiral center of Val11. This question will be addressed in future structural studies.

2.6. MS/MS Analysis {#sec2dot6-ijms-20-05152}
-------------------

The tandem mass spectrometry (MS^2^) fragmentation spectra revealed that the main fragmentations took place around Pro16 ([Figure S7](#app1-ijms-20-05152){ref-type="app"}). The same fragmentations were obtained for the two peptides, but with different intensities ([Table S2](#app1-ijms-20-05152){ref-type="app"}). These fragmentations were characteristic of a lasso structure, since they contained both the *N*-terminal and *C*-terminal parts of the molecule. The steric hindrance between the ring and the bulky side chains of a putatively threaded *C*-terminal part of the peptide would explain this remarkable fragmentation pattern. Regarding the native MccJ25, the fragmentations obtained were in agreement with those already described in the literature \[[@B1-ijms-20-05152],[@B24-ijms-20-05152]\].

The MS^3^ spectra of the main fragmentations showed the same pattern for the native MccJ25 and the new product, the only difference being that the MS^3^ fragmentations of b~13~ + y~6~ were more intense for the former ([Figure S8](#app1-ijms-20-05152){ref-type="app"}). On the basis of these results, we confirmed that the new compound showed the lasso topology and that, with the exception of its t~R~, its structure was very similar or even the same as that of the native MccJ25.

2.7. Ion-Mobility Mass Spectrometry (IM-MS) Analysis {#sec2dot7-ijms-20-05152}
----------------------------------------------------

Small changes in collision cross section (CCS) values were observed upon increasing the charge state of both the native MccJ25 and the new peptide ([Table S3](#app1-ijms-20-05152){ref-type="app"}). This feature was demonstrated by the low range of CCS values (∆Ω) and the concomitant low ∆Ω/Ω value ([Table S4](#app1-ijms-20-05152){ref-type="app"}). Small changes in CCS values are characteristic of lasso peptides, as an increase in charge state brings about more unfolding and, consequently, lower drift times (t~d~). However, due to the organized and constrained structure of lasso peptides, the increase in the CCS was very low compared to branched cyclic or lineal peptides. The ∆Ω/Ω value of the new compound was within the accepted range for lasso peptides (0 to 10.9%) \[[@B26-ijms-20-05152]\]. It was therefore deduced that this peptide had a lasso structure.

The number of multiple conformations was higher for lower charge states, as expected due to the larger number of available protonation sites and the coexistence of several protomers \[[@B27-ijms-20-05152]\]. However, when the charge state increases, narrow ion mobility peaks, associated with the existence of few conformations, are expected ([Figure 3](#ijms-20-05152-f003){ref-type="fig"}).

IM-MS revealed that the new compound showed the same features as those of native MccJ25, thus allowing us to confirm once again the lasso structure of the former.

2.8. Circular Dichroism (CD) Spectroscopy {#sec2dot8-ijms-20-05152}
-----------------------------------------

The CD spectra of the two peptides were recorded in methanol \[[@B28-ijms-20-05152],[@B29-ijms-20-05152]\]. They displayed a clear minimum at 200 nm, which is characteristic of unstructured peptides, indicating a predominant random coil state ([Figure 4](#ijms-20-05152-f004){ref-type="fig"}). The native MccJ25 in methanol showed a maximum at 220 nm and a smooth positive shoulder at 210 nm. These bands have been previously attributed to the Phe L~α~ and Tyr L~α~ transitions \[[@B30-ijms-20-05152]\]. However, for the native MccJ25 in H~2~O with 5% of 2,2,2-trifluoroethanol (TFE), the maximum was located at 222 nm and was more intense than in methanol. In addition, the shoulder at 210 nm was not marked. On the contrary, the positive band at 220 nm for the new compound was displaced to 225 nm and the one at 210 nm was more defined and clearer than for the native peptide. This behavior suggested that the L~α~ transition of these residues had greater relevance for the new compound than for the native MccJ25.

In conclusion, the CD spectra revealed some differences in the positive bands of the two peptides, but the clear minimum at 200 nm indicated a random coil structure for both. The changes in the positive bands may indicate distinct topologies.

2.9. Nuclear Magnetic Ressonance (NMR) Spectroscopy {#sec2dot9-ijms-20-05152}
---------------------------------------------------

The NMR data for the structural characterization of the new compound were recorded in methanol-d~3~ and compared with those of the native MccJ25 ([Tables S5--S8 and Figures S9--S14](#app1-ijms-20-05152){ref-type="app"}) \[[@B1-ijms-20-05152],[@B24-ijms-20-05152],[@B25-ijms-20-05152],[@B28-ijms-20-05152],[@B31-ijms-20-05152]\]. The resonance assignments of the native MccJ25 were identical to those of the structure already published (PDB code 1PP5) \[[@B31-ijms-20-05152]\]. Given our previous results from the thermolysin assay, we hypothesized that the difference between the two peptides may reside in the peptide loop, between residues 10--12 in particular, which are involved in the β-hairpin, and that after thermolysin treatment the cleaved product showed the same t~R~.

Regarding ^1^H assignment, the chemical shift deviation values of αH of the loop residues in the new compound differed to those of the native structure ([Figure 5](#ijms-20-05152-f005){ref-type="fig"}). The most remarkable residue was Val11, indicating that the β-hairpin had been lost, as demonstrated by the negative value \[[@B18-ijms-20-05152]\]. On the other hand, the structure of the ring and the tail had been conserved, including the β-hairpin between residues 6--7 and 19--20, as shown by the high positive values in [Figure 5](#ijms-20-05152-f005){ref-type="fig"}. In addition, the overlapping of several peaks was observed for the new compound in the amide proton region around 7.80, 7.90 and 8.40 ppm ([Table 2](#ijms-20-05152-t002){ref-type="table"}).

Evidence that the tail was threaded through the ring in the new compound was provided by the presence of the characteristic Nuclear Overhauser Effect (NOE) cross-peaks between residues 1--8 and residues 19--21 ([Figures S15--S17A](#app1-ijms-20-05152){ref-type="app"}) \[[@B24-ijms-20-05152]\]. For example, the NOEs between NH Tyr20 and αH Gly2 and δH Phe19 and βH Ser18 were also more intense than for the native MccJ25. Moreover, some NOEs, such as βH Phe19--NH Glu8 and δH Tyr9--αH Gly14, were detected only in the new compound ([Figure S17B](#app1-ijms-20-05152){ref-type="app"}). Analysis of the two β-hairpins in the native MccJ25 structure reveals clear differences ([Table S9](#app1-ijms-20-05152){ref-type="app"}). The disappearance of the β-sheet in the loop can also be detected by the lack of NOEs between αH Val11 and δH Pro16 ([Figure S17C](#app1-ijms-20-05152){ref-type="app"}). The two Pro (7 and 16) in both structures adopted a trans conformations, as shown by the presence of the NOE between the δH Pro(i) and the αH residue(i-1).

With respect to Val11, various NOE cross-peaks were observed, thereby revealing a distinct topology for the new compound ([Table S10](#app1-ijms-20-05152){ref-type="app"}). In general, the intensities of the NOEs for the new compound were lower than those of the native one. However, the new compound showed a stronger connectivity with Phe10 and Thr15 ([Table S11](#app1-ijms-20-05152){ref-type="app"}). The ring protons of Phe10 adopted a different conformation. In the new compound, this residue interacted with δH Pro16, βH Ile17, NH Val11 and αH Ala3, while in the native peptide it interacted with αH, γH Pro16, βH, γH Glu8, βH Phe19 and NH Thr15 ([Figure S17D](#app1-ijms-20-05152){ref-type="app"}).

All the results pointed to the epimerization of Val11 during the treatment with a base, a process that yielded a new peptide topology. This epimerization explains the loss of the β-sheet in the loop region, producing a lack of organization and consequently a high signal overlap.

2.10. Structure Calculation {#sec2dot10-ijms-20-05152}
---------------------------

The structure of the new compound was determined using a macrocyclic conformational sampling tool \[[@B33-ijms-20-05152]\], and the constraints are described in [Table S12](#app1-ijms-20-05152){ref-type="app"}. The lowest-energy structure was compared with the native MccJ25. The lasso structure was maintained and the modification was mainly in the loop region ([Figure 6](#ijms-20-05152-f006){ref-type="fig"}). The interaction between the side-chains of Val11 and Pro16, characteristic of a β-sheet, was not present. The αC of Val11 underwent racemization and the side-chain of Val11 adopted a new orientation. Furthermore, the high root-mean-square deviation value (RMSD = 8.5 Å) exhibited that the structures of the native peptide and new product differed.

The Ramachandran plots for the two peptides differed ([Figure S17](#app1-ijms-20-05152){ref-type="app"}). The native MccJ25 showed a well-defined and compact structure, with the individual backbone conformations of all residues located mainly in highly favored regions. On the contrary, the new compound showed more dispersion. The β-sheet in the loop was absent, and Pro16 was observed to be involved in a right-handed α-helix and Val11 in a left-handed one ([Figure S18](#app1-ijms-20-05152){ref-type="app"}). Gly12 and Ile17 also adopted a left-handed α-helix conformation. On the other hand, the ring residues 5--8 of the new compound remained in the same conformation as that of the native structure.

3. Discussion {#sec3-ijms-20-05152}
=============

We have demonstrated that basic chemical treatment of MccJ25 produced a new compound that maintained the threaded lasso structure but lost its antimicrobial activity. Three independent properties corroborated the presence of the lasso topology: high proteolytic stability; identical MS^2^ fragmentation pattern; and ion-mobility spectra as the native MccJ25. Circular dichroism revealed slight differences in the positive bands between the two peptides, thereby pointing to distinct topologies.

The microbiological results showed that the new compound did not exert antimicrobial activity, as shown by its incapacity to penetrate the outer bacterial membrane. However, when used in combination with colistin, the new compound did show antimicrobial activity. These findings were consistent with the NMR results, in which a change in the loop topology, caused by epimerization at the Val11 residue, was detected. This observation suggests that Val11 is highly base-sensitive and is essential for conferring antimicrobial activity, because it governs binding to the FhuA receptor \[[@B34-ijms-20-05152]\]. This epimerization produced a conformational change on the loop between Val11 and Pro16, which is in agreement with previous evidence that this section is relevant for the antimicrobial activity of MccJ25 \[[@B19-ijms-20-05152]\]. Ile13 is also an essential residue for the uptake of MccJ25 into cells \[[@B35-ijms-20-05152]\]. The new compound showed an alteration in the orientation of the Ile13 side chain, which led to the suppression of biological activity.

The weak synergistic effect observed when the new compound was used in combination with colistin and assayed on resistant bacteria (*E. coli* MDR 208691 and *E. coli* MDR 239910), is consistent with the hypothesis that penetration is the main handicap for antimicrobial activity. In the case of such resistant strains the entry is not the reason for resistance. Although the microbiological results are preliminary, we propose that the combination of bacteriocins with "door openers", such as colistin, may provide a promising strategy to fight multidrug-resistant infections. In this regard, the treatment of such infections is becoming increasingly unsuccessful and has thus emerged as a key challenge in current microbiological research \[[@B36-ijms-20-05152]\].

4. Materials and Methods {#sec4-ijms-20-05152}
========================

4.1. Heterologous Expression of MccJ25 {#sec4dot1-ijms-20-05152}
--------------------------------------

Overnight cultures were prepared in Luria broth (LB) medium containing 17 µg/mL of Chloramphenicol at 37 °C through inoculation with *E. coli* BL21 cells carrying the MccJ25 plasmid (pTUC202). Subsequently, 500 mL of M9 minimal medium ((17.1 g/L Na~2~HPO~4\ ×~ 12 H~2~O, 3 g/L KH~2~PO~4~, 0.5 g/L NaCl, 1.0 g/L NH~4~Cl, 1.0 mL/L MgSO~4~ 2 M, 0.2 mL/L CaCl~2~ 0.5 M at pH 7.0), after autoclaving 10 mL/L glucose solution (40% *w/v*), 0.2 mL/L vitamin mix ([Table S13](#app1-ijms-20-05152){ref-type="app"}), and 17 µg/mL amphenicol) were inoculated with 5 mL of culture and incubated for 3 days at 37 °C. Once the OD~600~ reached \~1.5, cells were harvested by centrifugation (2 × 20 min at 7000 rpm), and the supernatant was treated with 10 mL of XAD-16. After 1 h of shaking at 100 rpm, the supernatant was removed by filtration, and the resin was washed with water and extracted with 50 mL of MeOH. Solvent was removed under vacuo. Dried extract was resuspended in a total of 1 mL of MeOH-H~2~O (1:1, *v/v*), cleared by centrifugation, and analyzed by RP-HPLC. For the isolation and purification of MccJ25, the expression was carried out with 6 L of M9 minimal medium. In this case, the procedure was the same, and the dried extract was resuspended in 6 mL of MeOH-H~2~O (1:1, *v/v*), cleared by centrifugation and filtration, and then subjected to preparative HPLC.

4.2. Minimum Inhibitory Concentration (MIC) {#sec4dot2-ijms-20-05152}
-------------------------------------------

MIC values were determined by the broth microdilution method and interpreted following the guidelines of the Clinical & Laboratory Standards Institute (CLSI) and European Committee on Antimicrobial Susceptibility Testing (EUCAST) \[[@B37-ijms-20-05152]\]. The different strains were grown in Mueller-Hinton broth (MHB) overnight at 37 °C with shaking at 200 rpm. The bacterial cultures were then adjusted to OD~625nm~ of 0.08--0.1 and diluted 1:100 in fresh MHB medium. Next, 5 µL of each diluted suspension was added to 96-well plates previously filled with MHB and serially diluted peptides. The plates were incubated at 37 °C for 24 h, after which the MIC was determined macroscopically, based on the visually turbidity of the wells. All experiments were performed in triplicate.

4.3. Synergy Study {#sec4dot3-ijms-20-05152}
------------------

A checkerboard test was used to determine the fractional inhibitory concentrations (FICs) of colistin in combination with the new compound. Each well in a 96-well plate was inoculated with 100 µL of a bacterial inoculum of 1 × 10^5^ CFU/mL, and the plates were incubated at 37 °C for 24 h. The FIC was calculated after identifying the first well in each row without growth (MIC), following Equations (1) and (2).

F

I

C

A

=

M

I

C

d

r

u

g

A

i

n

c

o

m

b

i

n

a

t

i

o

n

M

I

C

d

r

u

g

A

F

I

C

B

=

M

I

C

d

r

u

g

B

i

n

c

o

m

b

i

n

a

t

i

o

n

M

I

C

d

r

u

g

B

The FIC index (FICi) values were calculated by adding the FIC A (collsitin) to the FIC B (peptide). FICi values were interpreted as follows: FICi \< 0.5, synergistic; FICi ≥ 0.5 and \< 4, no interaction; FICi \> 4, antagonistic \[[@B38-ijms-20-05152]\]. This assay was performed in triplicate.

4.4. Minimal Biofilm Eradication Concentration (MBEC) {#sec4dot4-ijms-20-05152}
-----------------------------------------------------

MBEC was determined as described by Moskowitz et al. \[[@B39-ijms-20-05152]\]. Bacterial biofilms were formed by immersing the pegs of a modified polystyrene microtiter lid into 96-well microtiter plates, each containing 200 µL of Muller-Hinton broth cation adjusted (MHBCA), followed by incubation at 37 °C for 24 h. Pegs were then gently rinsed in a 0.9% *w/v* NaCl solution and biofilms were exposed to a range of concentrations of antimicrobials for 24 h at 37 °C. Pegs were again rinsed with a 0.9% *w/v* NaCl solution and biofilms were removed by 10 min sonication. Recovered bacteria were incubated for 24 h at 37 °C. Optical densities at 620 nm were measured in order to determine MBEC values, defined as the lowest concentration of antimicrobial that prevented bacterial regrowth from the treated biofilm. All experiments were performed in triplicate.

4.5. NMR Spectroscopy {#sec4dot5-ijms-20-05152}
---------------------

1D and 2D NMR spectra were acquired on a Bruker 600 Avance II Ultrashield, equipped with a cryoprobe. Chemical shifts (δ) are shown in parts per million (ppm) using tetramethylsilane (TMS) as internal standard.

1.5 mg and 1.0 mg of the native MccJ25 and the new compound, respectively, were dissolved in 600 µL of methanol-d~3~ to a final concentration of 1.2 mM and 0.86 mM, respectively. The spectrum was recorded at 25 °C and the residue assignments were obtained from 2D total correlated spectroscopy (TOCSY), while 2D nuclear Overhauser effect spectroscopy (NOESY) permitted sequence-specific assignments. ^13^C resonances were assigned from 2D ^13^C--^1^H HSQC spectra. The TOCSY and NOESY mixing times were 70 and 250 ms, respectively.

4.6. Ion-Mobility Mass Spectrometry (IM-MS) {#sec4dot6-ijms-20-05152}
-------------------------------------------

IM-MS experiments were recorded on a Synapt G1-HDMS mass spectrometer (Waters). 0.1 mg of peptide was dissolved in 500 μL of water at 100 μM. Samples were then diluted 1/10 in water -acetonitrile (H~2~O-ACN) (1:1) with 4% of formic acid and adding 200 mM and 400 mM sulfolane up to 10 μM. Samples were directly injected into the instrument using a Triversa Nanomate system (AdvionBioSciences, Ithaca, NY, USA) as the interface. Ionization was recorded in positive mode using a gas pressure and spray voltage of 0.5 psi and 1.75 kV, respectively. Source temperature, extraction cone and cone voltage were set to 20 °C, 3 V and 40 V, respectively. Transfer and trap collision energies were set to 4 V and 6 V, respectively. Ion-mobility spectrometry (IMS) and trap gas flows were 25 and 8 mL/sec, respectively. The pressure in the Trap and Transfer T-Wave regions were 5.97× 10^−2^ mbar of argon and the pressure in the IMS T-Wave was 0.478 mbar of N~2~. The wave amplitude was a linear ramp from 1.0 to 28.0 V. The traveling wave operated at a velocity of 250 m/sec. The bias voltage for getting in the T-wave cell was 15 V. Cesium iodide was used to calibrate the instrument over the *m/z* range of 200--3000 Da. MassLynx 4.1 SCN 704 (Waters, Spain) and Drift scope version 2.4 software were used for data processing.

4.7. MS/MS Analysis {#sec4dot7-ijms-20-05152}
-------------------

MS^2^ and MS^3^ analyses were carried out on a linear trap quadrupol fourier transform(LTQ-FT) Ultra mass spectrometer (Thermo Scientific). 0.1 mg of peptide was dissolved in 500 μL of water at 100 μM. Then, 10 μL was diluted 1/1 with ACN (1% formic acid) to obtain a concentration of 50 μM (20 μL). Solutions were directly injected into the instrument using a Nanomate system (AdvionBioSciences, Ithaca, NY, USA) as the interface. Ionization was recorded in positive mode using a gas pressure and spray voltage of 0.5 psi and 1.75 kV, respectively. Voltage and capillary temperature were set to 44 V and 200 °C, respectively. Collision-induced dissociation (CID) was used as a fragmentation technique. Data were recorded using Xcalibur software vs.2.0SR2 (ThermoScientific).

4.8. Structure Calculation {#sec4dot8-ijms-20-05152}
--------------------------

The structure was calculated with the Schrödinger Suite Macrocyclic Conformational Sampling tool \[[@B33-ijms-20-05152]\]. The coordinates were extracted from the native MccJ25 solution NMR structure (PDB ID: 1PP5). The stereochemistry of Val11 was manually mutated to R. The resulting structure was used as input for structural modeling. NOEs were classified as strong, medium and weak (upper limits for structure calculation were set as 2.2 Å, 3.0 Å and 4.0 Å, respectively), and were then applied to the structure ([Table S12](#app1-ijms-20-05152){ref-type="app"}). Optimized potentials for liquid simulations (OPLS) 2005 force field and Generalized Born surface area (GBSA) for electrostatic treatment were used to generate a total of 56 conformations. They were kept when energies were below 10 kcal/mol, and superfluous conformations (RMSD \> 0.75 Å) were removed. 5000 simulation cycles were applied with 5000 Large-scale Low Mode (LLMOD) search steps.

4.9. Circular Dichroism (CD) {#sec4dot9-ijms-20-05152}
----------------------------

CD spectra were recorded using a Jasco 810 UV-Vis spectropolarimeter, equipped with a CD/Fluorescence 426S/426L Peltier temperature controller. Peptide samples were dissolved in MeOH, and spectra were recorded at 200 µM. One sample was dissolved in H~2~O with 5% TFE. The following parameters were used: sensitivity (standard, 100 mdeg); start (260 nm); end (190 nm); data pitch (0.5 nm); scanning mode (continuous); scanning speed (200 nm/min); response (1 s); band width (1.0 nm); and accumulation (3). A blank spectrum of the buffer was subtracted from all recordings, and molar ellipticity values were calculated from experimental ellipticity using the Equation (3):$$\theta = ~\frac{\theta_{\exp} \cdot 10^{6}~}{b~ \times C~ \times n}$$ where θ is the molar ellipticity in deg·cm^2^·dmol ^−1^, θ~exp~ is the measured ellipticity in mdeg, b is the optical path length in mm, C is the peptide concentration in µM and n is the number of residues in the peptide. After unit conversion, the spectrum was smoothed using the Savitzky-Golay method (convolution width = 21) and taken to zero at the far-UV region (λ = 260 nm).

This study was partially financed by MINECO (CTQ2015-67870-P to F.A., and CTQ2015-68677-R and EUIN2017-88320 to J.T.-P), and the Institute for Research in Biomedicine Barcelona (IRB Barcelona). Helena Martín-Gomez and Judit Tulla-Puche thank MINECO for a Severo Ochoa Predoctoral fellowship and a Ramon y Cajal contract, respectively. Miquel Viñas is a member of the ENABLE consortium. The research of this group has been awarded by the Marató TV3 foundation 2018.

######

Click here for additional data file.

Supplementary Materials can be found at <https://www.mdpi.com/1422-0067/20/20/5152/s1>.

Conceptualization, H.M.-G., F.A., and J.T.-P.; investigation, H.M.-G., and M.J.; writing---original draft preparation, H.M.-G., M.J., and M.V.; writing---review and editing, H.M.-G., M.J., F.A., M.V., and J.T.-P.; supervision, F.A., M.V., and J.T.-P.

The authors declare no conflict of interest.

![(**A**) Chemical structural and (**B**) ribbon representation of the 3D structure of MccJ25 (Protein Data Bank (PDB) code: 1Q71). The four fragments of antiparallel β-sheets are shown in red. Reprinted (adapted) with permission from Knappe, T.A.; Linne, U.; Zirah, S.; Rebuffat, S.; Xie, X.; Marahiel, M.A. Isolation and structural characterization of capistruin, a lasso peptide predicted from the genome sequence of *Burkholderia thailandensis* E264. J. Am. Chem. Soc. 2008, 130, 11446--11454. Copyright 2019 American Chemical Society \[[@B20-ijms-20-05152]\].](ijms-20-05152-g001){#ijms-20-05152-f001}

![Schematic representation of thermolysin cleavage in the native MccJ25 and in the new compound. Dashed red lines indicate the cleavage sites.](ijms-20-05152-g002){#ijms-20-05152-f002}

![Drift times profiles (blue trace) and fitted peaks (red, green, purple and orange trace) of double, triple and quadruple protonated ion of (**A**) the new compound obtained after treatment with a base and (**B**) native MccJ25. Background is the residual drift time profile, in which no more peaks could be fitted.](ijms-20-05152-g003){#ijms-20-05152-f003}

![CD spectra of new compound after treatment with a base and native MccJ25 in methanol. \* in H~2~O with 5% TFE.](ijms-20-05152-g004){#ijms-20-05152-f004}

![Histograms of chemical shift deviations from random coil for ∆Hα in the native MccJ25 (red) and new compound (blue) in methanol. Random coil values were obtained from Whishart et al. \[[@B32-ijms-20-05152]\].](ijms-20-05152-g005){#ijms-20-05152-f005}

![(**A**) and (**C**) 3D structure of the native MccJ25 (PDB code 1PP5) and NMR-derived lowest-energy structure of the new compound, respectively. Only the side chains of the loop are shown. (**B**) and (**D**) Ribbon representation of the native peptide and new compound, respectively. The four residues involved in the β-sheet located in the loop are shown. (**E**) Ensemble of the 20-lowest energy structures derived from the NMR restraints of the new compound. The maximum RMSD value between structures 1--20 is 0.6 Å. Aromatic and hydrophobic residues are shown in green, negatively charged residue (Glu8) in red, positively charged residues (His5) in blue, polar residues in light pink and non-polar residues in pink (Gly) and (Pro). In (**A**) and (**C**) Val11 residue is shown in grey.](ijms-20-05152-g006){#ijms-20-05152-f006}

ijms-20-05152-t001_Table 1

######

Minimum inhibitory concentration (MIC) in µg/mL of the native MccJ25 and the new compound against eight Gram-negative strains \[a\]. The sensitive strains to the native MccJ25 are highlighted in bold.

  Strains\[a\]                           Native MccJ25   New Compound
  -------------------------------------- --------------- --------------
  ***Escherichia coli* MDR 39255**       0.5             \>256
  *Escherichia coli* MDR 208691          \>128           \>128
  ***Escherichia coli* MDR 246415**      00625           \>128
  *Escherichia coli* MDR 239910          \>128           \>128
  *Salmonella enterica* ATCC 14028       \>128           \>128
  ***Salmonella enterica* ATCC 13076**   \<0.0625        \>128
  ***Salmonella enterica* ATCC 49214**   0.8             \>128
  *Salmonella typhimurium* SY5015        \>128           \>128

ijms-20-05152-t002_Table 2

######

1H chemical shift of the amide protons of the new compound that underwent peak overlapping \[a\]. From the total correlated spectroscopy (TOCSY) spectrum in methanol-d~3~ at 298 K.

  Residue   δ (ppm)\[a\]   Residue   δ (ppm)\[a\]
  --------- -------------- --------- --------------
  Ser18     7.80           Glu8      7.90
  Gly4      7.80           Ile13     7.89
  Tyr9      7.84           Ala3      8.44
  His5      7.79           Val11     8.42
                           Gly12     8.39


A noninvasive optical method to measure oxygen tension at the corneal epithelium.
Corneal redox fluorometry is presented as an alternative method to noninvasively measure the oxygen tension in equilibrium with the tear film. The application of this method to the study of the effects of a contact lens on the tear film oxygen tension is described. The development of a clinical corneal redox fluorometer would permit noninvasive measurements of the effects of contact lens induced corneal hypoxia on corneal physiology. These studies could investigate the effects of corneal hypoxia at the cellular level and result in a new level of understanding of the processes involved.


CHECKOFF PROGRAM

Created in 1957, the Oregon Beef Checkoff is a producer-funded marketing and research program designed to build the consumer demand for beef through integrated local, state, national and international programs and to increase the opportunity for producer profitability. This is accomplished through a combination of initiatives, including advertising, promotion, research, education and outreach, new product development, and a variety of other marketing tools.

Checkoff dollars may be used toward six program areas: promotion, research, consumer information, industry information, foreign marketing and producer communications. It’s important to note here that the law does not allow checkoff dollars to be spent to influence government policy or action, including lobbying.

All producers selling cattle or calves, for any reason and regardless of age or sex of the bovine, by law must pay $1.50-per-head:

$1.00 – Per the National Beef Checkoff Program (1985 Farm Bill)

$0.50 – Additional per the State Checkoff (Oregon 2006 Law)

Under the National Beef Checkoff we are required to send fifty cents of the first dollar collected to the Cattlemen’s Beef Board (CBB) for national programs. The remaining dollar is Oregon controlled. The Oregon Beef Council Board of Directors (OBC), who are industry nominated and appointed by the Director of Oregon Department of Agriculture for 3-year terms, provide financial oversight and determine how much of the in-state income should be invested in state, national and export programs.

Compliance

Also under the National Beef Checkoff Program, the Oregon Beef Council is legally responsible for collecting monthly assessments as well as a two percent late charge on checkoff remittances if they are not received by the 15th of the month following the month of sale. No producer is exempt from the checkoff. Persons in non-compliance are subject to a civil penalty of up to $5,500 per transaction, plus un-remitted checkoff dollars and interest.


Q:

How to use Tuple/Array/Vector to call PARI/GP from Python (ctypes)?

I would like to call PARI/GP from Python. I need to use ellisdivisible(E; P; n;{&Q}) function of PARI  (see function no 3.15.35 on page 441 in this link:), so I have to pass 2 vectors or arrays (e.g, E = ellinit([0,-1,1,0,0], K);P = [0,0];), how I do that?
To call a PARI function(in C) of single argument/variable from Python (given by Thomas Baruchel), we have something like below -
import ctypes

# load the library
pari=ctypes.cdll.LoadLibrary("libpari.so")

# set the right return type of the functions
pari.stoi.restype = ctypes.POINTER(ctypes.c_long)
pari.nextprime.restype = ctypes.POINTER(ctypes.c_long)

# initialize the library
pari.pari_init(2**19,0)

def nextprime(v):
  g = pari.nextprime(pari.stoi(ctypes.c_long(v))) # nextprime(argument) is a PARI function
  return pari.itos(g)

print( nextprime(456) )

For example I tried -
h=(0,0,0, 4,6)
pari.stoi.restype = ctypes.POINTER(ctypes.c_long*5)
pari.ellinit.restype = ctypes.POINTER(ctypes.c_long)
def ellinit(v):
  g = pari.ellinit(pari.stoi(ctypes.c_long(v)*5))
  return pari.itos(g)

print(ellinit(h))

I got below error -
   File "C:\Users\miron\Desktop\trash5\x\f.py", line 68, in <module>
    print( ellinit(h) )
  File "C:\Users\miron\Desktop\trash5\x\f.py", line 62, in ellinit
    g = pari.ellinit(pari.stoi(ctypes.c_long(v)*5))
TypeError: an integer is required (got type tuple)

How do I pass a tuple/array/vector?  Thanks.
Edit:
Failed attempt to get ellisdivisible(E; P; n;{&Q}) -
from ctypes import *

pari = cdll.LoadLibrary("C:\\Program Files\\Python37\\Pari64-2-11-3\\libpari.dll")

pari.stoi.restype = POINTER(c_long)
pari.cgetg.restype = POINTER(POINTER(c_long))
pari.ellinit.restype = POINTER(POINTER(c_long))
#-------------------------CHANGE 1
pari.ellisdivisible.restype = c_long
Q = pari.stoi(c_long(0))
#-------------------------
(t_VEC, t_COL, t_MAT) = (17, 18, 19)  # incomplete
precision = c_long(38)
pari.pari_init(2 ** 19, 0)
def t_vec(numbers):
    l = len(numbers) + 1
    p1 = pari.cgetg(c_long(l), c_long(t_VEC))
    for i in range(1, l):
        p1[i] = pari.stoi(c_long(numbers[i - 1]))
    return p1
def main():
    h = (0, 0, 0, 0, 1)
    P=(0,0)
    res = pari.ellinit(t_vec(h), pari.stoi(c_long(1)), precision)
#---------------CHANGE 2
   # res = pari.ellinit(t_vec(h), pari.stoi(c_long(1)), precision).disc
    y = pari.ellisdivisible(res, t_vec(P), pari.stoi(c_long(5)), byref(Q))
    print(pari.itos(y))
#---------------
    for i in range(1, 13):
        print(pari.itos(res[i]))

if __name__ == '__main__':
    main()

The error is -
Traceback (most recent call last):
  File "C:\Users\miron\Desktop\trash5\x\ex - Copy (2).py", line 34, in <module>
    main()
  File "C:\Users\miron\Desktop\trash5\x\ex - Copy (2).py", line 28, in main
    print(pari.itos(y))
OSError: exception: access violation reading 0x0000000000000009

A:

Python tuples or C-arrays cannot be used directly because PARI is Using PARI/GP specific vectors where the type/length is encoded in the first element.
In section 4.4.1 Creation of PARI objects it says:

The basic function which creates a PARI object is GEN cgetg(long l, long t) l specifies the number of longwords to be allocated to the object, and t is the type of the object, in symbolic form (see Section 4.5 for the list of these). The precise effect of this function is as follows: it first creates on the PARI stack a chunk of memory of size length longwords, and saves the address of the chunk which it will in the end return. If the stack has been used up, a message to the effect that “the PARI stack overflows” is printed, and an error raised. Otherwise, it sets the type and length of the PARI object. In effect, it fills its first codeword (z[0]).

see https://pari.math.u-bordeaux.fr/pub/pari/manuals/2.7.6/libpari.pdf
In the examples in this document you can see that to create a vector with two elements, it is called with the size l=3 to get a suitable vector. The first element of the actual number vector does not start with index 0, but with index 1 (see section 4.5.15 in this PDF document).
With
git clone http://pari.math.u-bordeaux.fr/git/pari.git

the source code for PARI can be fetched.
There you can see the different types at the end in src/headers/parigen.h. It is an enum and the type we need is t_VEC. The corresponding integer is 17.
We can therefore now define a small function that converts a tupel into a GP vector like this:
def t_vec(numbers):
    l = len(numbers) + 1
    p1 = pari.cgetg(c_long(l), c_long(t_VEC))
    for i in range(1, l):
        p1[i] = pari.stoi(c_long(numbers[i - 1]))
    return p1

We could then call ellinit so:
h = (0, 0, 0, 4, 6)
res = pari.ellinit(t_vec(h), pari.stoi(c_long(1)), precision)

In order to test it with your [0, 0, 0, 4, 6] parameters, you can call GP from the command line:
? ellinit([0, 0, 0, 4, 6], 1)
%1 = [0, 0, 0, 4, 6, 0, 8, 24, -16, -192, -5184, -19648, 110592/307, Vecsmall([1]), [Vecsmall([128, -1])], [0, 0, 0, 0, 0, 0, 0, 0]]

A small, self-contained Python program of the example on page 441 of the cited PDF document might look like this:
from ctypes import *

pari = cdll.LoadLibrary("libpari.so")

pari.stoi.restype = POINTER(c_long)
pari.cgetg.restype = POINTER(POINTER(c_long))
pari.ellinit.restype = POINTER(POINTER(c_long))
pari.ellisdivisible.restype = c_long
pari.nfinit0.restype = POINTER(c_long)
pari.polcyclo_eval.restype = POINTER(c_long)
pari.fetch_user_var.restype = c_long
pari.pol_x.restype = POINTER(c_long)

(t_VEC, t_COL, t_MAT) = (17, 18, 19)  # incomplete
precision = c_long(38)

pari.pari_init(2 ** 19, 0)

def t_vec(numbers):
    l = len(numbers) + 1
    p1 = pari.cgetg(c_long(l), c_long(t_VEC))
    for i in range(1, l):
        p1[i] = pari.stoi(c_long(numbers[i - 1]))
    return p1

def main():
    t = pari.pol_x(pari.fetch_user_var(bytes("t", "utf8")))
    Q = pari.pol_x(pari.fetch_user_var(bytes("Q", "utf8")))
    K = pari.nfinit0(pari.polcyclo_eval(11, t), c_long(0), precision)
    h = (0, -1, 1, 0, 0)
    res = pari.ellinit(t_vec(h), K, precision)
    P = (0, 0)
    y = pari.ellisdivisible(res, t_vec(P), pari.stoi(c_long(5)), byref(Q))

    pari.pari_printf(bytes("Q: %Ps\n", "utf8"), Q)

    print("ellisdivisible =", y)

if __name__ == '__main__':
    main()

Test
Now we can call the Python program and, and compare with it with the output of the interactive GP program, it actually gives the same result:
Q: [Mod(-t^7 - t^6 - t^5 - t^4 + 1, t^10 + t^9 + t^8 + t^7 + t^6 + t^5 + t^4 + t^3 + t^2 + t + 1), Mod(-t^9 - 2*t^8 - 2*t^7 - 3*t^6 - 3*t^5 - 2*t^4 - 2*t^3 - t^2 - 1, t^10 + t^9 + t^8 + t^7 + t^6 + t^5 + t^4 + t^3 + t^2 + t + 1)]
ellisdivisible = 1


Sea Salt Ice Cream - Gaming T-Shirt

Twilight Town's Finest... Enjoy the luxury of Gametee. Each of our garments is individually silk-screened by hand in England. Our gaming t-shirts are the highest quality, lightweight and tailored; our tees are made to the same high standard as the leading British premium fashion chains.

We use advanced printing techniques to ensure the soft-feel design sits within the fabric and move with the wearer. Comes with a free collectible Gametee Art Card.

100% Plastic Free Printing

Gametee exclusively uses solvent-free water based organic inks when printing, and no plastic inks or plastic film positives are used in the creation of our silk screens. This not only results in a higher quality and environmentally sound product, but also one that prevents damaging PVC and solvents from entering our environment. This method of printing gives a soft-feel t-shirt that has a much longer lifespan than a digital or plastic print.

Each T-Shirt is individually silk-screened in our renewable-energy powered printing studio.

Key Details

- Premium Gaming T-Shirt

- Heartless Black

- Ultra comfortable unisex fit

- Lightweight with water based inks for a soft hand feel.

Our Plastic Free Printing Ensures this Garment is Fully Recyclable.

Every year, tons of plastic waste enters our environment on the front of t-shirts. Our permanent, water-based organic inks dye the fibre, rather than sitting on top of the fabric. This means that when you eventually come to recycle your t-shirt at the end of its lifespan, every fibre can be respun into new yarns and fabrics or be used to create durable new papers. Recycling one tonne of cotton can save 765 cubic metres (202,000 US gal) of water.


Q:

Doubt in Frequency Modulation code

While searching for something FM, I came across this code. I am not able to understand a particular line of code. I have written a comment against that line of code.
fs = 1000;
fc = 200;
t = (0:1/fs:0.2)';
x = sin(2*pi*30*t)+2*sin(2*pi*60*t);
fDev = 50;
int_x = cumsum(x)/fs;  %%% This line of code
xfm = cos(2*pi*fc*t).*cos(2*pi*fDev*int_x)-sin(2*pi*fc*t).*sin(2*pi*fDev*int_x)   ;

I understand the cumsum function but I am not able to understand why is he dividing the integration by Fs i.e. sampling frequency.
Link to the code - https://in.mathworks.com/matlabcentral/answers/318969-fm-modulation-without-using-fmmod

A:

When generating the sine wave, the code uses a sampling frequency to establish discrete points in the time domain. It is not continuous. This means the wave is broken up into bins that are exactly 1/fs in size/width.
So if you want a true integral of the wave, you have to take the average density of all the points in a bin by dividing by the sampling frequency.
Hope that helped.


Katowice Trade Hall roof collapse

On 28 January 2006, the roof of one of the buildings at the Katowice International Fair (Międzynarodowe Targi Katowickie) collapsed in Chorzów / Katowice, Poland.

At 16:15 GMT (17:15 local time), the central section of the roof of the hall collapsed, possibly due to the weight of snow on the building. According to the police there were roughly 700 people in the hall at the time of the collapse. A further collapse occurred 90 minutes later during rescue operations. Polish government spokesman Krzysztof Mejer confirmed that there had been 65 dead as well as more than 170 injured, including 13 foreigners. There are confirmed deaths of ten foreign tourists – one from Belgium, one from Germany, three from Slovakia, one from the Netherlands, one from Hungary and three from the Czech Republic. The trade hall was hosting the 56th National Exhibition of Carrier Pigeons, with over 120 exhibitors from all over Europe. Poland was at that time experiencing very cold weather with heavy snow. This meant that the rescue operation was undertaken in sub-zero temperatures, putting the survivors inside the building at risk of exposure.

Rescue operation
Rescue support was sent from the surrounding area, including Katowice, as well as from the neighbouring province of Lesser Poland. Since parts of the collapsed structure were supported only by heaps of snow, the rescue teams could not heat the pockets beneath the collapsed roof with hot air, fearing that the roof might collapse even further.

The search and rescue action was terminated on the afternoon of Sunday 29 January 2006 as, according to Janusz Skulich, commander of the Silesian Fire Fighters, the probability of rescuing any more survivors from beneath the collapsed roof was by then close to zero. Heavy equipment is reported to have started clearing the area of the remaining rubble.

The rescue action was carried out by 103 firefighter teams (more than 1000 fire fighters altogether), EMS units as well as 230 policemen with dogs, military police units from Kraków and Gliwice, the GOPR mountain rescue team of Szczyrk and specialists from the mine rescue team of Bytom. Survivors were taken to nearby hospitals in Chorzów and Katowice, and to other towns of the region, including Siemianowice Śląskie, Bytom, Sosnowiec, Ruda Śląska, Dąbrowa Górnicza and Piekary Śląskie. Andrzej Skrzyś, vice-president of Polish Society of Carrier-Pigeons said that by Saturday the rescue services had brought over 1,000 pigeons to the office of the society, that were being fed and watered by pigeon-fanciers from Chorzów until the arrival of their owners.

On 30 January 2006 there were 67 confirmed deaths and about 30 missing people. Later that day the number of victims was revised down to 62 confirmed deaths. On 31 January three more bodies were found in the ruins of MTK, raising the death toll to 65. Next day, officials stated that due to irregularities by funeral houses and dissection rooms, the wrong number of victims had been reported, and on 1 February there were 63 confirmed deaths. On 11 and 14 February the bodies of the 64th and 65th victims of roof collapse were found.

In the morning of 19 February workers got to the last area of the hall that was still covered by fragments of the hall's collapsed roof. They found no more victims but found two pigeons that were still alive after spending 22 days trapped under the rubble.

Aftermath and investigation
After the tragedy, senior authorities arrived at the scene, including the Prime Minister Kazimierz Marcinkiewicz and the President of Poland Lech Kaczyński. The latter declared the period until 1 February to be national days of mourning.

On Tuesday, 21 February, at 0600 hours Central European Time (0500 UTC) three people were arrested and brought to the Katowice District Prosecutor's Office: New Zealand–born chairman of the International Katowice Fair Board of Management Bruce Robinson (who was also a Managing Director of the London–based Expomedia company that owned a 51% share in MTK), deputy chairman Ryszard Ziółek, and the company's technical manager Adam Hildebrandt. They were interviewed and charged with criminal negligence – allegedly they were aware of the fact that the building was unsafe and yet allowed the Fair to go on, and by doing so they contributed to deaths of 65 people. The spokesperson for the Prosecutor's Office did not rule out laying other charges in the future – depending on facts established by experts on causes of the building's collapse. A search warrant was also executed at Mr. Robinson's Warsaw apartment. The charges carried a maximum of 8 years imprisonment. Prosecutors also applied to the court for the accused to be detained for 3 months. The application was granted by the court, their application for bail was refused. A judge is quoted as saying that immediately after the catastrophe the accused destroyed some vital documents and there exists a possibility that if they were released on bail they would intimidate witnesses to change their testimonies. Their appeal against arrest was rejected by the District Court on 5 May.

After interviewing some 200 witnesses, the analysis of company documents, experts’ findings and data from the company's computers (some of which was recovered by computer specialists) the prosecutors allege that the accused were responsible for failing to remove heavy snow and ice from the building's roof, and also that in the past, the roof had gotten damaged and yet they carried out only emergency repairs and did not report the damage to a building inspector as required by Polish law. Earlier the managers claimed both that the snow was removed from the roof and that it was impossible for them to clear the roof because a Tax Office seized their accounts due to tax arrears. A spokesperson for the Tax Office refuted this claim saying that only some of the company's cash was seized and amounts remaining should have been more than sufficient to pay for snow and ice removal.

On 31 March 2006 the commission investigating causes of the disaster released a preliminary report into their findings. They found numerous design and construction flaws that contributed to the speed of the collapse. The snow from the roof was not being removed which resulted in construction overload by more than 100%. Moreover, in 2002 the construction buckled under the heavy snow; contrary to the regulations the hall was repaired without getting a building inspector's clearance and without doing necessary tests and calculations to determine if the construction was stable and had sufficient strength.

On Monday, 26 June 2006, three architects who designed the hall were arrested. Two were charged with "wilfully causing a building catastrophe" and by this causing the death of 65 people, the third one was charged with "involuntarily causing a building catastrophe." The prosecutor alleges that Jacek J. and Szczepan K. made several errors and introduced several amendments to the project that were not agreed upon. Both were aware of the fact that in January 2000 the roof buckled under the weight of the snow, yet they did not take any steps to remedy the situation and perhaps prevent the tragedy. The third architect, Andrzej W., is charged with approving the project despite its errors and deficiencies. The charges are the result of reports made by experts on building, steel constructions and reinforced concrete constructions. Pursuant to Polish law that automatically grants the accused name suppression, the surnames of the accused are unavailable in the Polish media.

On 14 February 2007 the Court of Appeal in Katowice granted bail to the three top bosses of the company – Bruce Robinson, Ryszard Ziółek, and Adam Hildebrandt. Mr. Robinson had to pay a 100,000 zloty bond (approx. €25,000/$33,000/£17,000), and the other two – 50,000 zloty each. All three also had to remain under police supervision and had to surrender their passports. The prosecutor appealed against granting of bail while one of the accused appealed against the amount. On Monday, the 5 March 2007, the Court of Appeal in Katowice rejected both appeals and at the same time raised the amount that Bruce Robinson has to deposit to 300,000 zloty (about €75,000/$100,000/£50,000). The ruling was final.

As a result of the catastrophe, in March 2007 Polish building law was amended. Large buildings must now undergo a technical survey twice every year (before and after winter) to make sure they are safe and structurally sound. Failure to conduct the survey is punishable by a minimum 1,000 zloty fine or a term in prison.

Indictment and trial

The investigation was formally completed at the end of June 2008. The public prosecutor of the Katowice District Public Prosecutor's Office decided to indict 12 people. These include the designers of the hall, Jacek J. and Szczepan K., who on conviction for “directly endangering lives of other people” faced up to 12 years of prison, two members of the board, Bruce Robinson and Ryszard Ziółek, and 7 other people, who if convicted for gross negligence would face up to 8 years in jail, and the Chorzów County building inspector who faced lesser charges. The indictment was filed with the court on 18 July.

The experts determined that the main reason for the catastrophe was incorrect design. It was changed in order to make the construction cheaper. Emails recovered from seized computers proved that members of the Board of Directors were fully aware of the problems and of an expert's recommendation that snow be removed from the roof and that the design was verified. One of the indicted, technical coordinator Piotr I., was charged with failing to order the evacuation doors to be opened; he is the only one that pleaded guilty. In the course of the investigation it was found that none of the victims died because of locked evacuation doors.

Post-mortems carried out on victims have shown that none of them died of exposure; all died because of injuries sustained because of the collapse of the roof.

Location of MTK
There has been some confusion over whether MTK is located in Katowice or Chorzów. The registered and street addresses of the company are in Katowice, and the entrance to the grounds is from a street that belongs administratively to Katowice. However, the company's grounds—and thus the site of the catastrophe—lie within Chorzów's administrative boundaries.

Nationalities of the victims

See also

 List of Poland disasters by death toll
 Bad Reichenhall ice rink roof collapse – a similar incident in Germany on 2 January 2006 which killed fifteen.
 Chusovoi swimming pool roof collapsed after heavy snow—5 December 2005.
 Moscow swimming pool roof collapsed after heavy snow—15 February 2004.
 Moscow market hall roof collapsed after heavy snow—23 February 2006.
 List of structural failures and collapses
 Structural integrity and failure
 Structural robustness

References

External links

External links
Exhibition grounds map, Hall #1
Exhibition website

Category:Building collapses in 2006
Category:History of Katowice
Category:2006 in Poland
Category:Man-made disasters in Poland
Category:Chorzów
Category:2006 Indian film awards
Category:Building collapses


Headland Town Facts

You can find a ton of properties for sale if you search the Headland page on Zillow. Currently Headland has an average listing price for homes for sale on the market of $184,714. More real estate facts about Headland: The number of properties currently for sale in Headland is 194. The median homes for sale listing price is $165,950. This is broken down with the number of three bedroom houses in Headland consisting of 107 with an average listing price for these house of $188,254. Out of the 34 houses that are four bedroom the average listing price for Headland is $211,297.
Interest rates for Headland are at historic lows as well.

Headland Alabama has a latitude of 31.351499557495 and a longitude of -85.342903137207. View the full profile


The biological effects of lung-derived mediators on the liver.
Despite the use of lung-protective mechanical ventilation (MV), the mortality of patients with acute lung injury remains at 30 to 40%, predominantly due to multiorgan failure. The objective of this study was to determine the biological significance of lung-derived mediators on peripheral organ inflammation. The authors utilized an isolated perfused mouse lung model of lipopolysaccharide (LPS)-induced lung inflammation and protective MV to collect lung-derived mediators. Aliquots of perfusate from these animals (or appropriate controls) were then injected intravenously into a cohort of normal animals whose livers were subsequently assessed in vivo using intravital video microscopy. Perfusate from LPS-inflamed lungs contained significantly higher concentrations of inflammatory mediators than perfusate from saline-instilled lungs. Assessment of livers in the second cohort of animals 120 minutes after perfusate injection revealed decreased sinusoidal blood flow, leukocytosis, and increased cell death in those receiving perfusate from LPS-inflamed lungs compared to perfusate from saline controls. There were no differences between control animals that received pure perfusate or pure LPS mixed with perfusate. These results showed that lung-derived mediators had a significant biological effect on nonpulmonary organs within a short period of time after administration. Therapies targeting these mediators may prevent multiorgan failure and death in patients with acute lung injury.


The Moorings 39.3 is a new blue water design focusing on functionality and open-air living. Generous interior volumes, a large cockpit with dual helm and a high level of technology and craftsmanship combine to provide reliability, comfort and an elegant finish. The layout features 3 cabins with one large shower and head, a U-shaped salon to starboard and a practical galley to port with ample work surfaces. Generous capacities for water and fuel, as well as personal gear and food stores, mean increased comfort and autonomy on the water.

The hull is single-skinned construction with reinforcement points and balsa sandwich hull sides.

A built-in structural inner moulding is bonded and laminated to the hull at intervals. Its structural role is important as it takes and absorbs the stresses at pressure points (keel, rudder, etc.) and spreads any loads guaranteeing reduced strain on the hull.

The inner moulding with its perfect surface provides extra stowage space under the sole and makes cleaning easier.

A skeg is moulded to the hull to protect the drive shaft. Use of a vinylester resin for prevention against osmosis. The gel coat is white.

The deck is sandwich construction (glass fibre and balsa) for an optimal strength/weight ratio as well as excellent sound and thermal insulation.

All on-deck working and circulation areas have a ?diamond point? non-slip surface.

Zones of single-skin reinforcement are placed at intervals under the deck fittings (winches, tracks, Ubolts, cleats).

A built-in inner deck moulding completes the deck structure and gives it a perfect finish.

A straight deck line with aluminium toerail forms the hull/ deck joint. This join ensures a watertight hull/deck joint and improves safety when moving around on deck.

The transom/hull joint is secured
with a rubber rubbing strake.

To improve their durability the keels are given an anticorrosion treatment and improved finish in the factory before assembly, using epoxy based coatings and
paint.


From the left, Israeli ambassador to the U.S. Ron Dermer, Benjamin Netanyahu, Yair Netanyahu and James Packer.

Billionaires Arnon Milchan and James Packer allegedly gave Netanyahu and his family various gifts.

.Milchan

A Haaretz investigation reveals that Milchan and Packer were linked to Blue Sky International, a global security firm run by former top Israeli security and intelligence experts.

James Packer, son of Kerry Packer.

Haaretz has found that Milchan and Packer attempted to recruit Yossi Cohen for a new cybersecurity operation.

After the Mumbai bombings in late 2008, Milchan set up Blue Sky International, to help protect the Taj Hotel chain, and others, from terrorist acts.Blue Sky International "operated on the Switzerland-Israel-India-Australia axis" until it ceased operations."

Trump and Mnuchin

Packer is a business partner of Steven Mnuchin, Donald Trump's choice for treasury secretary.

.

Donald Trump and Macaulay Culkin

Milchan reportedly introduced Packer to Mnuchin.

That meeting led to the merger of their two production companies into RatPac-Dune Entertainment.


Q:

How to end a python program without it going to the next line of code

I would like for when a player says no for it to say goodbye then end but instead it goes to Choose a category. Any suggestions?
while True:
    choice = input ("Do you want to play?")
    if choice == "yes":
        print("Great!")
        break # Go to the game
    elif choice == "no":
        print("Goodbye.")
        break # nothing
    else:
        print("Please answer yes or no.")

continent = input("Choose a category: \n"
              "Africa \n"
              "Asia \n"
              "Antarctica \n"
              "Australia \n"
              "Europe \n"
              "North America \n"
              "South America \n")

This question is different because its not asking about the loop it is asking how to properly end the program.

A:

while True:
    choice = input ("Do you want to play?")
    if choice == "yes"
        print("Great!")
        break # Go to the game
    elif choice == "no"
        print("Goodbye.")
        break # nothing
    else:
        print("Please answer yes or no.")


Bite force evaluation of mandibular fractures treated with microplates and miniplates.
The purpose of this study was to determine the clinical stability and efficacy of 1 microplate combined with 1 miniplate in the management of mandibular fractures of the interforaminal region compared with the standard 2-miniplate treatment using bite force measurements. Twenty patients were treated for isolated mandibular fractures of the interforaminal region. They were randomly divided into group A (test group) and group B (control group), with 10 patients per group. Group A underwent osteosynthesis using the combination of 1 microplate (subapical) and 1 miniplate (at the lower border). Group B underwent osteosynthesis using the standard 2-miniplate protocol. The bite force measurements were performed preoperatively and postoperatively at each follow-up using a bite force recorder. As a secondary outcome, the patients also were assessed for complications, such as infection, that might interfere with successful osteosynthesis at the fracture site. A statistically significant increase in incisor bite force was found in the 2 groups compared with the preoperative bite force measurements. No statistically significant difference was seen in the incisor bite force of either group at the different follow-up visits. No statistically significant difference was seen in the molar bite force (right vs left) of the test and control groups during follow-up. Molar bite force on the nonfractured side was greater than on the fractured side in the 2 groups. Infection was seen in 1 patient (ie, 10%) in each group. On surgical exploration, the fracture had united and the infection was resolved in the 2 patients, with no further complications. The replacement of an upper miniplate by a microplate in the management of mandibular fractures is stable and adequately efficacious to withstand the masticatory loads and torsional forces acting in the anterior region of the mandible.


Q:

Does this call for a cursor or a set-based approach?

I'm having to write up a query so we can try to get an automated monthly report going. The basic idea of the query is that first we grab a list of all master ids connected to our associated companies. Example resultset:
abc123
def456
ghi789

From that list of Master IDs, we need to grab a list of all customer emails that occur twice or more in the records of that company, on the basis that this means the email address might be misattributed or otherwise invalid. This query should return a list of email addresses coupled with how often they occur. Example resultset:
ACME Agency abc123 fakeemail@fake.com   2
ACME Agency abc123 thisisonlyatest@info.com 94
ACME Agency abc123 notarealemail@none.com   5
ACME Agency abc123 helloworld@dummy.com 2
ACME Agency abc123 info@info.net 2

From there, we need to get a transaction history associated with each email address - if all goes well, we should get a number of rows equal to the totals given in the previous query - so, 105 rows total in this case. Then we append those rows to a temp table that will eventually include the entire resultset for every master row.
When dealing with this kind of situation, my first impulse is to go to a while loop or a cursor, since that's the kind of logic I'm most familiar with. My research said that, in general, set-based approaches are the way to go. However, it also said that when cursors are necessary, it's generally in cases where you have to iterate through every row and do something.
My question is, is that the case here? Am I envisioning the problem correctly where cursors - double nested cursors, even - are a necessary evil, or is there a set-based approach to this case?
I can edit to include the query if need-be, but it's a bit of a beast at this point. I'd like to get its runtime speed improved, but we've got a few thousand Master IDs to loop through - about 5k, if I'm filtering this right.

A:

Eventually got a senior developer who showed me how to do this in a non-cursor based fashion.
My first plan was to do a query with a cursor to look through the list of master IDs we had to reference.
DECLARE @agency_number NVARCHAR(500)

DECLARE db_cursor CURSOR FOR
SELECT Master_Agency_Number
FROM temptablelist

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @agency_number

WHILE @@FETCH_STATUS = 0
BEGIN

Once I was in a loop, I would pull the relevant email addresses into a temp table based on the agency number, and then pull another set of data based on the email table, and finally append that resultset to a final temptable that would eventually hold the entire resultset encompassing all the master agency IDs. It did the job better than some of my initial attempts - we got the right data in 45 minutes. But for what we needed, we needed it faster.
Another developer finally showed me another way to do it.
We loaded the master agency id along with some other information we needed into a temp table rather than using it to start a cursor.
INSERT
emaillist SELECT dm.[Master_Agency_Number]
,vwp.[Email_Address]
,count(*) as TotalOccurrence
FROM   table1 vwP
INNER JOIN table2 dm
ON vwP.AgencyNum = dm.Agency_Number
WHERE
   --filter for active policies
   AND vwP.CurrentTypeAct <> 'Canceled'
   AND vwP.Email_Address is not NULL
   group by dm.[Master_Agency_Number], vwp.[Email_Address]
   HAVING count(*) >= 2
   order by dm.[Master_Agency_Number] asc, count(*) desc

From there, we wrote up another query that did an inner join with this temp table to make sure we were only pulling for the relevant agencies, and then used an IN clause to make sure we were pulling from the right email addresses.
SELECT DISTINCT
    [all the column names]
FROM table1 vwP
LEFT JOIN table2 stgA
    ON vwP.AgencyNum = stgA.Agency_Number
INNER JOIN table3 dm
    ON vwP.AgencyNum = dm.Agency_Number
INNER JOIN emaillist
    ON emaillist.Master_Agency_Number = dm.Master_Agency_Number
WHERE
--filter for active policies
AND vwP.CurrentTypeAct <> 'Canceled'
and stgA.Email_Address is not null
and vwp.[Email_Address] is not null
AND vwp.[Email_Address] IN (SELECT Email_Address FROM emaillist WHERE
dm.Master_Agency_Number = emaillist.Master_Agency_Number)
ORDER BY
dm.[Master_Agency_Number], vwp.[Email_Address]

Using the INNER JOIN and the IN cut the runtime down to 45 seconds. So if you're stuck on using a cursor, try combining the two to see if that helps you parse down the data in the way you need!


DISCLAIMER! I don’t own any of the Digimon characters by Toei. All of this is purely fictional and non-profit, much like PETA or NASA. If you have a problem with it, get out, now, before I beat you with grandpappy’s ol’ Nickel sock!

Heated Love

Gatomon was sitting on Kari’s bed, her tail slowly wagging back and forth as she watched the Digidestined of Light get dressed in a cute set of brightly colored clothes. She was 17 now and currently dating TK, whom she had a crush on for almost 10 years. After she finished putting on her clothes, she twirled around for her partner.

“Ta-da! What do you think?” she asked. Gatomon smiled and purred.

“Very nice.” The white cat answered. “TK will love it.”

“Are you sure you’re going to be alright? With Tai and mom at his soccer game, you and Miko are going to have the house to yourself.”

“It’s just one night, Kari. I think I can weather the night.” She stuck her tongue out at Kari, who pinched it between her thumb and index finger.

“Ha ha ha… just try to behave while I’m gone, as difficult as it may be for you.” She said, pushing on Gatomon’s forehead. A knock at the front door signaled her leave.

“Wish me luck.” Kari said, kissing Gatomon on the forehead before leaving. The cat Digimon locked the door behind her, then went back to their room. She sat on the bottom bunk of Kari’s bed and turned on the TV.

Gatomon was very envious of Kari right now. The Digidestined of Light was in a great relationship with TK, and even though they’ve been in love since they were 8, somehow the two were able to keep their intimate relationship strong. It got Gatomon thinking about her own love life. The last lover she had was Wizardmon, who was killed by Myotismon around the same time she met Kari. Most of the Digimon she knew belonged to the other Digidestined, but most of them were not her type.

“Nnghh…” she growled frustratedly. “If I don’t find a mate… I’m gonna die an old womon.” It’s worth noting that because of the nature of Digimon, they didn’t age. It was also that time of the year for Gatomon, when she would be more amorous than normal, and logical and rational thinking was all but thrown out the window.

As she watched TV, her paws slowly began to travel down to between her legs, her claws spreading apart her pussy lips. She slowly dipped her claws into her pussy, moaning heavily. As much as she didn’t want to, Gatomon’s hormones were in full force since she was in heat. A mewl from the corner of the room attracted her attention. Miko was in the corner, cleaning himself.

“Why do you have to do it here?” she growled, finding herself turned on by it. “I wonder if the other boys are able to do that…” Love juices leaked from her pussy, wetting her claws and making the thrusts smoother. She pumped her tight lips faster and faster, imagining that she was being fucked by some hot Digimon with a large thick cock. The mere thought of it brought her over the edge, a meow escaping from her lips as she came. She panted coming down from her orgasm. Her claws were now slick with her thick juices. Still horny as ever, she brought her wet claw up to her mouth and licked off the juices, surprised at how it tasted so much like cream. After licking her claws clean, she went back to fingering herself to sate her sexual hunger.

* * *

Several hours later that night, TK and Kari had finished their date and headed to his house, since it was closer. When they arrived, Nancy had already gone to bed, and Patamon was nowhere to be found, but TK’s bedroom window was open.

“Where do you think Patamon went?” TK asked.

“I dunno… maybe he went to my house to keep Gatomon company?” she suggested, putting her purse down at the foot of his bed.

“Maybe, but enough about him.” He pulled her in for a deep French kiss, slowly sliding her dress down her body.

* * *

In those several hours, Gatomon was able to masturbate into a sex coma. She lay knelt over on Kari’s bed, a large wet spot on the bed where her pussy juices soaked into the sheets. Her stunned state prevented her from seeing Patamon fly into the room through the open window.

“Hey, Gatomon!” he called out, not seeing her on the bed. “Are you here?”

Gatomon wasn’t in a condition to say anything coherent. All she did was let out a long low meow. Patamon looked up at the bed and climbed up.

“Gatomon, are you o-WAH!” he nearly fell off the bed at the sight of Gatomon, slumped forward facing him, her butt in the air. The bedsheets were a wet mess, and smelled strongly of sex.

“Ga-Gatomon!” he exclaimed. “What the Hell?!”

Gatomon looked up at him with lustful eyes, and suddenly lunged at him, tackling him to the ground off the bed. She purred loudly as she looked down upon him. Her paw moved down to his crotch, where she rubbed the pouch containing his dick.

“Gatomon, what are you doing?!” Patamon asked, blushing heavily. She didn’t answer, but continued to rub his pouch until his dick emerged. She took his whole cock into his mouth.

“Mngh! AH!” Patamon gasped, feeling the hot wet interior of her mouth. He attempted to pull away, but froze instantly when he felt the tips of Gatomon’s razor sharp teeth come into contact with his cock.

“Move and it comes off.” She growled threateningly. Patamon, scared by her very unusual behavior, remained in his position as she sucked him off. This wasn’t exactly what he had in mind when he came over.

“Mnnn…” Gatomon moaned as she sucked him off. Slowly, her mouth closed around his shaft, and she bobbed her head up and down, deepthroating him. “Mulm! Mulm! Mulm!”

Patamon panted heavily, feeling his cock slowly erecting to its full length and hardness. Gatomon pulled out and grabbed him by the hand. She led him to Kari’s bed before she climbed on top of him, rubbing her wet pussy against the head of his cock. Patamon looked up at her with wide eyes, aware more than ever now that they were about to have sex; it was like the Grail!

Gatomon slowly slid onto his shaft and thrust downwards. She let out a loud meow in pleasure, her velvet walls closing tightly around his cock.

“Mmnn! Patamon…” she moaned. “Fuck me hard!”

Patamon wasted no time to thrust upwards into her wet cunt. Gatomon panted hard and sat up on his lap. As he fucked her tight hole, the white cat Digimon felt herself up, tickling her tiny nipples with her claws. Patamon’s hands grasped her hips and pulled her down every time he thrust up.

“AH! AH! AH! AH!” Gatomon panted with each buck. Her hot pussy squeezed his cock tighter as she came for the 8th time tonight. Patamon was nowhere near his own orgasm, and continued to pound hard into her. His arms slowly grew tired from lifting Gatomon up and down, and he flipped her around so that she was on her back before taking her doggy style.

“Ngh huh huh huh!” Patamon’s balls swung back and forth like a pendulum, striking against her pussy lips repeatedly. Gatomon lay on her stomach, gripping the bedsheets tightly. Her form rocked back and forth on the mattress with each thrust. Patamon couldn’t hold his load anymore and released all of it into Gatomon’s womb. He collapsed on top of her from the sudden loss of energy. She flipped around and pushed him on his back.

“Oh no you don’t!” she growled, stroking his dick. “You’re not stopping now!” Her paw moved up and down his shaft. Patamon’s dick went limp for a few seconds before erecting again. He winced as she got a little forceful with her hand job. Gatomon was more aroused than ever, evidenced by the fact that as soon as his dick was fully erect, she jumped up and landed right on his dick, which slid into her pussy with ease.

“OW! That actually hurt!” Patamon yelped.

“Suck it up!” she growled, bouncing up and down on his cock. “Mmnn… yes… oh yes!”

Patamon gasped and moaned, feeling the pleasure build up in him again. He slowly humped back up at her, but quickly grew tired. Slightly frustrated, Gatomon pulled off of his dick and turned around so that her crotch was pressed against Patamon’s face.

“Lick my little pussy!” she ordered him as she took his dick into her mouth. The guinea pig spread apart her pussy lips with his paws and licked into her cunt. He could taste his own bitter sperm in her honey pot.

“Yes! Drink your tasty sperm, Patamon!” Gatomon moaned. She could taste her own creamy juices on his cock along with his own sperm, which tasted a little sour, much like a bitter orange. She traced one claw up the bottom part of his shaft, sending shivers up his spine.

* * *

Meanwhile, at TK’s house, a similar event was going on. TK lay on top of Kari in the 69 position. He licked her quivering pussy as she sucked him off. The brunette girl’s hands gently squeezed his balls, rolling them around and tickling them. TK gasped and released his 4th load of sperm tonight.

“Mmm… yummy!” Kari moaned, drinking in his sperm. TK rolled off of her, and she mounted him, straddling his lap.

“I’m ready for another round!” she exclaimed, bouncing a little on his lap. TK’s still hard cock slapped between his stomach and her pussy.

“Ok ok!” TK yelped. “Just please not so hard! It’s starting to hurt!”

The young girl sat up and stroked his cock before guiding it to her tight slit.

“It’s amazing that you’re still hard after all our fucking.” She commented as he slid into her. She slowly bounced up and down on his lap, moaning and gasping as his cock pierced her sensitive cunt. Their bodies were dripping with sweat from the constant intense fucking.

* * *

“Aww! Come on!” Gatomon growled, frustrated. She dismounted Patamon as his dick went limp in her cunt, and she stroked it vigorously.

“No! Patamon, how could you be tired already?!” she asked. “We haven’t even been at it that long!”

“Gatomon, I have nothing left!” Patamon panted. “Please… let me take a break!”

“Nnngh! Fine!” Gatomon sat back and slowly fingered her pussy. Before she reached her orgasm, she suddenly had an idea.

“Don’t go anywhere.” She ordered. “I’ll be right back.” Gatomon hopped off the bed and went to the bathroom. She opened up the medicine cabinet and pulled out a small box. Opening it up, she took out one of the blue pulls inside.

“Ok, Patamon.” She said, coming back to the bedroom. “Swallow this, and we can get back to fucking.”

Patamon looked wearily at the little blue pill, but reluctantly took it, knowing Gatomon’s wrath was an undesirable alternative. Within a few minutes, his dick was erect again and throbbing painfully. It was exposed to air for only a few seconds longer before being embedded deep within Gatomon’s pussy. Under normal circumstances, Patamon would have been in pain, but with the combination of the Viagra and the now overwhelming stimulation caused him to be further lost in the pleasure.

“Mnngh! I’m gonna fuck you hard, Gatomon!” he growled, twisting her around on his lap until she was in a reverse cowgirl position. He hammered his cock into her pussy, which in this position caused the shaft to strike directly on the cat’s G-spot. She let out a loud cry of pleasure and began shaking. She was rendered immobile from the pleasure, which Patamon took advantage of. He pressed her down against the bed and thrust harder and faster into her, not giving her a chance to recover from the pleasure.

“P-Patamon!” she screamed. “Please slow down! It’s too much!”

“No way in Hell!” Patamon growled, slapping her on the ass. By the time Gatomon came, she had not one, but two orgasms. Patamon wasn’t far behind her, shivering as he came. His balls tightened from the release. Even after he came, Patamon was still hard as a rock and horny as all Hell, and he didn’t even stop to take a breather. His heart pounded in his chest as he spread her legs far apart and continued to fuck her. Gatomon’s eyes rolled in the back of her head and she lay there in Patamon’s paws, unable to move from the sex coma she was in.

The orange pot roast fucked her, driven by his hormones. Finally, he hit his last orgasm of the night and spurt what last sperm he had left in him before collapsing next to the passed out cat. He panted heavily from exhaustion, his heart pounding so hard he could swear he could hear it. Soon his breathing slowed down to normal and he fell asleep.

* * *

The morning light bled into Kari’s room and shone on the two sleeping Digimon. Patamon slowly woke up as the light crept over him. He stared up at the ceiling, trying his best to recall what had happened the previous night. Slowly, it all came back to him, and he quickly sat up, his body aching all over. Gatomon was sitting up as well, looking over at him. They stared into each other’s eyes for a minute before Patamon pounced her, his dick still throbbing hard. Gatomon yelped and automatically spread her legs apart for him. Patamon guided his cock to her entrance and pushed right in. Gatomon gasped and held Patamon close as he thrust deep into her pussy. The hamster lay on his back so that their crotches were the only thing touching. The two moved back and forth on the bed. Patamon’s balls were right between their two bodies, so every time they thrust forward, they collided against his balls. It stung as one might expect, but Patamon was so lost in arousal, the pain was not enough to stop him. Their moans soon filled the quiet room with their passionate mating cries. After several minutes, Patamon came deep into her tight cunt, and she let out a growl as her pussy constricted around his dick.

“Heh… that was a little random.” Gatomon giggled as Patamon pulled out of her.

“I know it’s a little rude to run on you,” Patamon said. “But I need to get back home. I bet TK is worried about me.”

“It’s cool. I shouldn’t have pounced your bones like that last night.” Gatomon answered. “Well, say hi to TK for me and please don’t be a stranger!”

* * *

Meanwhile, back at TK’s house, the two young lovebirds were cleaning off after their night long sex fest. TK saw her off at the door, giving her a deep kiss on the lips before she left. He headed back to his room just in time to see Patamon fly in through the window.

“Hey there, Patamon.” He greeted. “Where have you been all night?”

“Lemme first take a shower.” Patamon said, flying past him and into the bathroom. As he flew by, TK could make out the distinct scent of sexual hormones. After half an hour, Patamon came out of the shower clean as a whistle. TK was sitting on his bed with a grin, folding his arms.

“What is it?” Patamon asked, drying himself off with a towel.

“I know what you did.” TK smirked. “And I’m gonna need details.”

* * *

Kari, by that time, had gotten home and entered her room to find Gatomon drying herself off from her shower.

“Morning, Gatomon.” Kari said. “What’s up?”

Patamon: Well, as you probably guessed, I went over to Kari’s house to hang out with Gatomon…

Gatomon: Patamon came over some time after you left last night…

Patamon: But she was already busy pushing her claws as deep into her as possible, and when she saw me… you know…

Gatomon: I jumped his bones and rocked his world!

TK: Dude, that’s awesome!

Kari: Oh god! And you did it on my bed?! Why couldn’t you do it on Tai’s or something?!

TK & Kari: So how was it?

Patamon: It was complete euphoria! I bet she now sees me as a stallion.

Gatomon: … eh, he was alright. I just hope he’s gentlemanly enough to keep it to himself.

Patamon: We went at it like bunnies over and over and over and over and over and over!

Kari: Look, I know TK, and I know that if Patamon shares this with him, he’ll encourage him to keep it between them.

TK: You know, this is like the best story to write to Penthouse!

Gatomon & Patamon: Oh god… I just realized the kicker to all this.

Patamon: I get to rub this in Veemon’s face!

Gatomon: I might be pregnant!

* * *

“What?! How can you be pregnant?” Kari exclaimed, pacing back and forth around her bedroom. “You told me that Gatomons can’t get pregnant until they’re in heat… unless…” she quickly turned back to Gatomon. “You didn’t go into heat yet, have you?!”

“Actually… Kari, I think I went into heat yesterday!” both girls were now very tense as they thought about the brood possibly developing in Gatomon’s womb right now.

“What should we do?” Gatomon asked, feeling her heart pounding in her chest.

“Go to Patamon.” Kari answered. “If you’re pregnant, he should know about it. I’m going to run to the drug store and get a pregnancy test.”

* * *

Meanwhile, TK, Daisuke, Veemon and Patamon were at the park. Patamon was in the middle of taunting Veemon for being able to have sex with her first.

“I got to tap her~ I got to tap her~” he sang, flying in circles around her.

“Watch it! I can easily Digivolve into Flamedramon and roast you!” the blue dinosaur threatened.

“Yeah, right! That form is only useful for one thing, and it’s not fighting or tapping girls!” Patamon broke out into laughter. Veemon’s face burned red with anger. Before he could make a swing at Patamon, however, he noticed Gatomon walking up to them.

“Hey, Patamon, can I talk to you, please?” she asked in a very calm tone. “…alone?”

Patamon nodded and flew off with her, but not before Veemon growled “This isn’t over between us.”

Patamon ignored him and followed Gatomon to a secluded part of the park, behind a group of bushes.

“So what’s up?” he asked.

“Well, first off, you know that what happened last night wasn’t because of love, right?”

Patamon raised an eyebrow.

“Huh? Then what was all that about last night?”

Gatomon took a deep breath before explaining to him.

“Well, last night, I went into heat…” she explained. “and then you came over… and… I couldn’t help myself.”

Patamon listened intently, slowly becoming tense. “Yeah…?”

“Well… Patamon… I think I’m pregnant!”

The orange pot roast froze and stared blankly at Gatomon.

“…Who’s Patamon?”

“Patamon!” Gatomon scoffed, shaking him around.

“Waaaah! Ok ok!” he cried out. “I’m sorry… God, I don’t believe this! What are we supposed to do?!”

“I know… it’s just… I don’t know what we’re supposed to do. So many thoughts are racing through my mind right now.”

Patamon suddenly took off into the air.

“I’m sorry! I need to think about this!” he said, flying away.

“Wait, Patamon!” she called out after him, but he didn’t even look back at her. “Dammit… Patamon…”

* * *

“…and he just took off.” Gatomon concluded to Kari.

“Uncool!” the human girl exclaimed. “Why the Hell would he just run off like that?!”

“I don’t know! Do you really think I should have told him I might be pregnant?”

“Of course, Gatomon!” Kari said, sitting down next to the Digimon. “It’s as much his responsibility as it is yours. Besides, it’s not like he can hide forever. TK and I would both kick his ass.”

“Kari, I know he’s not like that!” Gatomon interrupted. “At least… I hope he’s not. Now isn’t it time we checked the pregnancy test?”

* * *

“I don’t know what to say to her or even do, TK.” Patamon said, flying around in circles restlessly in their room. “What if she IS pregnant? Where would we raise the child? Just so many questions are swarming through my head; I didn’t know what to say to her.”

“Yeah, and clearly running off like a flake was the best option.” TK said sarcastically. Patamon landed at his side, glaring.

“TK, I am not in the mood for this!” he shouted.

“Well, think about this, Patamon. Why did you want to have sex with her in the first place?”

Patamon thought about this for a minute to truly dig into his feelings.

“Well… I also admire how mature she is, and I like to be with her… "I really can't explain it but when I'm with her I feel different, I thought she wouldn't want me near to her because I'm a small, not too strong, naive and well... innocent digimon, I even thought she would consider me inmature, but yet she and I always have a good communication, we seem to be easy to talk to each other about anything, I.... I'm wrong, the sex wasn't because she is hot, well maybe in part it is but is minimal, I'm realizing now that I have been in love with her but only till this happened I could understand it better.”

TK smiled at Patamon.

“That was… that was beautiful.” He said. “So what will you do now?” The answer was obvious to Patamon now.

“I need to go to her.” Patamon answered, flying out the window.

* * *

Patamon flew to Kari’s house and landed on the ledge just outside their window. Kari opened the window for him and briefly said, “I’ll let you two talk.” before stepping out of the room. However, after she closed the door, the two could hear her sit down and lean up against the door.

Patamon and Gatomon stared at each other for a minute. One of them had to say something eventually.

“Gatomon, I- OUGH!” Right as he began to speak, Gatomon punched him across the face, knocking him back on his ass.

“Ok, I deserved that.” He said, stumbling to his feet. “Look, Gatomon, I’m sorry I ran off on your earlier. I guess I was scared.”

“It’s alright.” She answered. “I should have expected that kind of response from you.”

“Gatomon, I thought about this real hard, and I found out that…” Patamon took a deep breath as if to perform a Boom Bubble. “Gatomon, I love you!”

Gatomon looked at him with a shocked expression.

“R-really?” she asked in a strained voice.

“I mean it. I’ve had these feelings for you for a long time. I felt this strong connection with you, but I’ve always felt that you haven’t liked me because I’m weak and insignificant compared to you.”

Patamon held her claws in his hands. Gatomon didn’t resist at all, but now watched on as he spilled his emotions out for her.

“I just want you to know that, no matter what, I’ll always love you, and… I’d want to be part of the kid’s life, too.”

Gatomon continued to stare into his eyes even after he finished. Slowly, she leaned in to kiss him on the lips.

“Patamon… I love you, too.” She said as they broke the kiss. “And I’m glad that, if any mon was the father, that it would be you.”

The two Digimon hugged each other tightly. Patamon could feel Gatomon purring in his arms as she nuzzled her head against his.


Q:

How do you share implementation details in a functional language like rust?

I sometimes find myself writing abstract classes with partial implementation in C#:
abstract public class Executor {
    abstract protected bool Before();
    abstract protected bool During();
    abstract protected bool After();
    protected bool Execute() {
         var success = false;
         if (Before()) {
              if (During()) {
                  if (After()) {
                        success = true;
                  }
              }
         }
         return success;
    }
}

Notwithstanding the wisdom of such a control structure, how would I accomplish this (partial shared implementation) in a functional language like rust?

A:

Using default methods on traits is one way (and will probably/hopefully be the idiomatic way in the future; until recently, the struct-with-closures method @Slartibartfast demonstrates was the only thing that actually worked):
#[allow(default_methods)];

trait Executable {
   fn before(&self) -> bool;
   fn during(&self) -> bool;
   fn after(&self) -> bool;

   fn execute(&self) -> bool {
      self.before() && self.during() && self.after()
   }
}

impl Executable for int {
   fn before(&self) -> bool { *self < 10 }
   fn during(&self) -> bool { *self < 5 }
   fn after(&self) -> bool { *self < 0 }

   // execute is automatically supplied, if it is not implemented here
}

Note that it is possible for an implementation of Executable to override execute at the moment (I've opened an issue about a #[no_override] attribute that would disable this).
Also, default methods are experimental and prone to crashing the compiler (yes, more so than the rest of Rust), but they are improving quickly.

A:

I'm not within reach of a rust compiler, so forgive broken code.
On a functional side of things, you could make a struct that holds three functions and invoke them
struct Execution {
    before: @fn() -> bool,
    during: @fn() -> bool,
    after: @fn() -> bool
}

fn execute (e: Execution) -> bool {
  ...
}

but once you have a function as a first class value, you could pass say, a list of boolean functions to check against instead of fixed three, or something else depending on what are you trying to achieve.
On a rust side of things, you can make it more "object oriented" by using traits
trait Executable {
    fn execute(&self);
}

impl Execution {
    fn execute(&self) {
        ...
    }
}