[PYTHON] Supprimer ou récupérer des tableaux de fasta en fonction du fichier de liste d'ID

Post-scriptum: 29/06/2018

Vous pouvez faire la même chose avec seqkit grep

https://github.com/shenwei356/seqkit

Extraire et supprimer des séquences de fasta

Supprimez le tableau contenant le fichier de liste d'ID ou extrayez uniquement ce tableau.

fasta_extract.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

#fasta_Définissez l'élément id sur clé et envoyez le tableau de résultats à la sortie standard

import sys
from Bio import SeqIO


fasta_in = sys.argv[1]                            #Dans le premier argument, spécifiez le fichier fasta que vous souhaitez modifier.
query = sys.argv[2]                          #Spécifiez le fichier qui décrit le keyID pour chaque ligne dans le deuxième argument


for record in SeqIO.parse(fasta_in, 'fasta'): #Ouvrez Fasta File Parse à l'aide de SeqIO(Lire un élément à la fois)
    id_part = record.id                       #Lire la partie ID de fasta
    m_part = id_part.rstrip()        #chomp et m_Mettre en partie
    description_part = record.description
    seq = record.seq                          #Lire la partie tableau de fastan
    for q in open(query, "r"):                     #Ouvrez le fichier d'informations d'annotation
        if m_part == q.rstrip():            #Si la partie id du fichier fasta et la partie id de l'élément de changeur correspondent. ..
            fasta_seq = '>' + description_part + '\n' + seq      #Organiser au format fasta
            print(fasta_seq)                  #Sortie fasta vers sortie standard

fasta_remove.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

#fasta_Définissez l'élément id sur la clé et affichez le tableau qui n'a pas été atteint dans la sortie standard

import sys
from Bio import SeqIO


fasta_in = sys.argv[1]                            #Dans le premier argument, spécifiez le fichier fasta que vous souhaitez modifier.
query = sys.argv[2]                          #Spécifiez le fichier qui décrit le keyID pour chaque ligne dans le deuxième argument
hit = 0

for record in SeqIO.parse(fasta_in, 'fasta'): #Ouvrez Fasta File Parse à l'aide de SeqIO(Lire un élément à la fois)
    id_part = record.id                       #Lire la partie ID de fasta
    m_part = id_part.rstrip()        #chomp et m_Mettre en partie
    description_part = record.description
    seq = record.seq                          #Lire la partie tableau de fastan
    for q in open(query, "r"):                     #Ouvrez le fichier d'informations d'annotation
        if m_part == q.rstrip():            #Si la partie id du fichier fasta et la partie id de l'élément de changeur correspondent. ..
            hit += 1
    if hit == 0:
        fasta_seq = '>' + description_part + '\n' + seq      #Organiser au format fasta
        print(fasta_seq)                  #Sortie fasta vers sortie standard
    hit = 0

fasta_extract_cont.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

#fasta_Définissez l'élément id sur clé et envoyez le tableau de résultats à la sortie standard(Version correspondant à une correspondance partielle)

import sys
from Bio import SeqIO


fasta_in = sys.argv[1]                            #Dans le premier argument, spécifiez le fichier fasta que vous souhaitez modifier.
query = sys.argv[2]                          #Spécifiez le fichier qui décrit le keyID pour chaque ligne dans le deuxième argument


for record in SeqIO.parse(fasta_in, 'fasta'): #Ouvrez Fasta File Parse à l'aide de SeqIO(Lire un élément à la fois)
    id_part = record.id                       #Lire la partie ID de fasta
    m_part = id_part.rstrip()        #chomp et m_Mettre en partie
    description_part = record.description
    seq = record.seq                          #Lire la partie tableau de fastan
    for q in open(query, "r"):                     #Ouvrez le fichier d'informations d'annotation
        if q.rstrip() in m_part:            #Inclure ou rechercher
            fasta_seq = '>' + description_part + '\n' + seq      #Organiser au format fasta
            print(fasta_seq)                  #Sortie fasta vers sortie standard

