Package: poola-be
poola_bePython package for base editor screensInstallpip install poola_beHow to useTo demonstrate the use of these functions, we will first design a base editor tiling library with guides tiling the transcript ENST00000380152 of BRCA2. These guides are annotated with predicted edits using the C>T base editor in the window of nucleotide 4-8.frompoola_beimportcoreaspool_beimportpandasaspddesign_df=pd.read_csv('sample_input/crisprbe-guides.txt',sep='\t')design_df.head()<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}</style>InputCRISPR EnzymeEdit TypeEdit WindowTarget AssemblyTarget Genome SequenceTarget Gene IDTarget Gene SymbolTarget Gene StrandTarget Transcript ID...PAM SequencesgRNA Target Sequence Start Pos. (global)sgRNA OrientationNucleotide Edits (global)Guide EditsNucleotide EditsAmino Acid EditsMutation CategoryConstraint ViolationsNote0ENST00000380152SpyoCas9C-T4..8GRCh38 (9606)NC_000013.11ENSG00000139618BRCA2+ENST00000380152.8...TGG32316449senseNaNNaNNaNNaNNaNNaNNaN1ENST00000380152SpyoCas9C-T4..8GRCh38 (9606)NC_000013.11ENSG00000139618BRCA2+ENST00000380152.8...AGG32316462sense32316465C>TC_45C>TPro2LeuMissenseNaNNaN2ENST00000380152SpyoCas9C-T4..8GRCh38 (9606)NC_000013.11ENSG00000139618BRCA2+ENST00000380152.8...AGG32316467antisense32316479G>A;32316481G>A, 32316483G>AC_8_6, C_419G>A;21G>A, 23G>AGlu7Lys, Arg8LysMissense, MissenseNaNNaN3ENST00000380152SpyoCas9C-T4..8GRCh38 (9606)NC_000013.11ENSG00000139618BRCA2+ENST00000380152.8...TGG32316477antisenseNaNNaNNaNNaNNaNNaNNaN4ENST00000380152SpyoCas9C-T4..8GRCh38 (9606)NC_000013.11ENSG00000139618BRCA2+ENST00000380152.8...TGG32316488antisenseNaNNaNNaNNaNNaNNaNNaN5 rows × 23 columnsAssign severe mutation binAs noted in the "Mutation Category" column, each guide is predicted to make more one or more types of mutations if Cs are present in the editing window. We can then annotate each guide with the most severe mutation bin in the order Nonsense > Splice site > Missense > Intron > Silent > UTR > no edit.design_df['Mutation Bin']=design_df['Mutation Category'].apply(pool_be.get_most_severe_mutation_type)design_df[['sgRNA Target Sequence','Mutation Category','Mutation Bin']].head()<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}</style>sgRNA Target SequenceMutation CategoryMutation Bin0TCGTAGGTAAAAATGCCTATNaNNo edits1TGCCTATTGGATCCAAAGAGMissenseMissense2GGCCTCTCTTTGGATCCAATMissense, MissenseMissense3AAAAAATGTTGGCCTCTCTTNaNNo edits4TTAAAAATTTCAAAAAATGTNaNNo editsCalculate median residueWe can then get the median residue of the predicted edits.design_df['Median Residue']=design_df.apply(lambdax:pool_be.get_median_residues(x['Mutation Bin'],x['Amino Acid Edits']),axis=1)design_df[['sgRNA Target Sequence','Amino Acid Edits','Mutation Category','Mutation Bin','Median Residue']].head(15)<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}</style>sgRNA Target SequenceAmino Acid EditsMutation CategoryMutation BinMedian Residue0TCGTAGGTAAAAATGCCTATNaNNaNNo editsNaN1TGCCTATTGGATCCAAAGAGPro2LeuMissenseMissense2.02GGCCTCTCTTTGGATCCAATGlu7Lys, Arg8LysMissense, MissenseMissense7.53AAAAAATGTTGGCCTCTCTTNaNNaNNo editsNaN4TTAAAAATTTCAAAAAATGTNaNNaNNo editsNaN5AAGACACGCTGCAACAAAGCThr17Ile, Arg18CysMissense, MissenseMissense17.56TTTTTTTTTTAAATAGATTTNaNNaNNo editsNaN7TAGGACCAATAAGTCTTAATPro26LeuMissenseMissense26.08TCAAACCAATTAAGACTTATTrp31TerNonsenseNonsense31.09GCAGGTTCAGAATTATAGGGGlu45LysMissenseMissense45.010TCTGCAGGTTCAGAATTATAAla47ThrMissenseMissense47.011TTCTGCAGGTTCAGAATTATAla47ThrMissenseMissense47.012TTATGTTCAGATTCTTCTGCGlu51LysMissenseMissense51.013TGTGGAGTTTTAAATAGGTTNaNNaNNo editsNaN14ACCTATTTAAAACTCCACAANaNNaNNo editsNaN