Commit 1e9897e5 authored by JEAN-YVES SGRO's avatar JEAN-YVES SGRO
Browse files

Update 2023-Spring/2023-01-30-session-02/reg_expressions.py,...

Update 2023-Spring/2023-01-30-session-02/reg_expressions.py, 2023-Spring/2023-01-30-session-02/chrY.fna.gz
parent 348bd026
Loading
Loading
Loading
Loading
+7.38 MiB

File added.

No diff preview for this file type.

+78 −0
Original line number Diff line number Diff line
# -*- coding: utf-8 -*-

import re

def open_fasta(file_name):
    """Open Fasta sequence files.


    Parameters
    ----------
    file_name : Str
        File name.

    Returns
    -------
    fasta_seq : Str
        Seqeunce data contained in the Fasta file.

    """

    # open file
    seq_file = open(file_name, 'r')

    data = seq_file.read()

    seq_file.close()

    #index of first \n character
    index = data.find('\n')

    # get nucleotide sequence after first \n
    fasta_seq = data[index+1:].replace('\n', '')

    fasta_seq = fasta_seq.upper()

    return fasta_seq




def find_sequence(expression, sequence):
    """Find regular expression in sequence.

    Parameters
    ----------
    expression : Str
        Regular expression.
    sequence : Str
        String where the search is performed.

    Returns
    -------
    None.

    """

    hit_list = re.finditer(expression, sequence)

    print('{:<10s} {:<10s} {:s}'. format('start', 'end', 'match'))

    for hit in hit_list:

        match = hit.group(0)

        start, end = hit.span()

        print('{:<10d} {:<10d} {:s}'. format(start+1, end, match))






#Y =open_fasta('chrY.fna')

s = 'ACCTGAACGAGTGTGAGTAGGCCA'

find_sequence('GT', s)
 No newline at end of file