fasta_remove_cont.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

#fasta_Définissez l'élément id sur clé et envoyez le tableau de résultats à la sortie standard(Version correspondant à une correspondance partielle)

import sys
from Bio import SeqIO


fasta_in = sys.argv[1]                            #Dans le premier argument, spécifiez le fichier fasta que vous souhaitez modifier.
query = sys.argv[2]                          #Spécifiez le fichier qui décrit le keyID pour chaque ligne dans le deuxième argument
hit = 0


for record in SeqIO.parse(fasta_in, 'fasta'): #Ouvrez Fasta File Parse à l'aide de SeqIO(Lire un élément à la fois)
    id_part = record.id                       #Lire la partie ID de fasta
    m_part = id_part.rstrip()        #chomp et m_Mettre en partie
    description_part = record.description
    seq = record.seq                          #Lire la partie tableau de fastan
    for q in open(query, "r"):                     #Ouvrez le fichier d'informations d'annotation
        if q.rstrip() in m_part:            #Inclure ou rechercher
            hit += 1
    if hit == 0:
        fasta_seq = '>' + description_part + '\n' + seq      #Organiser au format fasta
        print(fasta_seq)                  #Sortie fasta vers sortie standard
    hit = 0

Lorsque la partie de description est recherchée

fasta_remove_V3.py



#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from Bio import SeqIO


fasta_in = sys.argv[1]                            #Dans le premier argument, spécifiez le fichier fasta que vous souhaitez modifier.
query = sys.argv[2]                          #Spécifiez le fichier qui décrit le mot-clé de recherche pour chaque ligne dans le deuxième argument
hit = 0

for record in SeqIO.parse(fasta_in, 'fasta'): #Ouvrez Fasta File Parse à l'aide de SeqIO(Lire un élément à la fois)
    id_part = record.description                       #Lire la partie description de fasta
    m_part = id_part.rstrip()        #chomp et m_Mettre en partie
    description_part = record.description
    seq = record.seq                          #Lire la partie tableau de fastan
    for q in open(query, "r"):                     #Ouvrez le fichier d'informations d'annotation
        if  q.rstrip() in m_part:            #Si la partie id du fichier fasta et la partie id de l'élément de changeur correspondent. ..
            hit += 1
    if hit == 0:
        fasta_seq = '>' + description_part + '\n' + seq      #Organiser au format fasta
        print(fasta_seq)                  #Sortie fasta vers sortie standard
    hit = 0

Recommended Posts

Supprimer ou récupérer des tableaux de fasta en fonction du fichier de liste d'ID
[Python] Comment supprimer les valeurs en double de la liste
Utilisez Boto3 pour récupérer plus de 1000 préfixes de la liste de fichiers de S3
Coloration des points en fonction de la distance de la courbe de régression
Python --Lisez des données à partir d'un fichier de données numériques pour trouver des matrices, des valeurs propres et des vecteurs propres distribués co-distribués
Points à noter lors de la suppression de plusieurs éléments de la liste
Extraire la valeur la plus proche d'une valeur à partir d'un élément de liste en Python
Lisez l'ancien fichier Word du formulaire d'application Gakushin DC (.doc) à partir de Python et essayez de le faire fonctionner
Point selon l'image
Supprimer le cadre de l'image
Exporter la liste de clés incluse dans S3 Bucket dans un fichier
C'est plus rapide d'ajouter que de rejoindre et d'étendre la liste, non?
Répétez avec While. Script pour tweeter ou rechercher depuis le terminal
Comment comparer des listes et récupérer des éléments communs dans une liste
Si vous supprimez la liste à mettre en boucle, vous deviendrez terrible.
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
[EC2] Comment installer et télécharger chromedriver à partir de la ligne de commande
Apprenez les méthodes M-H et HMC en lisant les statistiques bayésiennes à partir des bases
Creusez le répertoire et créez une liste de chemins de répertoire + noms de fichiers
Comment supprimer les doublons d'une liste Python tout en préservant l'ordre.