Bonjour,
Je souhaiterai découper comme suit ma colonne seq_name de mon dataframe df :
df$seq_name
"lcl|NM_010512.5_cds_NP_034642.2_1 [gene=Igf1] [db_xref=CCDS:CCDS24104.2] [protein=insulin-like growth factor I isoform 1] [protein_id=NP_034642.2] [location=299..778] [gbkey=CDS] "
Nouvelles colonnes souhaitées avec :
"NM_010512.5" "NP_034642.2_1" "[gene=Igf1]" "[protein=insulin-like growth factor I isoform 1]" "[location=299..778]"
J’ai tenté de faire une séparation de la colonne en plusieurs fois car les séparateurs ne sont pas les mêmes sur toute la ligne mais il y a des parties en moins ou en plus dans certaines lignes ce qui ne me permet pas d’avoir une colonne contenant toujours la même information. L’idéal serait de sélectionner les parties souhaitées de la ligne sur la base du contenu. Par exemple "NM_010512.5" avec comme début "lcl|" ou "[gene=Igf1]" avec comme début "[gene= ". Est-ce que cela est possible ? Si oui, avez-vous une idée de comment procéder ?
J’ai pensé à utiliser la fonction ci-dessous mais je ne parviens pas à écrire l’expression régulière pour l’argument regex=.
tidyr::extract(data = df, col = seq_name, into = c("id_gene", "id_protein", "gene", "protein", "location"), regex = " ")
Je vous remercie par avance.