Open dgruano opened 1 month ago
I think we should wait for the new assembly code to be merged into pydna, since ideally future implementations should be based on it, I think.
I gathered some information on Gateway cloning that are in the placeholder file. Gateway is to similar to homologous recombination and in some way simpler. I gathered some of the information from looking at the ApE source code.
Some links:
Some notes I made awhile back:
Argument:
seqs: A list of linear Amplicons or linear Dseqrecords. The list should include att site sequences.
Output:
A list of linear Amplicons with primers engineered to permit Gateway assembly
Suggested flow:
Verify the absence of gateway sites in input. Sequences are not expected to have these. Check for:
att1_shared TTTGTACAAAAAAG att2_shared CTTTCTTGTACAAAGT att3_shared CAACTTTATTATACA att4_shared CAACTTTGTATAGAAAAGTTG
Verify the rest of att sequences on each side and identify B, P L and R sites. Raise error or throw exception if present.
Add primer tails for the correct pattern of att sites based on the sequence order.
For example:
... seq1 attB1 seq2 ...
==>
Argument:
seqs: A list of linear Amplicons and linear or circular Dseqrecords
Output:
Assembled sequences, linear or circular
Split sequences along atts
Add them to Graph
Find circular and linear paths
...
Specificity:
attP1 + attB1 <=> attR1 + attL1 attP2 + attB2 <=> attR2 + attL2
AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACACATTGATGAGCAATGCTTTTTTATAATGCCAACTTTGTACAAAAAAGCTGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATACTGTAAAACACAACATATCCAGTCACTATGAATCAACTACTTAGATGGTATTAGTGACCTGTA
AttP1 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTACAAAAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTGAATCAACTACTTAGATGGTATTAGTGACCTGTA
list of left, overlapping and right side of the recombination site, then the left and right sides of the [[site]] that it recombines with (ex. these will be the left and right sides of the attP1 [[site]] for an attB1 site)
attP1 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMAS TTTGTACAAAAAAG YWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG CMASTWT AAAGYWG attP2 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMAS TTTGTACAAGAAAG YWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG CMASTWT AAAGYWG attP3 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMAS TTTGTATAATAAAG YWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG CMASTWT AAAGYWG attP4 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMAS TTTGTATAGAAAAG YWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG CMASTWT AAAGYWG attP5 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMAS TTTGTATACAAAAG YWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG CMASTWT AAAGYWG
attB1 CMASTWT GTACAAA AAAGYWG AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG
attB2 CMASTWT GTACAAG AAAGYWG AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG
attB3 CMASTWT GTATAAT AAAGYWG AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG
attB4 CMASTWT GTATAGA AAAGYWG AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG
attB5 CMASTWT GTATACA AAAGYWG AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG
attL1 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT GTACAAA AAAGYWG CMASTWT AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG attL2 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT GTACAAG AAAGYWG CMASTWT AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG attL3 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT GTATAAT AAAGYWG CMASTWT AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG attL4 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT GTATAGA AAAGYWG CMASTWT AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG attL5 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT GTATACA AAAGYWG CMASTWT AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG
attR1 CMASTWT GTACAAA AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT AAAGYWG
attR2 CMASTWT GTACAAG AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT AAAGYWG
attR3 CMASTWT GTATAAT AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT AAAGYWG
attR4 CMASTWT GTATAGA AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT AAAGYWG
attR5 CMASTWT GTATACA AAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTG AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTT AAAGYWG
attB5 CMASTWTGTATACAAAAGYWG misc_recomb # dda0dd # dda0dd 0 0
attB4 CMASTWTGTATAGAAAAGYWG misc_recomb # dda0dd # dda0dd 0 0
attB3 CMASTWTGTATAATAAAGYWG misc_recomb # dda0dd # dda0dd 0 0
attB2 CMASTWTGTACAAGAAAGYWG misc_recomb # dda0dd # dda0dd 0 0
attB1 CMASTWTGTACAAAAAAGYWG misc_recomb # dda0dd # dda0dd 0 0
attP5 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTTGTATACAAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb # dda0dd # dda0dd 0 0
attP4 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTATAGAAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb # dda0dd # dda0dd 0 0
attP3 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTATAATAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb # dda0dd # dda0dd 0 0
AttP2 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTACAAGAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb plum plum 0 0
AttP1 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTACAAAAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb plum plum 0 0
attL5 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATKMTTTYTTATAATGCCMASTTTGTATACAAAAGYWG misc_recomb # dda0dd # dda0dd 0 0
attL4 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTATAGAAAAGYWG misc_recomb # dda0dd # dda0dd 0 0
attL3 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTATAATAAAGYWG misc_recomb # dda0dd # dda0dd 0 0
AttL2 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTACAAGAAAGYWG misc_recomb plum plum 0 0
AttL1 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTACAAAAAAGYWG misc_recomb plum plum 0 0
attR5 CMASTWTGTATACAAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb # dda0dd # dda0dd 0 0
attR4 CMASTTTGTATAGAAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb # dda0dd # dda0dd 0 0
attR3 CMASTTTGTATAATAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb # dda0dd # dda0dd 0 0
AttR2 CMASTTTGTACAAGAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb plum plum 0 0
AttR1 CMASTTTGTACAAAAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATRCTGTAAAACACAACATATSCAGTCAYWWTGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb plum plum 0 0
ccdB ATGGTGATCCCCCTGGCCAGTGCACGTCTGCTGTCAGATAAAGTCNCCCGTGAACTTTACCCGGTGGTGCATATCGGGGATGAAAGCTGGCGCATGATGACCACCGATATGGCCAGTGTGCCGGTCTCCGTTATCGGGGAAGAAGTGGCTGATCTCAGCCACCGCGAAAATGACATCAAAAACGCCATTAACCTGATGTTCTGGGGAATA CDS yellow yellow 0 0
Gateway Recomb5 cmastwtGTATACAaaagywg misc_feature # ff0000 # ff0000 0 0
Gateway Recomb4 cmastwtGTATAGAaaagywg misc_feature # ff0000 # ff0000 0 0
Gateway Recomb3 cmastwtGTATAATaaagywg misc_feature # ff0000 # ff0000 0 0
Gateway Recomb2 cmastwtGTACAAGaaagywg misc_feature # ff0000 # ff0000 0 0
Gateway recomb1 cmastwtGTACAAAaaagywg misc_feature # ff0000 # ff0000 0 0
Hi @BjornFJohansson thanks for sharing, where did you get those consensus sequences from? I have been talking about this with @dgruano and made some alignments from the SnapGene example plasmids, if you want to have a look it's well summarised in this README:
For implementing this the new Assembly class can be easily used, it's just a matter of defining what constitutes the consensus site of each type, which I could not find in the literature nor online documentation from suppliers.
@BjornFJohansson where did you get these consensual sequences? I can see that ApE ships a file with some sequences (copied below), but for instance the attP5 is not included
attB4 CMASTTTGTATAGAAAAGYWG misc_recomb #dda0dd #dda0dd 0 0
attB3 CMASTTTGTATAATAAAGYWG misc_recomb #dda0dd #dda0dd 0 0
AttB2 CMASTTTGTACAAGAAAGYWG misc_feature #dda0dd #dda0dd 0 0
AttB1 CMASTTTGTACAAAAAAGYWG misc_feature #dda0dd #dda0dd 0 0
attP4 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTATAGAAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATACTGTAAAACACAACATATSCAGTCACTATGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb #dda0dd #dda0dd 0 0
attP3 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTATAATAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATACTGTAAAACACAACATATSCAGTCACTATGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb #dda0dd #dda0dd 0 0
AttP2 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTACAAGAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATACTGTAAAACACAACATATSCAGTCACTATGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb plum plum 0 0
AttP1 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTACAAAAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATACTGTAAAACACAACATATSCAGTCACTATGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb plum plum 0 0
attL4 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTATAGAAAAGYWG misc_recomb #dda0dd #dda0dd 0 0
attL3 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTATAATAAAGYWG misc_recomb #dda0dd #dda0dd 0 0
AttL2 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTACAAGAAAGYWG misc_recomb plum plum 0 0
AttL1 AAATAATGATTTTATTTTGACTGATAGTGACCTGTTCGTTGCAACAMATTGATRAGCAATGCTTTYTTATAATGCCMASTTTGTACAAAAAAGYWG misc_recomb plum plum 0 0
attR4 CMASTTTGTATAGAAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATACTGTAAAACACAACATATSCAGTCACTATGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb #dda0dd #dda0dd 0 0
attR3 CMASTTTGTATAATAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATACTGTAAAACACAACATATSCAGTCACTATGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb #dda0dd #dda0dd 0 0
AttR2 CMASTTTGTACAAGAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATACTGTAAAACACAACATATSCAGTCACTATGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb plum plum 0 0
AttR1 CMASTTTGTACAAAAAAGYWGAACGAGAAACGTAAAATGATATAAATATCAATATATTAAATTAGATTTTGCATAAAAAACAGACTACATAATACTGTAAAACACAACATATSCAGTCACTATGAATCAACTACTTAGATGGTATTAGTGACCTGTA misc_recomb plum plum 0 0
ccdB ATGGTGATCCCCCTGGCCAGTGCACGTCTGCTGTCAGATAAAGTCNCCCGTGAACTTTACCCGGTGGTGCATATCGGGGATGAAAGCTGGCGCATGATGACCACCGATATGGCCAGTGTGCCGGTCTCCGTTATCGGGGAAGAAGTGGCTGATCTCAGCCACCGCGAAAATGACATCAAAAACGCCATTAACCTGATGTTCTGGGGAATA CDS yellow yellow 0 0
Gateway Recomb4 cmastttGTATAGAaaagywg misc_feature #ff0000 #ff0000 0 0
Gateway Recomb3 cmastttGTATAATaaagywg misc_feature #ff0000 #ff0000 0 0
Gateway Recomb2 cmastttGTACAAGaaagywg misc_feature #ff0000 #ff0000 0 0
Gateway recomb1 cmastttGTACAAAaaagywg misc_feature #ff0000 #ff0000 0 0
I did get those from the ApE source code.
The newest version (3.1.7) has even attP6
I saw there was a placeholder file for Gateway cloning and thought to give it a go. Did you have any idea on how to do it @BjornFJohansson?